跳到主要內容

在 Linux 下救援 MBR/GPT + XFS 分割表

上個月,我在處理一台客戶的伺服器時,遇到了一个棘手的問題:CentOS 7 系統的 GPT 分割表遺失了。

客戶的伺服器使用的是 Kingston SSD 240GB 硬碟,檔案系統為 XFS,採用 GPT 分割表。在開機過程中,伺服器會出現錯誤訊息,無法正常啟動。

我首先嘗試使用 Testdisk 來恢復 GPT 分割表。Testdisk 是一款功能強大的磁碟救援工具,可以修復 MBR 和 GPT 分割表,並恢復已刪除的檔案。

然而,Testdisk 無法識別 XFS 檔案系統。在 Testdisk 中,我只能看到一些分散的分區,無法將其組合成完整的 GPT 分割表。

接下來,我嘗試了 Linux 上的各種磁碟管理工具,包括 Gparted、Gdisk、Fdisk 和 Parted。但這些工具都無法修復 GPT 分割表。

最後,我轉向 Windows 平台,嘗試使用各種硬碟救援軟體。我試用了 DiskGenius、EaseUS 等多款軟體,但大多數軟體都不支持 XFS 檔案系統。

唯一能識別 XFS 檔案系統的軟體是 Activite Undelete。但 Activite Undelete 是一款付費軟體,價格並不便宜。

由於成本考量,我最終放棄了使用 Activite Undelete。

峰迴路轉,Gpart 拯救

就在我準備放棄的時候,我突然發現了一個新的解決方案:使用 Gpart 的分割表寫入功能。

Gpart 是一款 Linux 上的命令列磁碟管理工具,功能類似於 fdisk。它不僅可以創建和刪除分割區,還可以讀取和寫入分割表。

我嘗試使用 Gpart 的分割表寫入功能來恢復 GPT 分割表。具體的步驟如下:

  1. 使用 fdisk -l 命令列出所有磁碟。
  2. 識別要恢復 GPT 分割表的磁碟。
  3. 使用 gpart -W /dev/sdX /dev/sdX 命令將磁碟的當前狀態寫入 GPT 分割表。

其中,/dev/sdX 應替換為要恢復 GPT 分割表的磁碟的設備名稱。

經過一番操作,GPT 分割表終於被成功恢復。伺服器也得以正常啟動。

結語

這次 GPT 分割表遺失的事件讓我學到了很多。我了解到,XFS 檔案系統在硬碟救援方面存在一些兼容性問題。在遇到類似問題時,除了 Testdisk 之外,還可以嘗試使用 Gpart 的分割表寫入功能。

希望我的經驗能夠幫助到其他遇到類似問題的使用者。

留言

這個網誌中的熱門文章