
실수로 잘못된 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 파티션을 생성하는 방법을 고려했습니다. 이로 인해 나는 얻을 수 있었다데이터에 대한 액세스tune2fs -l
@thkala가 제안한 대로 파티션에 대한 정보를 검색합니다 . 이 정보는 매우 실현 가능해 보이므로 변경되지 않습니다.
매우 흥미롭게도 gparted는 어느 정도 알아낼 수 있습니다.실제 파티션 크기이 경고에서 알 수 있듯이 다음과 같습니다.
파티션 내 할당되지 않은 공간 10.96GiB. 파티션을 채우기 위해 파일 시스템을 늘리려면 파티션을 선택하고 메뉴 항목을 선택하십시오.
11GiB는 대략 NTFS 파티션의 크기이기 때문입니다.
IIRC의 사용되지 않은 공간은 ext4에 아직 여유가 있었던 공간이었습니다. 그만큼할당되지 않은 공간gparted는 NTFS 파티션인 것으로 보입니다. 지금,그거도 어떻게 복원할 수 있어?, 아마도 첫 번째 파티션이 끝나는 위치, 즉 총 바이트 수를 알아내면 될까요?
마지막으로테스트디스크그것을 쉽게 처리했습니다.