Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux LVM 分區遺失數據恢復實戰記錄

編輯:Linux 教學

案例背景

朋友的 VPS 突然無法啟動,裡面存放一年心血數據。服務商拒絕協助數據恢復,僅願重裝系統。因該 VPS 採用 LVM 邏輯卷管理,且我對 LVM 深度不足,遂尋求社群高手 (羽飛、百湖、天行健) 遠程協助,最終成功恢復數據。本文記錄完整排障與恢復過程,供遇到類似情況者參考。

一、數據取回與虛擬機掛載修復

  1. 協調服務商下載映像: 服務商將完整 VMware 虛擬機檔案 (含 20GB 虛擬磁碟) 上傳至 FTP,本地千兆頻寬半天下載完成。
  2. VMware 啟動報錯修復:
    • 錯誤「字符不對、用戶不對」 → 編輯 .vmx,第 2 行加入 encoding = "GBK",刪除 guestOSAltName 與 guestOS 兩行。
    • 錯誤「磁碟不可用」 → 該 VPS 贈送 10GB 新磁碟疑似損壞,在 VMware 設定中移除該虛擬磁碟 (無數據風險)。
    • 錯誤「作業系統類型錯誤」 → VMware 設定中將 Guest OS 從 Other 改為對應 Linux 版本 (如 CentOS 64-bit)。

二、LVM 錯誤診斷

虛擬機啟動進入急救模式,報錯明確指向 LVM:

Volume group "VolGroup00" not found
Cannot process volume group VolGroup00

經排查確認:LVM 物理卷 (PV) 存在,但卷組 (VG) 中的邏輯卷 (LV) 元數據遺失,導致分區表消失。

三、使用 TestDisk 恢復分區表

  1. 下載安裝: 官網 TestDisk,下載 testdisk-6.11.3.linux26.tar.bz2 解壓執行。
  2. 操作流程:
    1. 選擇磁碟 /dev/sdb (目標虛擬磁碟)
    2. Partition table type → Intel/PC partition
    3. Advanced → 選擇 LVM 分區 → List → 確認檔案系統
    4. Analyse → Quick Search → 發現遺失分區
    5. Deeper Search → 確認分區邊界
    6. Write → 寫入分區表
    7. 重啟系統
  3. 關鍵點: TestDisk 能識別 LVM 磁碟標誌 (0x8e),深度搜尋可重建遺失的邏輯卷元數據結構。

四、LVM 卷組與邏輯卷激活

重啟後若仍無法掛載,執行:

pvscan        # 掃描物理卷
vgscan        # 掃描卷組
vgchange -ay  # 激活所有邏輯卷
lvs           # 確認 LV 狀態
mount /dev/VolGroup00/LogVol00 /mnt/recovery  # 掛載恢復數據

五、數據備份與驗證

  • 掛載成功後,使用 rsync -av 將關鍵數據備份至外部儲存。
  • 檢查資料庫檔案、程式碼、配置檔完整性。
  • 若檔案系統損壞,可嘗試 fsck -y /dev/VolGroup00/LogVol00 修復。

六、經驗總結與最佳實踐

  1. 定期快照備份: LVM 支援快照,生產環境務必配置定時快照 + 異地備份。
  2. 元數據備份: vgcfgbackup 定期導出 VG 元數據至異地。
  3. 謹慎操作: 任何磁碟重分區、擴容操作前必須完整備份。
  4. 工具箱準備: SystemRescueCd、TestDisk、PhotoRec、ddrescue 等救援工具隨時可用。
  5. 社群力量: 複雜數據恢復勿獨自嘗試,尋求專業協助成功率更高。

結語

此次恢復歷經虛擬機配置修復、LVM 元數據重建、分區表恢復三大關卡,最終完整找回數據。LVM 雖靈活但元數據脆弱,生產環境務必建立「快照+異地備份+元數據導出」三層防護體系,才能在災難來臨時從容應對。

Copyright © Windows教程網 All Rights Reserved