在修復數據前,您必須先對分區丟失的數據盤創建快照,在快照創建完成后再嘗試修復。如果在修復過程中出現問題,您可以通過快照回滾將數據盤還原到修復之前的狀態。
前提條件
在修復數據前,您必須先對分區丟失的數據盤創建快照,在快照創建完成后再嘗試修復。如果在修復過程中出現問題,您可以通過快照回滾將數據盤還原到修復之前的狀態。
工具說明
在Linux實例里,您可以選擇以下任一種工具修復磁盤分區並恢復數據:
- fdisk:Linux系統默認安裝的分區工具。
- testdisk:主要用恢復Linux系統的磁盤分區或者數據。Linux系統默認不安裝,您需要自行安裝這個軟件,比如,在CentOS系統里,您可以運行 yum install -y testdisk 在線安裝。
- partprobe:Linux系統默認安裝的工具。主要用於不重啟系統時讓kernel重新讀取分區。
Linux系統下數據盤分區丟失和數據恢復處理辦法
在Linux實例里,您重啟系統后,可能會出現數據盤分區丟失或者數據丟失的問題。這可能是因為您未在 etc/fstab 文件里設置自動掛載。此時,您可以先手動掛載數據盤分區。如果手動掛載時報分區表丟失,您可以通過如下三種辦法嘗試進行處理:通過fdisk恢復分區、通過testdisk恢復分區 或者 通過testdisk直接恢復數據。
-
通過fdisk恢復分區
對數據盤分區時,分區磁盤的起止扇區一般使用默認的值,所以可以先嘗試直接使用 fdisk 新建分區進行恢復。具體操作,請參考 Linux 格式化和掛載數據盤。
如果上述操作無效,您可以使用 testdisk 工具嘗試修復。
-
通過 testdisk 恢復分區
這里假設雲盤的設備名為 /dev/xvdb。按以下步驟使用 testdisk 恢復分區:
- 運行 testdisk /dev/xvdb(根據實際情況替換設備名),再選擇 Proceed(默認值)后按回車鍵。
- 選擇分區表類型進行掃描:一般選擇 Intel(默認)。如果您的數據盤采用GPT分區,選擇 EFI GPT。
- 選擇 Analyse 后按回車鍵。
- 如果您沒有看到沒有任何分區信息,選擇 Quick Search 后按回車鍵快速搜索。
在返回結果中會顯示分區信息,如下圖所示。
- 選中分區后,按回車鍵。
- 選擇 Write 保存分區。
說明 如果不是您需要的分區,可以選擇 Deeper Search 繼續搜索。
- 按 Y 鍵確認保存分區。
- 運行 partprobe /dev/xvdb(根據實際情況替換設備名)手動刷新分區表。
- 重新掛載分區,查看數據盤里的數據情況。
-
通過testdisk直接恢復數據
在某些情況下,您可以用testdisk掃描出磁盤分區,但是無法保存分區,此時,您可以嘗試直接恢復文件。具體操作步驟如下所示:
- 按 通過testdisk恢復分區 的第1步到第4步描述找到分區。
- 按 P 鍵列出文件。 返回結果如下圖。
- 選中要恢復的文件,再按 C 鍵。
- 選擇目標目錄。本示例中以恢復到 /home 為例。
如果您看到
Copy done! 1 ok, 0 failed
說明復制成功。如下圖所示。 - 切換到 /home 目錄查看。如果您能看到文件,說明文件恢復成功。