朋友的 VPS 突然無法啟動,裡面存放一年心血數據。服務商拒絕協助數據恢復,僅願重裝系統。因該 VPS 採用 LVM 邏輯卷管理,且我對 LVM 深度不足,遂尋求社群高手 (羽飛、百湖、天行健) 遠程協助,最終成功恢復數據。本文記錄完整排障與恢復過程,供遇到類似情況者參考。
.vmx,第 2 行加入 encoding = "GBK",刪除 guestOSAltName 與 guestOS 兩行。虛擬機啟動進入急救模式,報錯明確指向 LVM:
Volume group "VolGroup00" not found
Cannot process volume group VolGroup00
經排查確認:LVM 物理卷 (PV) 存在,但卷組 (VG) 中的邏輯卷 (LV) 元數據遺失,導致分區表消失。
testdisk-6.11.3.linux26.tar.bz2 解壓執行。1. 選擇磁碟 /dev/sdb (目標虛擬磁碟)
2. Partition table type → Intel/PC partition
3. Advanced → 選擇 LVM 分區 → List → 確認檔案系統
4. Analyse → Quick Search → 發現遺失分區
5. Deeper Search → 確認分區邊界
6. Write → 寫入分區表
7. 重啟系統
重啟後若仍無法掛載,執行:
pvscan # 掃描物理卷
vgscan # 掃描卷組
vgchange -ay # 激活所有邏輯卷
lvs # 確認 LV 狀態
mount /dev/VolGroup00/LogVol00 /mnt/recovery # 掛載恢復數據
rsync -av 將關鍵數據備份至外部儲存。fsck -y /dev/VolGroup00/LogVol00 修復。vgcfgbackup 定期導出 VG 元數據至異地。此次恢復歷經虛擬機配置修復、LVM 元數據重建、分區表恢復三大關卡,最終完整找回數據。LVM 雖靈活但元數據脆弱,生產環境務必建立「快照+異地備份+元數據導出」三層防護體系,才能在災難來臨時從容應對。