我毀掉了筆記型電腦的分割區表。
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
okei,這就是我到目前為止所做的事情。我真的希望其他人永遠不必在有壓力的時刻讀到這篇文章。
所以我需要兩件事
a. partition table
b. LVM configuration.
我的磁碟映像中有嗎?在磁碟映像中搜尋字串以提取任何有用的信息。
# strings -t d laptop.img > laptop.img.str
請記住,這可能是一個非常大的文件。對於 250Gb 磁碟,我的laptop.img.str 約為 60Gb!
我們需要這樣做,因為在 60Gb 檔案中搜尋比在 250Gb 磁碟映像檔中搜尋效率更高。
# 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中搜尋“#Generated by LVM2 version”,我做了
# 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 和偏移參數的 losetup !沒有額外的軟體 - 沒有額外的安裝 - 什麼都沒有。
只是基本的命令,但具有強大的用途。