손상된 파일을 복구하려고 합니다.분할하드디스크 손상으로 인해GNU 주소 구조.
이 작업을 수행하기 위해 ubuntu tuto를 따라 밤새 실행했지만 세 번째와 네 번째 명령이 실패했습니다. 아래 스크립트 로그를 참조하세요.
표준 출력:
ubuntu@ubuntu:~$ bash -x rescue.sh
+ INTERN=/dev/sda2
+ TARGET=/dev/sdb1
+ SUIVI=/dev/sdb3
+ sudo mount /dev/sdb3 /media/ubuntu
mount: /media/ubuntu: /dev/sdb3 déjà monté sur /media/ubuntu.
+ sudo mkdir /media/ubuntu/dd
+ sudo ddrescue -f -N -n -b4096 -K524288 /dev/sda2 /dev/sdb1 /media/ubuntu/dd/suivi6
GNU ddrescue 1.23
Press Ctrl-C to interrupt
ipos: 93098 MB, non-trimmed: 10530 kB, current rate: 0 B/s
opos: 93098 MB, non-scraped: 0 B, average rate: 32564 kB/s
non-tried: 0 B, bad-sector: 24576 B, error rate: 21845 B/s
rescued: 477173 MB, bad areas: 6, run time: 4h 4m 13s
pct rescued: 99.99%, read errors: 192, remaining time: 6h 49m
time since last successful read: 1m 30s
Finished
+ sudo ddrescue -f -c1 -b4096 /dev/sda2 /media/ubuntu/dd/suivi6
GNU ddrescue 1.23
Press Ctrl-C to interrupt
ipos: 112395 MB, non-trimmed: 0 B, current rate: 1179 kB/s
opos: 112395 MB, non-scraped: 0 B, average rate: 25915 kB/s
non-tried: 0 B, bad-sector: 8785 kB, error rate: 0 B/s
rescued: 477175 MB, bad areas: 124, run time: 5h 6m 52s
pct rescued: 99.99%, read errors: 2145, remaining time: n/a
time since last successful read: n/a
Finished
+ sudo ddrescue -d -f -R -r27 -b4096 -c1 /dev/sda2 /dev/sdb1 /media/ubuntu/dd/suivi6
ddrescue: error in mapfile /media/ubuntu/dd/suivi6, line 131.
+ ddrescue --fill-mode=- --force --synchronous /dev/zero /dev/sdb1 /media/ubuntu/dd/suivi6
ddrescue: error in mapfile /media/ubuntu/dd/suivi6, line 131.
지도 파일을 확인했는데 이상한 문자가 포함되어 있습니다.
ubuntu@ubuntu:~$ sed -n 130p /media/ubuntu/dd/suivi6
0x22D3670000 0x4C46F90000 +
ubuntu@ubuntu:~$ sed -n 131p /media/ubuntu/dd/suivi6
INDX( ��_�(8�t�ty�j5ˣ{��N3����N3����N3���1046rat�j5ˣ{��ł1����ł1����ł1���1046rat�j5ˣ{��ł1����ł1����ł1���1046rat�j5ˣ{��ł1����ł1����ł1���1046rat�j5ˣ{��ł1����ł1����ł1���1046rat�j5ˣ{��ł1����ł1����ł1���1046rat�j5ˣ{��ł1����ł1����ł1���1046rat�j5ˣ{��ł1����ł1����ł1���1046rat�j5ˣ{��ł1����ł1����ł1���1046rat�j5ˣ{��ł1����ł1����ł1���1046ra�j5ˣ{��ł1����ł1����ł1���1046rat�j5ˣ{��ł1����ł1����ł1���1046rat�j5ˣ{��ł1����ł1����ł1���1046rat�j5ˣ{��ł1����ł1����ł1���1046rat�j5ˣ{��ł1����ł1����ł1���1046rat�j5ˣ{�ł1����ł1����ł1���1046rat�j5ˣ{��ł1����ł1����ł1���1046rat�j5ˣ{��ł1����ł1����ł1���1046rat�j5ˣ{��ł1����ł1����ł1���1046rat�j5ˣ{��ł1����ł1����ł1���1046rat�j5ˣ{�j5ˣ{�j5ˣ{�j5ˣ{�1048rat�
온라인에서 유사한 오류를 찾지 못했습니다. 아는 사람이 있습니까?
내 구성
Linux 버전 5.3.0-18-일반(buildd@lcy01-amd64-027) (gcc 버전 9.2.1 20190909(Ubuntu 9.2.1-8ubuntu1)) #19-Ubuntu SMP Tue, Oct 8 20:14:06 UTC 2019
GNU 주소 구조 1.23
감사합니다!
답변1
두 번째 ddrescue 명령:
sudo ddrescue -f -c1 -b4096 /dev/sda2 /media/ubuntu/dd/suivi6
대상 매개변수가 누락되어 맵 파일이 대상으로 지정되고 덮어쓰여집니다.
매핑 파일로 세 번째 매개 변수가 없으므로 복원도 되지 않고 처음부터 덮어씁니다.
대상이 디스크 파티션이 아닌 일반 파일인 경우 새 매핑된 파일을 추측하여 생성하려고 시도할 수 있지만, ddrescue --generate-mode
복사를 시작하기 전에 대상 드라이브가 완전히 0이 되도록 보장할 수 없다면 이는 권장되지 않습니다. 새 파일은 기본적으로 0이므로 이는 대상 파일에 대해 더 쉽게 보장됩니다.
다시 시작하거나(다른 목표로 다시 건드리지 않는 것이 더 낫습니다. 그렇지 않으면 상황이 더 악화될 수 있습니다) 결국 99.99%를 절약했는데, 이는 나쁘지 않습니다.
아, 난 바보야. 대상은 두 번째 명령의 일반 파일입니다. suivi6 파일을 수정하지 않은 경우 해당 파일에서 진행 상황을 생성해 볼 수 있습니다(그러나 이 파일은 원래 대상이 아닌 현재 이미지이므로 유지해야 합니다).
빌드 모드를 참조하세요 info ddrescue Generate
. 어쩌면 mv suivi6 sda2.img
덜 혼란스러운 이름을 주기 위해서일 수도 있습니다. (또한 일반 맵 파일은 더 작은 텍스트 파일인 반면 전체 디스크 크기를 가지고 있는지 확인하십시오).