qcow2 파티션이 없는 ext3 파일 시스템에서 대체 슈퍼블록을 찾는 방법은 무엇입니까?

qcow2 파티션이 없는 ext3 파일 시스템에서 대체 슈퍼블록을 찾는 방법은 무엇입니까?

e2fsckqcow2 이미지 파일 내의 파일 시스템이 인식을 거부 하는 흥미로운 사례가 있었습니다 . 사용하면 testdisk파티션이 표시되어 일부 표시가 남습니다.

이 문제가 발생하는 첫 번째 이유는 가상 머신의 호스트가 중단되기 때문입니다.

None그래서 파티션의 "유형"을 선택 하고 다음과 같은 결과를 얻습니다.

TestDisk 6.14, Data Recovery Utility, July 2013
Christophe GRENIER <[email protected]>
http://www.cgsecurity.org

Disk /dev/loop0 - 120 GB / 112 GiB - 235156929 sectors

The harddisk (120 GB / 112 GiB) seems too small! (< 4079258 TB / 3710063 TiB)
Check the harddisk size: HD jumpers settings, BIOS detection...

The following partitions can't be recovered:
     Partition               Start        End    Size in sectors
>  ext3                         640  251657855  251657216 [DATA]
   ext3                     1864062  253521277  251657216 [DATA]
   ext3                     1864064  253521279  251657216 [DATA]
   ext3                     2387454  254044669  251657216 [DATA]
   ext3                     2387456  254044671  251657216 [DATA]
   ext3                     2911614  254568829  251657216 [DATA]
   ext3                     2911616  254568831  251657216 [DATA]
   ext3                     3435774  255092989  251657216 [DATA]
   ext3                     3435776  255092991  251657216 [DATA]
   ext3                     3959934  255617149  251657216 [DATA]

[ Continue ]
ext3 blocksize=4096 Large file Sparse superblock, 128 GB / 119 GiB

슈퍼 블록이 그대로 그대로 있는 것 같지만, 슈퍼 블록이 mount어디에 있는지 모르는 한 그 중 하나를 사용하도록 어떻게 확신할 수 있습니까?

kpartxqcow2 에서 정상적인 작업을 수행한 후에 /dev/loop0는 아무것도 표시되지 않습니다.losetup -o 32256 /dev/loop0 imagefile

이미지 자체는 ( qemu-img info)입니다.

file format: qcow2
virtual size: 120G (128849018880 bytes)
disk size: 112G
cluster_size: 65536
Format specific information:
    compat: 0.10

참고: 백업이 있지만 몇 주가 지났기 때문에 가능하면 디스크에 있는 내용을 백업과 비교해 보겠습니다. 대부분은 Git 및 Mercurial 저장소이므로 다른 곳에서 다시 가져올 수 있습니다.

답변1

글쎄, 내 질문에 너무 빨리 대답해서 미안하지만 충격적인 사실을 발견했습니다. 파일 크기 .qcow2는 120400379904바이트이고 이미지를 변환하면 qemu-img convert -O raw128849018880바이트 크기의 이미지가 제공됩니다.

크게 다릅니다.

이제 발견된 섹터 크기를 취하면 testdisk512*251657216이 128848494592라는 것을 알 수 있습니다. 이는 "원본" 이미지의 파일 크기보다 정확히 512바이트 더 큽니다. 이것은 유망해 보이는데, 나는 속으로 생각했다.

이 파일은 몇 년 전에 생성했기 때문에 희소 이미지로 생성되었는지는 확실하지 않습니다. 그런데 그렇다면 qemu-img info, 이미지 포맷을 변환해 볼까 하는 생각이 들었습니다.원본 파일은 변경되지 않는다는 점을 기억하세요!

qemu-img convert -O raw input output

느리더라도 작업을 완료합니다.

파일을 다시 실행하면 testdisk놀라울 정도로 잘 작동했지만, -o sb=....

TestDisk 6.14, Data Recovery Utility, July 2013
Christophe GRENIER <[email protected]>
http://www.cgsecurity.org

Disk bigdata/vm_disk_vdb.img - 128 GB / 120 GiB - CHS 15666 255 63
     Partition               Start        End    Size in sectors
>P ext3                     0   1  1 15664 239 62  251657216 [DATA]


Structure: Ok.


Keys T: change type, P: list files,
     Enter: to continue
ext3 blocksize=4096 Large file Sparse superblock, 128 GB / 119 GiB

testdisk그런 다음 파일을 디렉터리에 복사하고 이를 내 백업과 비교할 수 있습니다.

다음과 같은 일부 손상이 있습니다.

ext2fs_read_inode(ino=384492884) failed with error 2133571369.

다른 사소한 문제도 있지만 이는 전체 파일 및 폴더의 약 0.1%에만 영향을 미칩니다. testdisk손상된 것으로 간주되어야 하는 파일을 찾으려면 다음 단계를 수행하여 시작하십시오 .

testdisk /log imagefile.img

관련 정보