며칠 전 180GB 파티션에서 ddrescue를 실행했지만 3일 후(그리고 99.91% 복구 및 마지막 확인 단계 3에서) 시스템이 정지되었으므로 끄기 버튼을 계속 눌러 컴퓨터 전원을 끕니다.
켰을 때 이미지파일과 로그파일을 백업했는데 로그파일이 완전히 복사가 안되고 복사할 때 오류가 났다고 하는데 로그파일에서 106kb에서 104kb가 복사됐네요(이상한건 ).
그리고 ddrescue 명령을 다시 실행하면 "error in mapfile discoC.Logfile, line 4092"라는 메시지가 나타납니다.
명령:
sudo ddrescue -d -r0 /dev/sdb3 discoC.img discoC.Logfile
이것은 나의PasteBin의 불완전한 로그 파일, 라인 4092가 마지막 라인입니다. 다음은 로그 파일의 일부입니다.
# Mapfile. Created by GNU ddrescue version 1.23
# Command line: ddrescue -d -r0 /dev/sdb3 discoC.img discoC.Logfile
# Start time: 2021-12-15 01:56:33
# Current time: 2021-12-18 20:11:51
# Scraping failed blocks... (forwards)
# current_pos current_status current_pass
0xC5A65E00 / 1
# pos size status
0x00000000 0x00003400 -
0x00003400 0x00000200 +
0x00003600 0x00000800 -
0x00003E00 0x00000800 +
0x00004600 0x00000200 -
0x00004800 0x00000200 +
0x00004A00 0x00000400 -
....... (Lot of - and +)........
0xC564C600 0x00000400 +
0xC564CA00 0x00000600 -
0xC564D000 0x00000200 +
0xC564D200 0x00000200 -
0xC564D400 0x00000800 +
0xC564DC00 0x00000400 -
0xC564E000 0x00000600 +
0xC564E600 0x00000200 -
0xC564E800 0x00001A00 +
0xC5650200 0x00000200 -
0xC5650400 0x00000E00 +
0xC5651200 0x00000200 -
0xC
프로세스가 거기에서 계속될 수 있도록 도와주시겠어요?
답변1
에 따르면https://www.electric-spoon.com/doc/gddrescue/html/Mapfile-structure.html맵파일(로그파일)은 텍스트 편집기로 해석하고 편집하기가 매우 쉽습니다.
나는 그것의 복사본을 만들고 라인 4091과 4092를 제거하고 싶습니다. 그러면 ddrescue가 기록한 마지막 지점에서 선택할 수 있을 것으로 예상됩니다.
정말 많이 실패한 것 같습니다. 끝에서부터 거꾸로 실행하면(예: -R 스위치 추가) 데이터 덩어리를 더 빨리 캡처할 수 있는지 궁금합니다. (이렇게 하려고 해도 아무런 해가 없습니다).
답변2
질문을 너무 늦게 읽어서 죄송합니다.
누락된 라인 4092에 대해 유효한 것을 복원하는 것은 쉽습니다.
0xC5651400 <remaining-size> ?
어디:
0xC5651400
0xC5651200
4091 행에서 이전 청크의 시작 위치 와 해당 블록 청크의 크기를 합산하여 얻은 새로운 블록 청크의 시작입니다0x00000200
.?
이는 아직 시도되지 않은 곳 에서 시작하는 블록에0xC5651400
대해 복제를 시도해야 함을 의미합니다.<remaining size>
: 아래를 참조하세요.
값을 계산하는 방법 <remaining size>
:
- 로그 파일에 라인 4093이 있는 경우: 라인 4093의 시작 오프셋과 라인 4092(예:
0xC5651400
)에 언급된 계산된 시작 오프셋 간의 차이(16진수) - 또는 4093행이 없는 경우: 파티션 크기
dev/sdb3
와 4092행의 시작 오프셋 간의 차이입니다(예:0xC5651400
).
파티션 의 크기는 다른 이미지 파일에 대한 복제 프로세스를 시작하거나 로그 파일 없이 다른 로그 파일을 시작하는 것과 dev/sdb3
같은 터미널 명령을 통해 알 수 있습니다 . fdisk -l
ddrescue는 "N 바이트 복사 정보"와 같은 메시지를 표시해야 합니다. 섹터 크기(예: 512)로 나누어 16진수로 변환해야 할 수도 있습니다.