有linux使用者為了給分割槽擴容 私自操作,致使擴容操作完成後,系統無法啟動,修復過程如下:
啟動過程中提示找不到根分割槽lv,無法從記憶體檔案系統切換到硬碟檔案系統。
1、使用lvm命令,進入lvm察看lvm情況
pvs
顯示pv情況:有個一pv為unknown
2、使用系統啟動盤引導,進入終端檢視磁碟分割槽情況
fdisk -l /dev/sda
共4個分割槽,最後一個分割槽容量為800G與pvs命令中顯示的pv情況300G不符,詢問使用者擴容操作,得知使用者直接刪除了原有sda4分割槽,然後再新建了sda4分割槽,分割槽過程中擴大了分割槽容量,還好沒有格式化分割槽
3、安裝testdisk,搜尋分割槽表,在搜尋出來的分割槽表中,發現有p鍵可以顯示出目錄資訊的分割槽,對比後發現是原有的根分割槽,從根分割槽中恢復出/etc/lvm中的所有檔案目錄
apt install testdisk
testdisk
詳細操作過程沒有截圖
4、檢查恢復出的/etc/lvm/backup中的lvm備份檔案,發現pv1中的pv資訊一樣是unknown,於是去archive目錄,這是儲存了lvm的歷史資訊,檢視大兄.vg檔案,從中找出正常時候的記錄資訊,並使用歷史資訊重建原有lvm。
刪除新建分割槽
fdisk /dev/sda
d
4
p
n
在新建分割槽指定大小時恢復到未擴容前的分割槽大小,也就是300G:+300G
p
w
儲存完後
## 重新建立pv
pvcreate /dev/sda4 -u oKD1Yo-I8Oe-6KX4-AsUJ-zrdJ-rhGP-QL9viO --restorefile /etc/lvm/archive/VolGroup01
## 重新整理pv卷組
vgchange -ay VolGroup01 --activationmode partial
掛載正常,重啟發現仍然報一樣的錯誤,估計lvm仍然有故障,在記憶體檔案系統中執行lvm,進入lvm中pvs顯示告警資訊:
WARNING: VG ubuntu-vg was previously updated while PV /dev/sda4 was missing.
仍然顯示告警找不到pv
使用vgck命令更新vg資訊
vgck --updatemetadata ubuntu-vg
檢查vg和lv情況,lv顯示active,現在lvm分割槽應該正常了。重啟系統,正常開機。