나는 일부 개인 파일만 포함된 새 하드 드라이브를 가지고 놀면서 쓰기 속도를 확인하기 위해 다음을 입력했습니다. sudo dd if=/dev/zero of=/dev/sda
이는 /dev/sda/
내 Raspberry Pi에 연결된 새 2TB 하드 드라이브입니다.
명령을 취소하고 11MB만 썼으면 좋았을 텐데요. 이제 디스크 내용을 표시할 수 없습니다. 이제 parted
파티션 트리가 다음과 같이 표시됩니다.
|--- unallocated 8.00 MB
|--- unknown 1.82 TB
|--- unallocated 9.08 MB
이전에는 다음과 같았습니다.
|--- ext4 1.82 TB
dd
디스크의 처음 11MB를 덮어썼는지, 즉 파티션 테이블을 완전히 덮어썼는지, 아니면 하드 드라이브의 임의의 비트를 덮어썼는지 알 수 없습니다 .
이제 하드 드라이브가 Xubuntu 14.04 노트북에 연결되었습니다 . /dev/sdb
.gpart
testdisk
전체 디스크 ext4
및 섹터 크기가 4096이라는 것을 알면 다시 포맷하지 않고 파티션 테이블을 복원하고 내 파일에 다시 액세스할 수 있도록 할 수 있습니까(일부 파일이 손상/삭제된 경우에도)? 아니면 복사할 데이터의 양이 해당 드라이브에 저장되어 있기 때문에 귀찮은 파일 복구 도구를 사용하는 유일한 솔루션입니까?
답변1
먼저 파티션 테이블을 있는 그대로 다시 작성해야 합니다. 이것은 영향을 미치지 않습니다콘텐츠어떤 파티션이든 각 파티션이 시작하고 끝나는 위치에 대한 시스템의 아이디어일 뿐입니다. 당신 같은데가능한"알 수 없는" 파티션이 있는 것 같기 때문에 이미 이 작업을 수행하고 있지만 크기는 이전 파티션과 정확히 같습니다.
아직 수행하지 않은 경우 원래 생성할 때 사용한 것과 동일한 파티션 편집기(예: fdisk
)를 사용하여 대규모 파티션을 생성하고 기본 제안 배치를 수락하여 해당 기본값이 다음과 동일한 결과를 얻을 수 있기를 바랍니다. 이전 배치는 동일합니다. 다시 말하지만, 어떤 파티셔닝 소프트웨어를 사용해야 할지 알고 있는 것 같습니다: parted.gdisk
parted
그 후 필요한 트릭은 fsck
슈퍼블록을 백업하는 파일 시스템을 사용하는 것입니다. 여기에서는 먼저 기본 옵션을 사용하여 파일 시스템을 생성해야 합니다. 그렇지 않으면 파일 시스템을 생성하는 데 사용되는 기본 옵션이 아닌 옵션을 알아야 합니다. (파일 시스템은 일반적으로 기본 옵션으로 생성된다고 말하고 싶습니다.)
mkfs
파일 시스템이 처음 생성되었을 때와 동일한 옵션을 사용하여 실행합니다(즉, 옵션이 없을 수 있습니다. 이는 기본값을 의미합니다).추가하는 것 외에도-n
이는 실제로 파일 시스템을 생성하지 않음을 의미합니다.- 출력에는
mkfs
대체 슈퍼블록 목록이 인쇄됩니다. 파일 시스템의 기본 슈퍼 블록을 덮어썼기 때문에 이 중 하나를 사용해야 합니다. 블록 장치의 덮어쓰기된 부분이 클수록 목록에 있는 손상된 예비 슈퍼블록도 더 많습니다. fsck
-b
대체 슈퍼블록을 지정하는 옵션을 사용하여 실행합니다.
복원한 내용은 무엇이든 엉망이 될 수 있으며 수동으로 많은 정리 작업이 필요할 수 있다는 점을 경고하고 싶습니다. .lost+found