天天看點

LVM重新開機後找不到檔案分區原因解決方案起因思考解決

原因

建立好LVM後,将LVM當做一個裝置,又建立了一個分區,将LVM上的分區格式化後使用。

在重新開機後系統隻能找到LVM找不到LVM上的分區。

解決方案

使用testdisk 來找回分區。

testdisk /dev/mapper/data-data`           

找到儲存分區後,執行partprobe 來掃描分區(重新開機就會又不見了)

partprobe /dev/mapper/data-data           

建議

後續使用磁盤直接分區,不使用邏輯卷,在雲伺服器上單磁盤使用LVM 無任何優勢,而且管理也麻煩。

LVM丢失的恢複

起因

LVM 上分區data-data1 重新開機後消失,在找回分區時應該使用testdisk /dev/mapper/data-data

但是誤操作testdisk /dev/vdb , 而且掃描到了一個分區(可以看到磁盤上資料),并将分區/dev/vdb1 ❶資訊寫入磁盤。操作完成後發現有誤,使用

testdisk /dev/mapper/data-data

來找回data-data1 測試并挂載到/mnt 下可以看到資料。為了驗證問題 重新開機ECS,結果發現 /dev/mapper/data-data 和/dev/mapper/data-data1 都消失了。

思考

機器内原本沒有vdb1隻有vdb ,将vdb 制成pv,而掃描vdb 發現的分區實際上是 data-data1

将data-data1 分區寫入到vdb 後多了vdb1,這導緻重新開機後LVM 找不到vdb ,進而報錯。

而由于vdb 上檔案系統也不是直接在vdb 上建立的,是以vdb1 也不能挂載(superblock 錯誤)

如果執行fsck vdb1 ,也許可以解決這個問題❷

解決

LVM建立成功後,都會在/etc/lvm/backup 下備份配置資訊

在這個case中 備份名為/etc/lvm/backup/data

less /etc/lvm/backup/data #檢視pv0 的配置

LVM重新開機後找不到檔案分區原因解決方案起因思考解決

記錄下pv0 的 id

執行下面指令恢複

pvcreate /dev/sdb -u qdJSB3-pjMo-KI5z-PzkU-zmHb-Gyol-2Tc60v --restorefile /etc/lvm/backup/data
           

-u 後面的“qdJSB3-pjMo-KI5z-PzkU-zmHb-Gyol-2Tc60v”是pv0 id

執行這個指令後報錯:

Device /dev/vdb excluded by a filter.

翻閱相關的文檔,都是說是已經有了分區表導緻無法識别或者lvm.conf 中設定了filter 導緻的。

但是翻看配置檔案,發現并未啟用global filter ,判斷是我操作出錯多了vdb1導緻的,使用fidisk 删除vdb1

重新執行pvcreate

然後恢複vg 、激活vg

vgcfgrestore data
vgchange -ay data-data           

激活後

/dev/mapper/data-data 回來了,但是缺少分區 data-data1

使用testdisk 找回分區

testdisk  /dev/mapper/data-data
fsck -y /dev/mapper/data-data1   #前面寫入vdb1 導緻分區有錯誤需要fsck           

❶ vdb上找到的分區是vdb 上的lvm 的分區,直接寫入分區到vdb 是錯誤的,分區仍然無法識别

❷ fsck /dev/vdb1 也許能解決這個vdb1 不能使用的問題但是未做測試。

繼續閱讀