
다소 복잡한 데이터 복구 작업이 있습니다. 손상된 ext4 파일 시스템에서 일부 메타데이터(파일 이름, 디렉터리 구조 등)를 가져오고 싶습니다. 나는 여러 가지 도구( Testdisk
, fsck
, foremost
)를 사용해 보았지만 아무 소용이 없었습니다. 나는 파일 시스템에 대해 기초적인 이해만 가지고 있기 때문에 아마도 대부분을 효과적으로 사용하지 않았을 것입니다. 아니면 이러한 도구가 내 상황에 적합하지 않았을 수도 있습니다. 이것이 내가 모든 것을 엉망으로 만든 방법입니다.
실수로 덮어쓰기 프로세스를 시작한 하드 디스크 드라이브가 있습니다. 나는 사용했다이 SATA USB 도킹 스테이션 중 하나, 그리고 그것을 처리하는 동안 실수로 복제 버튼을 눌렀습니다. 이로 인해 한 드라이브에서 다른 드라이브로 복제가 시작되었습니다. 내 HDD에 새 파티션을 만들고 거기에 데이터를 쓰기 시작했습니다. 나는 이것을 약 1분 후에 깨달았고 프로세스를 중단하고 드라이브 연결을 끊었습니다.
두 디스크 모두 각각 하나의 ext4 파티션으로 포맷되었습니다. 따라서 내 디스크 중 하나의 파티션이 손상되어 이제 그 파티션의 데이터에 액세스할 수 없습니다. 덮어쓴 데이터는 복구가 불가능할 수도 있지만 대부분의 데이터는 그 짧은 시간 내에 손상되지 않을 것입니다.
다행스럽게도 내가 가지고 있는 대부분의 파일은 인터넷의 다른 곳에서 찾을 수 있으므로 다시 다운로드할 수 있습니다. 하지만 그렇게 하려면 파일 및 디렉터리 이름 목록을 가져와야 합니다. 이를 성공적으로 수행하는 도구를 찾을 수 없습니다. Testdisk
유망해 보였지만 이를 사용하면 복제 프로세스에서 생성된 데이터에만 액세스할 수 있었습니다. 내가 어떻게 이 일을 할 수 있는지 말해 줄 수 있는 사람이 있나요? 도움을 주시면 감사하겠습니다. 감사합니다.
답변1
e2fsprogs 소스를 다운로드하면 findsuper
디스크를 스캔하여 디스크에서 슈퍼블록을 찾는 도구를 구축할 수 있습니다. 두 개의 서로 다른 슈퍼블록 UUID를 찾을 수 있어야 합니다. 하나는 디스크 시작 부분의 복제 복사본에서 가져온 것이고, 다른 하나는 디스크 끝 부분에 있는 이전 파일 시스템의 것입니다.
이전 파일 시스템의 슈퍼 블록으로 e2fsck를 실행하면 더 많은 파일 시스템을 복구할 수 있습니다. 예를 들어 이전 저널 블록을 파일 시스템으로 다시 복구할 수 있는 경우입니다.
어떤 경우든 e2fsck(디스크의 백업 이미지에서 실행하는 것이 좋음)는 lost+found
디스크 시작 부분의 루트 디렉터리를 확실히 덮어쓰므로 찾을 수 있는 모든 파일을 연결합니다.