내 HDD에는 파일이라고 부르는 500GB의 원시 디스크 이미지 파일이 있는데, 이는 외부 단일 NTFS 파티션 드라이브의 내용을 처리한 결과입니다 dysk.img
. dd
목적은 ntfsundelete
프로그램을 사용하여 데이터를 복구하는 것입니다(초기 스캔 결과는 유망합니다).
하지만 그 전에 현재 삭제되지 않은 콘텐츠를 확인하고 싶었습니다. 그래서 설치하고 싶습니다. 분명한 이유로 나는 이 파일을 설치해도 파일에 비트가 기록되지 않도록 하고 싶습니다.
mount --read-only
안타깝게도 이 방법은 해결책이 아닌 것 같습니다. 왜냐하면, 다음에 따르면 man mount
:
파일 시스템 유형, 상태 및 커널 동작에 따라 시스템이 여전히 장치에 쓸 수 있습니다. 예를 들어, ext3 및 ext4는 파일 시스템이 더러워지면 로그를 재생합니다. 이러한 쓰기 액세스를 방지하려면 ro,noload 마운트 옵션을 사용하여 ext3 또는 ext4 파일 시스템을 마운트하거나 블록 장치 자체를 읽기 전용 모드로 설정해야 할 수 있습니다. blockdev(8) 명령을 참조하십시오.
위 내용이 NTFS에도 적용되나요? 아쉽게도 mount
이 옵션은 지원되지 않습니다 noload
...
불행하게도 실수로 Windows와 호환되지 않는 이름(예: 해당 문자 포함)으로 일부 파일을 작성하여 ?
Windows에서 이 파일 시스템을 예약된 검사로 표시하게 되었습니다. 따라서 지금부터 계속 경고가 표시되고 이 옵션 없이 실행할 수 없는 경우 경고가 표시됩니다 ntfsundelete
. 이로 인해 실수로 쓰기가 발생할 위험이 더욱 증가합니까?ntfsundelete
--force
현재로서는 루트만이 이 파일에 대한 쓰기 권한을 갖고 있습니다. IIUC에서는 설치 시 항상 일부 권한 상승이 있기 때문에 이것이 충분한지 잘 모르겠습니다.
root
파일 소유자를 지정 하고 모든 사람(소유자 포함)의 쓰기 액세스를 거부하는 것이 도움이 될까요?
blockdev
이 파일에서 제안하는 명령을 시도해 보는 것이 도움이 될까요? 아니면 man mount
이미지 파일로 게시하는 것이 실제 장치에 비해 위험하거나 해로울까요?blockdev --setro
답변1
귀하가 찾고 있는 답변의 일부는 귀하가 인용한 인용문에 나와 있습니다.
블록 장치 자체를 읽기 전용 모드로 설정
귀하의 경우에는 간단한 파일입니다. 따라서 다음을 수행할 수 있습니다.
chmod a-w disk.img
소유자라도 글을 쓸 필요가 없습니다.
root
파일 소유자를 지정 하고 모든 사람(소유자 포함)의 쓰기 액세스를 거부하는 것이 도움이 될까요?
원래,예,root
그러나 이는 대부분의 권한 "제한"을 우회할 수 있다는 점을 명심하십시오 . 따라서 다른 사용자로 데이터 복구 프로그램을 실행해야 합니다 root
.
파일을 마운트하고 싶다면 단순히 그렇게 할 수는 없습니다. 단, 이미지 파일이 지원되는 파일 시스템에 저장된 경우chattr
(기본적으로 EXT4 및 기타 일반적인 Linux 파일 시스템) 에 저장된 경우파일을 변경할 수 없게 만들 수 있습니다.
chattr +i disk.img
지금은 아무것도 할 수 없습니다 root
. 작성하거나 삭제할 수 없습니다. chattr -i
완료 후 플래그를 복원하는 데 사용됩니다.
대체 방법
(손상 가능성이 있는) NTFS 드라이브에서 데이터를 추출하려면 다음을 사용하는 것이 좋습니다.복구 비트, 파일 시스템 재구축을 수행하기 위해 개발한 소프트웨어입니다. 현재는 NTFS만 지원하지만 다음과 같은 몇 가지 장점이 있습니다.
이미지 파일에는 아무 것도 쓰지 않습니다. 간단히 말해서,쓰기를 지원하지 않습니다디지털 포렌식에 맞춰져 있기 때문에 드라이브에 있습니다. 따라서 실수로 그런 일을 할 위험이 없습니다.
디렉터리 트리가 손상된 경우에도 디렉터리 트리를 읽을 수 있습니다. 최소한 사용 가능한 메타데이터를 통해 각 파티션에 대한 가장 정확한 설명을 얻을 수 있습니다.
다음 답변에서 그 사용법에 대해 논의합니다.