이미 파일이 포함된 폴더에 드라이브를 탑재하면 해당 파일은 어디로 가나요? [복사]

이미 파일이 포함된 폴더에 드라이브를 탑재하면 해당 파일은 어디로 가나요? [복사]

방금 실수로 이미 파일이 포함된 폴더에 새 드라이브를 설치했습니다. 신경쓰지 않고 다른 곳에 두었는데 이제 폴더가 비어 있는 것 같습니다. Linux에서 방금 삭제한 파일들에 무슨 일이 일어났는지 궁금합니다.

답변1

제거 후 다시 나타나는 "그림자"입니다. :)

bind실제로 파일은 그대로 "존재"하며, 마운트 해제하지 않고 즉시 해당 파일에 액세스해야 하는 경우 소위 마운트를 통해 이 문제를 해결할 수 있습니다.

mount --bind /Original/FS/Mount/Point /Somewhere/Else

커널에 파일 시스템을 특정 마운트 지점에 마운트하도록 요청하면 커널은 해당 마운트 지점을 마운트 중인 파일 시스템의 "보기 포트"로 보기 때문에 작동합니다.FS 마운트거기에 내용이 있습니다.

하지만이것은아니요이러한 FS "레이어"를 단일 뷰로 결합하는 유일한 방법입니다. "라는 말이 있습니다.공동 설치” 방법(이것이 “Plan 9의 핵심 개념”이라는 사실이 흥미롭습니다. btw).오브, 메인라인 커널에 포함된 적이 없거나 현재(3.18 기준)파일 시스템 덮어쓰기- 그것했다.

답변2

새로 설치된 파일 시스템은 오버레이처럼 작동하여 원래 파일 시스템의 일부를 숨깁니다. poige에서 설명하는 바인드 마운트와 같이 파일에 액세스하는 몇 가지 트릭이 있습니다. Linux에서는 여러 마운트 지점에 파일 시스템을 여러 번 마운트할 수 있다는 점이 개인적으로 마음에 듭니다. 따라서 루트 파일 시스템을 온 //오프로 완벽하게 마운트할 수 있습니다 /mnt. 이는 손실된 공간/누락된 파일 디버깅/디스크 사용량 계산/...을 디버깅할 때 유용합니다.

질문:

  • 이전 파일이 여전히 존재하며공간 부족. 숨겨진 파일을 마운트하여 디스크 공간을 "잃는" 것은 흔한 실수입니다. 예를 들어, 실수로 디렉토리에 큰 파일을 작성하고 때때로 디렉토리에 파일 시스템을 마운트하기로 결정한 경우가 있습니다. 예를 들어 저널링 파일 시스템이 제대로 설치되기 전에 실수로 대규모 데이터베이스를 시작하는 경우...
  • 프로그램이 새로 설치된 파일 시스템에 의해 숨겨진 파일을 열면 프로그램은 이에 대해 신경 쓰지 않고 닫힐 때까지 "숨겨진" 파일을 계속 성공적으로 사용합니다. 그 시점부터 새 파일 시스템이 마운트 해제되고 기본 디렉터리가 다시 표시될 때까지 파일은 프로세스에 표시되지 않습니다.

관련 정보