NTFS 파일 시스템을 갖춘 외부 USB 디스크가 있습니다.
Windows에서 파일을 삭제하고 여러 "삭제 취소" 유틸리티(예: TestDisk) 중 하나를 실행하면 파일을 쉽게 복구할 수 있습니다("아직 거기에 있지만 삭제된 것으로 표시되어 있기 때문").
Linux에서 파일을 삭제하면 어떤 유틸리티도(심층 검색 서명 기반 유틸리티를 사용하지 않는 한) 파일을 복구할 수 없습니다. 왜? Linux의 NTFS 파일 시스템 코드에서 연결 해제는 어떻게 구현됩니까? "삭제된 것으로 표시"되었을 뿐만 아니라 디스크의 일부 구조도 지워진 것 같습니다. 이것이 사실입니까?
답변1
호기심에 ntfs3g 소스코드를 살펴봤습니다.
ntfs_delete(...)
dir.c
삭제 작업을 수행할 수 있는 함수가 에 정의되어 있는 것 같습니다 .
파일 시스템 구조에서 삭제된 모든 파일/디렉터리의 메타데이터를 확실히 제거합니다.
Microsoft 자체 버전의 소스 코드를 사용할 수 없기 때문에 제거 수행 방법에 대해 지식을 바탕으로 추측해 볼 수만 있습니다.
삭제 취소 유틸리티가 삭제된 파일의 위치와 이름을 복구할 수 있기 때문에 Microsoft는 단순히 MFT 항목을 사용되지 않은 항목으로 표시하는 것으로 보입니다.
답변2
Windows 및 NTFS 관련 사항은 모르지만 Unix/Linux 파일 관리자 GUI 및 Mac OS X Finder에서 이 작업을 수행하는 일반적인 방법은 실제로 파일을 삭제하지 않고 다음과 같은 특수 숨겨진 파일로 이동하는 것입니다. 쓰레기 클립(또는 이와 유사한 것). 삭제 취소 명령은 휴지통 폴더에서 파일을 검색합니다.
rm
사용자의 요청에 따라 휴지통 폴더를 신경 쓰지 않고 파일을 삭제하면 됩니다.