使用TestDisk恢復分割區

使用TestDisk恢復分割區

我使用的是 Windows 8.1 專業版。我有一個 60GB SSD 來啟動,我的大部分數據都在 1TB SSHD 上。 SSHD 只格式化了一個分割區。我最近嘗試將該分割區縮小到雙啟動 CentOS,但縮小到一半失敗了。當我重新啟動時,無法讀取 SSHD 中的任何內容。我在驅動器上運行 chkdsk /r,它發現並修復了大量問題(幾乎驅動器上的每個文件,或者看起來如此)。修復問題後,我的一些文件可以訪問,但幾乎所有內容都丟失了。分割區總大小是正確的,但分割區上的資料量(根據 Windows)大約是應有的一半。

我在 TestDisk 中運行了更深層的搜索,它發現了大約 50 個分割區,其中大多數都表示檔案系統是Mac HFS(其他的是MS Data)。如果我知道 SSHD 之前被格式化為一個大分割區,我可以在 TestDisk 中執行任何操作來修復它並手動重置分割區表嗎?我只是不太確定我該做什麼。

答案1

您必須了解兩件事之間的差異:

  • 分割區是硬碟的連續部分,由磁區號標識,例如磁區 2,048 到 41,943,040。分區是在稱為 a 的資料結構中定義的分區表,它只是扇區範圍和一些簡單關聯資料的清單(例如用於標識分區包含的資料類型的類型代碼)。兩種常見的分割表類型是 MBR 和 GPT,儘管這對您的問題來說並不重要。
  • 檔案系統是更複雜的資料結構,可以在磁碟上儲存、組織和定位單一檔案。檔案系統通常儲存在分割區內,這僅僅意味著它們佔據分區表識別為特定分區的磁區範圍。有許多不同的檔案系統可用,例如 FAT、NTFS、HFS+、ext4fs 等。

為了使用檔案系統,通常必須有完整的分割表,以便作業系統可以找到檔案系統。 (例外情況是檔案系統佔用整個磁碟,這在軟碟中很常見,有時在USB 隨身碟中也是如此。)TestDisk 透過搜尋檔案系統的證據並建立新的分割表條目以匹配它找到的任何檔案系統來修復損壞的分區表-本質上是從通常的情況向後推算。測試盤可以不是修復損壞之內不過,檔案系統。為此,您需要使用特定於檔案系統的修復工具,例如CHKDSK.EXE在 Windows 中用於 FAT 或 NTFS,或e2fsck在 Linux 中用於 ext2/3/4fs。

分區調整大小操作涉及調整檔案系統資料結構和調整分區資料結構。當分割區調整大小操作失敗時,它可能會使檔案系統處於不一致狀態,並且也可能使分割表處於不一致狀態。如果分割區表資料已調整為比檔案系統剩餘部分所需的分割區更小,則您可以使用分割工具(例如GPT fdisk ( gdisk)刪除分區表條目並使用以下命令建立新條目相同的起點而是延伸到所需尺寸的終點。但這遠遠不能保證有效,如果你犯了一個錯誤,你最終可能會造成更多問題。不過,可能值得使用gdisk或其他一些工具來檢查分割區的大小;如果您嘗試縮小的 NTFS 分割區在gdisk其他修改分割區的工具中顯示較小僅有的(不是檔案系統),那麼可能值得嘗試調整分割區大小。 OTOH,如果gdisk顯示該分割區與下一個分割區或磁碟末端之間幾乎沒有空間或沒有空間,那麼您不應該進一步搞亂它,而應該專注於檔案系統級修復。

您的問題更有可能完全是由檔案系統損壞引起的。如果是這樣,並且CHKDSK.EXE無法恢復更多內容,那麼您唯一的希望就寄託在第三方恢復工具上。就像是攝影記錄例如,也許能夠恢復單一檔案。 (我聽說有一些特定於 Windows 的工具可以在 NTFS 磁碟區上比 PhotoRec 做得更好,但我沒有任何方便的 URL。)可能有一些類似第三方的CHKDSK工具可以做得更好工作也是如此,但我不知道有這樣的工具;我提到這一點是因為您可能值得花時間對這個主題進行網路搜尋。

還有一則評論:您所處的狀態是,嘗試復原磁碟時對磁碟造成的損壞幾乎與不會發生任何不良情況一樣多。因此,最好對磁碟進行低階備份。有 Windows 工具可以做到這一點,但我不熟悉它們。在 Linux 中,類似的東西dd if=/dev/sda of=/path/to/backup/file.img可以解決問題,/path/to/backup/另一個實體磁碟上的目錄路徑在哪裡,該磁碟有足夠的可用空間來容納全部的您正在備份的磁碟(/dev/sda在本例中)。如果您未能進行此類備份,您所犯的任何錯誤都會使恢復某些資料變得更加困難,甚至可能不可能。

如果所有這些都超出您的能力範圍,您可以使用付費資料恢復服務。不過,我手邊沒有任何 URL,而且這類服務往往價格昂貴。

相關內容