首先說下環境:
CentOS 7
文件系統:xfs
然后機房突然斷電。
重啟后一個分區表丟失/dev/sdb1
修復手段:
請參考鏈接:https://www.cgsecurity.org/wiki/Testdisk_%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97#.E7.97.87.E7.8A.B6
這個 恢復范例 將引導你一步一步地用TestDisk來恢復丟失的分區和修復一個毀壞的分區。閱讀了這個指南之后,你就可以恢復自己的數據了。我們很歡迎本TestDisk手冊 的其他語言翻譯版本。
Contents
[hide]問題舉例
我們有一個容量 36GB 的硬盤,包含着3個分區。 但是很不幸地;
- NTFS主分區的boot扇區損壞
- 一個邏輯 NTFS 分區被意外刪除
本 恢復范例 引導你一步一步地用TestDisk通過以下途徑,恢復這些 '丟失的' 分區:
- 重寫毀壞的NTFS boot扇區
- 恢復意外刪除的邏輯NTFS分區
我們可以一模一樣地照着下面的步驟完成對FAT32分區的恢復(不是NTFS)。 這里也有其他的 恢復范例。對於有關 FAT12, FAT16, ext2/ext3, HFS+, ReiserFS 和其他分區類型的信息,請參閱 運行 TestDisk 程序.
唯一需要的條件:
- TestDisk 需要用管理員權限來運行。
使用 TestDisk 的重點:
- 用
方向鍵
和上一頁/下一頁
按鍵在TestDisk 中導航。- 然后, 按
Enter
鍵確認你的選擇.- 若要返回前一頁或者退出TestDisk, 按 q (Quit) 鍵。
- 若要在 TestDisk 下保存修改,按
y
(Yes) 或者Enter
鍵來確認- 如果確實要把分區信息寫入主引導記錄(MBR),應該選擇 "Write" 選項並按
Enter
鍵。
症狀
如果硬盤的主分區容納着一個操作系統,那么由於毀壞的boot扇區,這個操作系統很可能不再能啟動。如果這個硬盤是第二(數據)驅動器,你可以把它接到另一台計算機上(通常接到CD/DVD的接口),然后下面的症狀就會被觀察到:
- Windows 資源管理器 或 磁盤管理器 把第一個主分區顯示為 raw (沒有格式化) 並且 Windows 提示:
The drive is not formatted, do you want to format it now?(該驅動器沒有格式化,現在格式化它嗎?)
[ 不應該 在不知道為什么的情況下格式化它!] - 一個邏輯卷不見了。 在 Windows 資源管理器中, 這個邏輯卷不再可用。 Windows 磁盤管理器(Disk Management Console) 僅僅在這個邏輯卷的位置顯示 "未分配的空間" 。
運行 TestDisk 程序
如果 TestDisk 還沒有被安裝, 可以從這里下載 TestDisk Download。然后解壓縮這個歸檔文件,包括子文件夾。
若要從 硬盤,U盤,智能卡等設備中恢復丟失的分區 或者 修復文件系統,你需要足夠的權限來訪問這個物理設備。
在 DOS 下, 執行 TestDisk.exe
在 Windows 下, 從一個處於管理員組的賬戶打開 TestDisk (ie
testdisk-6.13/testdisk_win.exe
) . 在 Vista 下, 右擊 testdisk_win.exe 然后 "以管理員身份運行" TestDisk.在 Unix/Linux/BSD 下, 需要用 root 賬戶來運行 TestDisk (ie.
sudo testdisk-6.13/testdisk_static
)在 MacOSX 下, 不過你不是 root, TestDisk (ie
testdisk-6.13/testdisk
) 將會在你的確認之后以sudo重新運行。在 OS/2下, TestDisk 不能處理物理設備,只能處理磁盤鏡像.很抱歉.
若要從一個媒體鏡像中恢復分區或者修復一個文件系統鏡像,執行
testdisk image.dd
在一個raw磁盤鏡像中進行處理testdisk image.E01
從一個 Encase EWF 鏡像中恢復文件testdisk 'image.???'
如果 Encase 鏡像被分割成若干文件
若要修復一個 TestDisk沒有列出來的文件系統, 執行
testdisk device
, 也就是說,
testdisk /dev/mapper/truecrypt0
或者testdisk /dev/loop0
從一個 TrueCrypt 加密分區中 修復 NTFS or FAT32 boot 扇區文件. 同樣的方法對於使用 cryptsetup/dm-crypt/LUKS 加密的分區也管用.testdisk /dev/md0
to repair a filesystem on top of a Linux RAID device.
新建日志
![]() |
- 選擇 Create 來讓 Testdisk 新建一個日志文件( log file) ,里邊包含了一些技術信息和消息, 除非你要往一個日志里追加信息 log 或者 你從只讀存儲器里執行 TestDisk 而且必須在別的地方建立日志 log。
- 選擇 None 如果你不想讓過程中的細節和消息記錄到日志文件里 log file (比如當 Testdisk 是在只讀位置執行的時候,這很有用).
- 按 Enter 鍵以繼續.
選擇磁盤
所有的硬盤都應該能被TestDisk檢測到並且輔以正確的大小列出來:
![]() |
- 用 上/下 鍵 來選擇丟失分區的硬盤。
- 按 Enter 鍵繼續。
If available, use raw device
/dev/rdisk*
instead of /dev/disk*
for faster data transfer.
選擇分區表類型
TestDisk 會顯示分區表類型。
![]() |
- 選擇正確的分區表類型 - 在 TestDisk 自動檢測分區表類型之后,一般預設的那個值是正確的。
- 按 Enter 鍵繼續。
當前的分區表狀態
TestDisk 顯示這個菜單的時候 (參見 TestDisk Menu Items).
![]() |
- 用預設的“analyze”(分析)選項來檢查當前的分區結構並搜索丟失的分區。
- 分析過程中按 Enter 鍵繼續。
然后,當前的結構就會被列出來。 接下來就可以在當前的分區結構中檢查丟失或錯誤的分區了。
![]() |
第一個分區顯示了兩次,它指向了一個毀壞的分區或一個無效的分區表入口。
無效的 NTFS boot 指向了一個錯誤的 NTFS boot 扇區, 所以這是一個損壞的文件系統。
在擴展分區中,只有一個邏輯分區(分區標簽為2)可用。 有一個邏輯分區不見了。
- 選 Quick Search (快速搜索)來繼續。
快速搜索分區
TestDisk displays the first results in real time. | (click on thumb to display the image). |
在 Quick Search(快速搜索)的過程中, TestDisk 找到了兩個分區,包括那個不見的邏輯分區(標簽為 Partition 3
)。
![]() |
- 高亮這個分區並按 p 來列出文件 (若要返回前一頁,請按 q ).
這里所有的目錄和文件都正確列出來了。
- 按 Enter 鍵繼續。
保存分區表 還是要 尋找更多分區?
![]() |
- 當全部分區都可用的時候 並且數據已正確列出,應該選 Write 菜單項保存分區結構. 菜單項
Extd Part
gives you the opportunity to decide if the extended partition will use all available disk space or only the required (minimal) space. - 當一個分區,第一個,仍然找不到, 高亮菜單項 深度搜索 (沒有自動進行的時候) ,按 Enter 鍵繼續.
有一個分區仍然找不到: 深度搜索
Deeper Search 深度搜索也會找尋 FAT32的備份boot扇區 以及 NTFS backup boot superblock, ext2/ext3 backup superblock 來查找更多的分區,
它將會掃描每一個柱面。 | (click on thumb). |
深度搜索之后,結果會像下面這樣顯示出來:
第一個分區 "Partition 1" 被用 backup boot扇區 找到了。 屏幕上的最后一欄寫着, "NTFS found using backup sector!" 還有分區尺寸。 分區2 "partition 2" 被顯示了兩次,而且大小不同。
顯示為 D(eleted) 的分區將不會被恢復 如果您讓它們這樣顯示出來。 兩個狀態為 D 的分區將會被刪除,因為他們互相重疊了。您應該進行識別,以決定到底恢復哪一個分區。
![]() |
- 高亮第一個
Partition 2
然后按 p 來列出其包含的數據。
The file system of the upper logical partition (label Partition 2) is damaged | (click on thumb). |
- 按 q 來返回前一頁。
- 讓這個文件系統損壞的分區
Partition 2
標記上D(deleted)
. - 高亮下邊的第二個分區
Partition 2
- 按 p 來顯示內容。
![]() |
它起作用了,您的文件均被列出,您找到了正確的分區!
- Use the left/right arrow to navigate into your folders and watch your files for more verification
Note: FAT directory listing is limited to 10 clusters - 一些文件可能沒有出現 但這並不影響恢復。
- Press q for Quit to go back to the previous display.
- The available status are Primary, * bootable, Logical and Deleted.
Using the left/right arrow keys, change the status of the selected partition from D(eleted)
to L(ogical)
. This way you will be able to recover this partition.
set partition to recover |
Hint: read How to recognize primary and logical partitions?
Note: If a partition is listed *(bootable) but if you don't boot from this partition, you can change it to Primary partition.
- 按 Enter 鍵繼續。
恢復分區表
現在已經可以寫入新的分區結構了。
注意: 擴展分區是自動設置的。 TestDisk 是用不同的分區結構來辨認它們的。
![]() |
- 如果 所有分區都被列出 ,當且僅當在這種情況下, 在 Write 處按 Enter 鍵, y 鍵和 OK.
至此, 這些分區就注冊在了分區表里。
NTFS Boot扇區恢復
第一個分區的boot扇區(Partition 1
)還是處於損壞狀態。是時候該修復它了。 NTFS boot扇區的狀態很糟糕,然而備份的boot扇區正常可用。 兩個Boot扇區並不是完全一樣的。
![]() |
- 選擇Backup BS來拷貝備份的扇區覆蓋到目標位置,按Enter確認, use
y
to confirm and next OK.
更多有關於在TestDisk菜單下修復Boot扇區的信息 . 如下的信息會被顯示:
![]() |
現在boot扇區和它的備份扇區都狀態良好並且保持一致:NTFS boot扇區已經成功地恢復了!
- 按 Enter 退出.
![]() |
- TestDisk 顯示 You have to restart your Computer to access your data(您需要重新啟動您的計算機以使修改生效),所以按
Enter
最后一次然后重新啟動計算機吧。
恢復刪除的文件
TestDisk 可以恢復
如果這不管用,或者對於其他文件系統,請嘗試 PhotoRec,一個基於模式匹配的文件恢復工具。
返回 TestDisk 主頁