실수로 잘못된 USB 디스크에 512바이트 바이너리 파일을 썼는데 dd
기기에 더 이상 파티션이 표시되지 않습니다 fdisk
.
데이터가 다 없어진 줄 알았는데, 다행히 데이터가 처음 512바이트로 제한되어 있어서 dd if=/dev/sdx | strings
표시 데이터는 아직 남아 있는 것 같습니다 .dd
복원할 수 있는 방법이 있나요??
디스크에는 두 개의 파티션이 있습니다. 하나는 ext4(~4GB)이고 나머지 16GB는 NTFS로 포맷되어 있습니다.
답변1
이전에 정확히 무슨 일이 일어났는지에 따라 다르지만 복구가 쉬울 수 있습니다.
dd
안전한 위치에 USB 드라이브의 전체 이미지를 만드는 데 사용됩니다 .dd
안전한 위치에 USB 드라이브의 전체 이미지를 만드는 데 사용됩니다 .네, 전체 이미지를 보관해 주세요. 데이터 복구 작업으로 인해 예상보다 더 많은 피해가 발생하는 경우가 많습니다.
해당 USB 드라이브의 파티션 레이아웃이 어떻게 보이는지 기억해 보십시오.써 내려 가다. Linux 커널이 디스크를 감지한 시점(디스크가 손상되기 전)에 대한 시스템 로그가 있으면 도움이 될 수 있습니다. 일반적으로 감지한 파티션에 대한 일부 데이터를 인쇄합니다.
fdisk를 사용하여 동일한 파티션 테이블로 MBR을 다시 만듭니다.파티션을 포맷하거나 fsck하지 마세요..
읽기 전용(
-o ro
) 옵션을 사용하여mount
파티션을 마운트 해 보세요.성공하면 모든 파일을 안전한 위치에 복사하고 터미널을 관찰하여 I/O 오류를 기록합니다. 파티션 경계 오류를 표현하는 일반적인 방법은 기본 장치에 대한 범위를 벗어난 액세스를 통하는 것입니다.
복사에 실패하면 이미지를 복원하고 4단계로 돌아갑니다.
다른 작업을 수행하기 전에 USB 드라이브의 전체 이미지가 필요하다고 말씀드렸나요?
추신: 유사한 도구를 살펴보고 싶을 수도 있습니다.테스트 디스크, 복구 프로세스를 자동화해 보십시오. 하지만 먼저 전체 이미지를 얻어야 합니다.
PS2: 편안하다면 시도해 볼 수도 있습니다. 첫 번째 분할의 시작점에 대해 합리적인 가정을 할 수 있다면 를 사용하여 tune2fs -l
첫 번째 분할의 정확한 크기를 얻을 수 있으며 이를 통해 두 번째 분할의 시작점을 찾을 수 있습니다.
답변2
파티션과 해당 데이터를 복구하기 위해 ext4
디스크 전체 ext4 파티션을 만드는 것을 고려했습니다. 이게 나를 사로잡는다데이터에 접근하다그리고 @thkala가 제안한 대로 partitions에 대한 정보를 검색하는 데 사용합니다 tune2fs -l
. 정보는 매우 실행 가능한 것으로 보이므로 변경 사항이 없습니다.
흥미롭게도 gparted는 어느 정도 알아낼 수 있었습니다.실제 파티션 크기이 경고에서 볼 수 있듯이:
파티션 내에 10.96GiB의 할당되지 않은 공간이 있습니다. 파티션을 채우기 위해 파일 시스템을 확장하려면 파티션을 선택하고 메뉴 항목을 선택하십시오.
11GiB는 NTFS 파티션 크기와 비슷하기 때문입니다.
사용되지 않은 공간인 IIRC에 주목하세요. 이는 ext4에서 여전히 사용할 수 있는 공간입니다. 이것할당되지 않은 공간이제 gparted가 인식한 것은 NTFS 파티션인 것 같습니다.어떻게 복원할 수 있나요?, 아마도 첫 번째 파티션이 끝나는 위치(예: 총 바이트 수)를 알아내는 것이 좋을까요?
마침내테스트 디스크이것을 쉽게 처리했습니다.