Я уничтожил таблицу разделов своего ноутбука.
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 с мощным использованием.