NTFS 파일 시스템이있는 외장 USB 디스크가 있습니다.
Windows에서 파일을 제거하고 여러 “삭제 취소”유틸리티 (예 : TestDisk) 중 하나를 실행하면 파일이 쉽게 복구 될 수 있습니다 ( “아직 파일이 있지만 삭제 된 것으로 표시되어 있기 때문에”).
Linux에서 파일을 제거하면 (심층 검색 서명 기반 파일을 사용하지 않는 한) 유틸리티를 사용하여 파일을 복구 할 수 없습니다. 왜? 링크 해제는 Linux의 NTFS 파일 시스템 코드에서 어떻게 구현됩니까? “삭제 된 것으로 표시”하는 것이 아니라 디스크상의 일부 구조를 지우는 것 같습니다.이 경우입니까?
답변
호기심에서 ntfs3g 소스를 살펴 보았습니다.
에 ntfs_delete(...)
정의 된 함수가있는 것으로 보입니다 dir.c
.
파일 시스템 구조에서 삭제 된 파일 / 디렉토리의 메타 데이터를 모두 제거합니다.
Microsoft 자체 버전의 소스 코드를 사용할 수 없으므로 삭제 방법을 교육적으로 추측 할 수 있습니다.
삭제 취소 유틸리티는 삭제 된 파일의 위치와 이름을 복구 할 수 있기 때문에 Microsoft는 MFT 항목 만 사용되지 않은 것으로 표시합니다.
답변
Windows 및 NTFS의 특성을 모르지만 Unix / Linux 파일 관리자 GUI 및 Mac OS X Finder 에서이 작업을 수행하는 일반적인 방법은 실제로 파일을 삭제하지 않고 휴지통이라는 특별한 숨겨진 폴더로 옮기는 것입니다. 비슷한). undelete 명령은 해당 휴지통 폴더에서 파일을 검색합니다.
rm
사용자가 요청한대로 휴지통 폴더를 방해하지 않고 파일을 간단히 제거합니다.