阿里雲團隊努力不懈,讓最新技術內容能以更快方式以您最熟悉的語言呈現給您。本文內容由機器自動翻譯簡體中文,過程無人工干預。轉碼所造成任何內容錯誤及相關損失,阿里雲概不負責。敬請見諒。若任何內容問題涉及信息準確性,請以英文版為準。
全部產品
Search
文件中心

Linux執行個體中資料恢複

更新時間: Aug 23, 2018

在處理磁碟相關問題時,您可能會碰到作業系統中資料盤分區丟失的情況。本文介紹了Linux系統下常見的資料盤分區丟失的問題以及對應的處理方法,同時提供了使用雲端碟的常見誤區以及最佳實務,避免可能的資料丟失風險。

前提條件

在修複資料前,您必須先對分區丟失的資料盤建立快照,在快照建立完成後再嘗試修複。如果在修複過程中出現問題,您可以通過快照回滾將資料盤還原到修複之前的狀態。

工具說明

在Linux執行個體裡,您可以選擇以下任一種工具修複磁碟分割並恢複資料:

  • fdisk
    Linux系統預設安裝的分區工具。

  • testdisk
    主要用恢複Linux系統的磁碟分割或者資料。Linux系統預設不安裝,您需要自行安裝這個軟體,比如,在CentOS系統裡,您可以運行 yum install -y testdisk 線上安裝。

  • partprobe
    Linux系統預設安裝的工具。主要用於不重啟系統時讓kernel重新讀取分區。

Linux系統下資料盤分區丟失和資料恢複處理辦法

在Linux執行個體裡,您重啟系統後,可能會出現資料盤分區丟失或者資料丟失的問題。這可能是因為您未在 etc/fstab 檔案裡設定自動掛載。此時,您可以先手動掛載資料盤分區。如果手動掛載時報分區表丟失,您可以通過如下三種辦法嘗試進行處理:

通過fdisk恢複分區

對資料盤分區時,分區磁碟的起止扇區一般使用預設的值,所以可以先嘗試直接使用 fdisk 新建分區進行恢複。具體操作,請參考 Linux 格式化和掛載資料盤


使用fdisk新建分區

如果上述操作無效,您可以使用 testdisk 工具嘗試修複。

通過testdisk恢複分區

這裡假設雲端碟的裝置名稱為 /dev/xvdb。按以下步驟使用testdisk恢複分區:

  1. 運行 testdisk /dev/xvdb #根據實際情況替換裝置名稱,再選擇 Proceed(預設值)後按回車鍵。
    testdisk_/dev/xvdb

  2. 選擇分區表類型進行掃描:一般選擇 Intel(預設)。如果您的資料盤採用GPT分區,選擇 EFI GPT
    testdisk_Intel

  3. 選擇 Analyse 後按回車鍵。
    testdisk_Analyse

  4. 如果您沒有看到沒有任何分區資訊,選擇 Quick Search 後按回車鍵快速搜尋。
    testdisk_QuickSearch
    在返回結果中會顯示分區資訊,如下圖所示。
    testdisk_QuickSearchResult

  5. 選中分區後,按回車鍵。

  6. 選擇 Write 保存分區。

    注意
    如果不是您需要的分區,可以選擇 Deeper Search 繼續搜尋。

    fdisk_write

  7. Y 鍵確認保存分區。
    testdisk_輸入y確認保存分區

  8. 運行 partprobe /dev/xvdb #根據實際情況替換裝置名稱 手動刷新分區表。

  9. 重新掛載分區,查看資料盤裡的資料情況。
    掛載資料盤分區

通過testdisk直接恢複資料

在某些情況下,您可以用testdisk掃描出磁碟分割,但是無法保存分區,此時,您可以嘗試直接恢複檔案。具體操作步驟如下所示:

  1. 通過testdisk恢複分區 的第1步到第4步描述找到分區。

  2. P 鍵列出檔案。
    返回結果如下圖。
    testdisk_按p列出所有檔案

  3. 選中要恢複的檔案,再按 C 鍵。

  4. 選擇目標目錄。本樣本中以恢複到 /home 為例。
    testdisk_選擇目標目錄

    如果您看到 Copy done! 1 ok, 0 failed 說明複製成功。如下圖所示。
    testdisk_複製檔案成功

  5. 切換到 /home 目錄查看。如果您能看到檔案,說明檔案恢複成功。
    testdisk_確認檔案複製成功

常見誤區與最佳實務

資料是使用者的核心資產,很多使用者在ECS上構建網站、自建資料庫(MYSQL/MongoDB/Redis)。資料丟失會給使用者的業務帶來巨大的風險。如下是在資料安全方面的常見誤區和最佳實務。

常見誤區

阿里雲的底層儲存基於 三副本,因此有些使用者認為作業系統內資料沒有任何丟失風險。實際上這是誤解。底層儲存的三副本提供對資料磁碟的物理層保護,但是,如果系統內部使用雲端碟邏輯上出現問題,比如中毒、誤刪資料、檔案系統損壞等情況,還是可能出現資料丟失。此時,您需要通過快照、異地備份等相關技術最大保證資料的安全性。

最佳實務

資料盤分區恢複以及資料恢複是處理資料丟失問題最後的一道防線,但未必一定能夠恢複資料。強烈建議您參考如下最佳實務,通過對資料建立快照(自動或手動)以及各類備份方案,最大程度地保證資料的安全性。

啟用自動快照

根據實際業務,對系統盤、資料盤建立自動快照。注意,在更換系統盤、執行個體到期後或手動釋放磁碟時,自動快照可能會被釋放。

您可以在ECS控制台上通過 修改磁碟屬性 選擇 自動快照隨磁碟釋放。如果想保留自動快照,您可以手動去掉該選項。

詳情請參考:ECS雲端服務器自動快照FAQ

建立手動快照

在做下列重要或有風險的操作前,請手動為磁碟建立快照。例如:

  • 系統升級核心
  • 應用升級變更
  • 磁碟資料恢複

在恢複磁碟時,一定要先對磁碟建立快照,快照完成後做相應的操作。

OSS、線下、異地備份

您可酌情使用OSS、線下、異地等方式備份重要資料。