Linux
LVM 調整大小 + 電源故障後,Ext4 損壞且無法恢復
我有一個完全標準的單硬碟 Fedora 23 桌面。雙引導安裝程序將 Linux 分區設置為 LVM,具有 root、swap 和 home 邏輯卷;root 和 home 都是 ext4。最近增加了 4 GB 的記憶體,我決定通過將主捲縮小 4 GB 然後將其添加到交換來擴展交換卷。一切似乎都很好,我的電腦執行了幾天沒有任何問題。
但是,我做完上述操作後並沒有重新啟動或關機,然後就出現了電源故障。當我下次啟動時,由於家庭 ext4 卷已損壞,我進入了緊急恢復模式。我嘗試使用
fsck
了幾次,但無法完全修復問題。我最終重新格式化了主卷並從最近的備份中恢復。我的問題:
- 損壞是由於我搞砸了交換大小調整,還是由於調整大小後沒有立即重新啟動?當我將家庭文件系統縮小 4 GB 時,它有大約 240 GB 的可用空間,之後它仍然可以使用幾天,所以我想我沒有搞砸它,但那是我第一次使用 LVM .
- 如果我正確執行了 LVM 操作並且問題是由於電源故障引起的,我是否可以發出任何 LVM 命令來將更改刷新到硬碟驅動器,或者是在更改後重新啟動的唯一正確方法?
調整大小後您不必執行任何東西,但即使您已解除安裝邏輯卷上的文件系統,也不能只調整邏輯卷的大小。您首先需要調整文件系統的大小(對於 ext4,您可以使用
resize2fs
),以確保邏輯卷中有可以釋放的**未使用塊(以傳輸到交換)。**這通常需要一些計算,並且您不應該使用比您要縮小 LV 更少的 Gb 來縮小文件系統。為了防止計算和可能的錯誤,我會做以下事情。如果文件系統最初是 100Gb,而您想將其縮小 4Gb:
resize2fs /dev/mapper/vg0-home 95G lvreduce -L 96G /dev/mapper/vg0-home # resize to fill available space resize2fs -p /dev/mapper/vg0-home
(調整
vg0-home
到你的實際LV)