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 для извлечения разделов и попытаться восстановить столько файлов, сколько смогу. Есть идеи, как я могу извлечь, например, раздел [root] lvm из отчета testdisk выше?

Боюсь, что мой диск тоже был поврежден.

решение1

okei, вот что я сделал до этого момента. Я очень надеюсь, что другим людям никогда не придется читать это в стрессовые моменты.

Итак, мне нужны две вещи.

a. partition table
b. LVM configuration.

есть ли они в моем образе диска? Найдите строки в вашем образе диска, чтобы извлечь любую полезную информацию.

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

имейте в виду, что это может быть очень большой файл. Для диска в 250 Гб мой laptop.img.str будет весить около 60 Гб!

Нам нужно это сделать, потому что... гораздо эффективнее искать в файле размером 60 Гб, а не в файле образа диска размером 250 Гб.

# 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

так что теперь я должен искать "# Generated by LVM2 version" в laptop.img.str и я так и сделал

# 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. Сохраните его в безопасном месте и продолжайте работу с таблицей разделов.

Я знаю, что у меня есть три (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 стал моим новым лучшим другом!

также полезно: grep с параметрами -a -b и losetup с параметром offset ! никакого дополнительного ПО - никаких дополнительных установок - ничего.

просто базовые cmd с мощным использованием.

Связанный контент