손상된 드라이브에서 이미지를 찾는 방법(손실된 데이터 복구)

손상된 드라이브에서 이미지를 찾는 방법(손실된 데이터 복구)

현재 드라이브(HDD) 오류가 발생한 것 같습니다. 추가 저장을 위한 단일 파티션 드라이브입니다. 설치하려고 하면 다음 오류가 발생합니다.

# mount /dev/sdc1 /mnt
mount: wrong fs type, bad option, bad superblock on /dev/sdc1,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.

제안된 대로 dmesg를 확인하세요.

# dmesg | tail
[12641.405658] blk_update_request: critical medium error, dev sdc, sector 2064
[12641.410139] Buffer I/O error on dev sdc1, logical block 2, async page read
[12641.415774] EXT4-fs (sdc1): couldn't mount as ext3 due to feature incompatibilities
[12641.420578] EXT4-fs (sdc1): couldn't mount as ext2 due to feature incompatibilities
[12644.186523] sd 5:0:0:0: [sdc] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[12644.186543] sd 5:0:0:0: [sdc] tag#0 Sense Key : Medium Error [current] 
[12644.186556] sd 5:0:0:0: [sdc] tag#0 Add. Sense: Unrecovered read error
[12644.186570] sd 5:0:0:0: [sdc] tag#0 CDB: Read(10) 28 00 00 00 08 10 00 00 08 00
[12644.186580] blk_update_request: critical medium error, dev sdc, sector 2064
[12644.191255] EXT4-fs (sdc1): can't read group descriptor 1

내가 말했듯이, 나는 운전이 밤에 있을 것이라고 가정하고 있으므로 최소한 거기에 있는 모든 정보를 저장하고 싶습니다(그런데 더 중요한 것은). 작동하는지 확인하기 위해 드라이브에서 500GB를 줄여 보았습니다.

# ddrescue -d -s 500G /dev/sdc data.img data.log

불행하게도 ssh를 통해 실행 중인데 파이프가 파손되었거나 그래서 약 150GB의 파일이 생겼고 img마운트하려고 할 때 드라이브 자체를 마운트하려고 할 때와 동일한 오류가 발생했습니다. ㅋㅋㅋ):

# mount data.img /mnt -o loop
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.

저장해야 하는 정보를 어떻게 얻을 수 있나요?

답변1

이 문제를 발견한 사람을 위해 다른 도구를 사용하지 않고도 문제를 해결할 수 있었습니다 photorec. 혹시나 해서 풀디스크 이미지를 만들어서 사용했는데 ddrescue결국 필요없게 되었네요.

SMART 데이터를 실행 badblocks하고 살펴보니 드라이브 시작 부분 어딘가에 불량 섹터가 1개 있는 것으로 확인되었습니다. 분명히 이곳은 슈퍼블록이 저장되는 곳이므로 파티션이 인식되지 않고 마운트될 수 없는 것입니다.

나는 달려가려고 노력 e2fsck -cfpv /dev/sdc1했고

e2fsck: Attempt to read block from filesystem resulted in short read while trying to open /dev/sdc1
Could this be a zero-length partition?

저는 바보이고 무슨 일이 일어나고 있는지 모르지만 분명히 섹터를 0으로 덮어쓰고 다시 실행하면 e2fsck마법이 작동하고 파티션이 복구됩니다. 그 후에 파티션을 마운트하고 다음에서 모든 파일을 복사할 수 있습니다. 하드 드라이브를 창밖으로 던지기 전에. 내가 실행한 명령은 다음과 같습니다(예, e2fsck파티션이 인식되고 마운트 가능하다는 것을 확인하자마자 중지했습니다).

# dd if=/dev/zero of=/dev/sdc1 bs=4096 count=1 seek=0
1+0 records in
1+0 records out
4096 bytes (4.1 kB, 4.0 KiB) copied, 0.000367146 s, 11.2 MB/s

# e2fsck -fy -b 32768 /dev/sdc1
e2fsck 1.46.2 (28-Feb-2021)
Superblock needs_recovery flag is clear, but journal has data.
Recovery flag not set in backup superblock, so running journal anyway.
/dev/sdc1: recovering journal
Pass 1: Checking inodes, blocks, and sizes
^C/dev/sdc1: e2fsck canceled.

/dev/sdc1: ***** FILE SYSTEM WAS MODIFIED *****

전체 설명과 모든 크레딧은 다음과 같습니다.이 남자나는 우주가 그에게 풍부한 건강과 부를 축복하고 그의 깊은 소원을 들어주기를 바랍니다!

관련 정보