testdisk - 파티션 테이블 복구

testdisk - 파티션 테이블 복구

노트북의 파티션 테이블을 파괴했습니다.

Testdisk는 다음을 보고합니다.

Disk laptop.img - 250 GB / 232 GiB - CHS 30402 255 63 (RO)
 Partition               Start        End    Size in sectors
>P MS Data                   435868     456606      20739 [NO NAME]
 P MS Data                 19232600   19235479       2880 [NO NAME]
 D MS Data                 41945087   83890143   41945057
 D MS Data                 57151486  168579069  111427584
 D MS Data                 67637246  141037565   73400320
 D MS Data                151523326  193466365   41943040
 D MS Data                170617328  170618223        896
 D MS Data                170631168  170634047       2880
 D MS Data                171338232  171344405       6174 [Boot]
 D MS Data                172008235  172231918     223684 [NO NAME]
 P MS Data                193466368  214437887   20971520
 D MS Data                217321375  225321678    8000304 [root]
 D MS Data                224923646  308809725   83886080 [media]
 D MS Data                308809728  420237311  111427584
 D MS Data                418910206  481824765   62914560 [vmimages]

내 파티션 테이블에는 3개의 기본 파티션이 있습니다.

 1. WinXP Home
 2. /boot
 3. LVM

LVM 내부에는 9개 또는 10개의 LVM 파티션이 있었습니다. 그 중 하나는 내 집이었습니다(luks로 암호화됨).

testdisk는 내 파티션 테이블이나 다른 파티션을 복구할 수 없습니다. [P]가 있는 파티션에는 유용한 데이터가 없습니다.

dd를 사용하여 파티션을 추출하고 가능한 한 많은 파일을 복구하려고 합니다. 예를 들어 어떻게 추출할 수 있는지에 대한 아이디어가 있습니다. 위 testdisk 보고서의 [root] lvm 파티션은 무엇입니까?

내 디스크도 손상되었을까 걱정됩니다.

답변1

알았어, 지금까지 내가 한 일은 이렇다. 다른 사람들이 스트레스를 받는 순간에 이 글을 읽지 않기를 진심으로 바랍니다.

그래서 두 가지가 필요해요

a. partition table
b. LVM configuration.

내 디스크 이미지에 어떤 것이 있나요? 유용한 정보를 추출하려면 디스크 이미지에서 문자열을 검색하세요.

# strings -t d laptop.img > laptop.img.str

이 파일은 매우 큰 파일일 수 있다는 점을 명심하세요. 250Gb 디스크의 경우 내 laptop.img.str은 약 60Gb입니다!

이를 수행해야 합니다. 250Gb 디스크 이미지 파일이 아닌 60Gb 파일에서 검색하는 것이 훨씬 더 효율적입니다.

# head -1 /etc/lvm/backup/VG_file 

다음과 같은 결과가 반환됩니다.

# Generated by LVM2 version 2.02.98(2) (2012-10-15): Mon Nov  5 09:10:16 2012

이제 laptop.img.str에서 "# 생성된 LVM2 버전"을 검색해야 했고 그렇게 했습니다.

# grep -E --color '# Generated by LVM2 version ' laptop.img.str > LVM2.extracts

나는 많은 것을 발견했습니다. 내 날짜와 다음을 정렬했습니다.

24956608512 # Generated by LVM2 version 2.02.97(2) (2012-08-07): Sat Sep 22 16:22:39 2012

결과였습니다.

okei lvm2 구성에 유용한 것이 있습니다.

다음 단계.

거의 모든 디스크에는 512바이트 섹터가 있으므로 계산해 보세요.

# echo 24956608512/512|bc
48743376

흠 흥미로운 것을 찾을 수 있기를 바랍니다.

# dd if=laptop.img bs=512 skip=48743376 count=1 

사실 아주 아름다운 것이 내 화면에 나타났어요

# Generated by LVM2 version 2.02.97(2) (2012-08-07): Sat Sep 22 16:22:39 2012

contents = "Text Format Volume Group"
version = 1

description = "Created *after* executing 'lvextend -l +100%FREE /dev/vg01/mmoviess'"

creation_host = "mylaptop"  # Linux mylaptop 3.5.3-1-ARCH #1 SMP PREEMPT Sun Aug 26 09:14:51 CEST 2012 x86_64
creation_time = 1348320159  # Sat Sep 22 16:22:39 2012

개수를 1에서 4로 변경하면 이제 전체 LVM2 conf 파일이 생겼습니다. 안전한 곳에 백업하고 파티션 테이블을 계속 사용하세요.

이제 3개의 기본 파티션이 생겼습니다. sda1 - sda2 - sda3 그래서 나는 laptop.img.str에서 그것들을 검색하려고 생각했습니다.

마지막으로 위의 단계를 통해 나는 이것을 발견했습니다.

Disk /dev/sda: 250.1 GB, 250059350016 bytes, 488397168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000b13ab

   Device Boot      Start         End Blocks   Id System
/dev/sda1   *          20    41945087    20972534    7  HPFS/NTFS/exFAT
/dev/sda2        41945088    42469375      262144   83  Linux
/dev/sda3        42469376   488397167   222963896   8e  Linux LVM

Testdisk 보고서는 전혀 도움이 되지 않았습니다.

hexdump는 나의 새로운 가장 친한 친구가 되었습니다!

또한 유용합니다: -a -b 매개변수를 사용하여 grep 및 오프셋 매개변수를 사용하여 losstup! 추가 소프트웨어 없음 - 추가 설치 없음 - 아무것도 없습니다.

강력하게 사용하는 기본 cmd입니다.

관련 정보