在處理磁碟相關問題時,您可能會碰到作業系統中資料盤分區丟失的情況。本文介紹了Linux系統下常見的資料盤分區丟失的問題以及對應的處理方法,同時提供了使用雲端硬碟的常見誤區以及最佳實務,避免可能的資料丟失風險。
前提條件
在修複資料前,您必須先對分區丟失的資料盤建立快照,在快照建立完成後再嘗試修複。如果在修複過程中出現問題,您可以通過快照復原將資料盤還原到修複之前的狀態。具體操作,請參見建立快照和使用快照復原雲端硬碟。
登入阿里雲帳號。如還未註冊,請先完成帳號註冊。
背景資訊
在Linux執行個體裡,您可以選擇以下任一種工具修複磁碟分割並恢複資料:
fdisk:Linux系統預設安裝的分區工具。
testdisk:主要用於恢複Linux系統的磁碟分割或者資料。Linux系統預設不安裝,您需要自行安裝這個軟體。例如,在CentOS系統裡,您可以運行yum install -y testdisk線上安裝。
partprobe:Linux系統預設安裝的工具。主要用於不重啟系統時讓kernel重新讀取分區。
資料恢複方法
在Linux執行個體裡,您重啟系統後,可能會出現資料盤分區丟失或者資料丟失的問題。這可能是因為您未在/etc/fstab檔案裡設定自動掛載。此時,您可以先手動掛載資料盤分區。如果手動掛載時報分區表丟失,您可以嘗試如下三種辦法進行處理:
通過fdisk恢複分區
對資料盤分區時,分區磁碟的起止扇區一般使用預設的值,所以可以先嘗試直接使用fdisk命令建立分區進行恢複。具體操作,請參見初始化小於等於2 TiB資料盤(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掃描出磁碟分割。具體操作,請參見通過testdisk恢複分區的第1步到第4步。
按P鍵列出檔案。
返回結果如下圖。
選中要恢複的檔案,再按C鍵。
選擇目標目錄。本樣本中以恢複到/home為例。
如果您看到
Copy done! 1 ok, 0 failed
,表示複製成功,如下圖所示。切換到/home目錄查看。
如果您能看到檔案,說明檔案恢複成功。
常見誤區與最佳實務
資料是使用者的核心資產,很多使用者在ECS執行個體上構建網站、自建資料庫(MySQL/MongoDB/Redis)。資料丟失會給使用者的業務帶來巨大的風險。本節介紹了資料安全方面的常見誤區和最佳實務。
常見誤區
阿里雲的底層儲存基於三副本,因此有些使用者認為作業系統內資料沒有任何丟失風險。實際上這是誤解。底層儲存的三副本提供對資料磁碟的物理層保護,但是,如果系統內部使用雲端硬碟邏輯上出現問題,例如中毒、誤刪資料、檔案系統損壞等情況,還是可能出現資料丟失。此時,您需要通過快照、異地備份等相關技術最大保證資料的安全性。關於三副本的介紹,請參見雲端硬碟三副本技術。
最佳實務
資料盤分區恢複以及資料恢複是處理資料丟失問題最後的一道防線,但未必一定能夠恢複資料。強烈建議您參考如下最佳實務,通過對資料建立快照(自動或手動)以及各類備份方案,最大程度地保證資料的安全性。