Linux 邏輯磁區在重開後變為 inactivate

Info

硬體

CPU: AMD Ryzen 3800X

GPU: AMD RX570

RAM: 16GB

磁區分配

PV

硬碟 SSD(nvme0n1p5) HHD(sda2)
PV size 250GB 250GB

VG

SSD+HHD: sys

LV

sys/root(根目錄) : SSD 186GB

sys/home(家目錄) : SSD 64GB(Lvm Cache) + HHD 250GB

非LVM

  1. nvme0n1p1 ( 500MB ): EFI
  2. nvme0n1p4 ( 1GB ): /boot

軟體

OS: Linux Mint 20

其餘軟體預載

事件

系統正確設置安裝後,開機時會卡在mounting /dev/sys/home,timeout後無法正確啟動

研究

插入開機碟後發現sys/home不可見,隨後經過googling與探索後發現是不知為何LV inactivated了

研究變朝向開機後誰把lvm磁區inactivate了!

一開始找到了一篇文章,不但沒有用也沒解釋太多原理。

後來找到了2016年的CentOS資料,指出是未給予正確核心啟動參數所致,詳見原文,詳細嘗試與研究後發現與這個無關(Ubuntu似乎不會理會這個parameter)。

之後轉而研究核心啟動參數與init.d和systemd等啟動時的管理器,觀察lvm2 service的生命週期但一無所獲,尤其是無法發現lvm service有任何行為異常。

之後陸續試了修改initramfs-tool跟重裝lvm等方法,但依舊失敗。

隔天經過調閱syslog發現LVM在discover PV VG LV時出現了以下行為

Load /dev/nvme0n1 ->

PV Discovered (Event driven) ->

1 LV Discovered in VG (sys/root) ->

Load /dev/sda ->

PV Discovered (Event driven) ->

VG & LV Discovery skipped

等 最後那個是什麼,難怪sys/home會被inactive,因為他在LV discovery的階段被跳過而導致PV不足下線的啊。 之後發現/etc/lvm/lvm.conf中有個event_activation的選項,調成0(也就是關閉),就可以解決因為事件驅動PV與VG掃描導致的奇怪inactive現象,就可以正常開機載掛跨磁區lvm了。 (汗顏QQ)