CentOS:將 dm-raid 模組安裝到 initramfs 以啟用 lvm raid 引導?
我有 CentOS 7,我想在我的根邏輯卷上安裝 lvm 鏡像。
使用“lvconvert -m3 cl_excalibur/root”創建兩個鏡像後,我有些恐慌,但它無法啟動。當它是 raid1 時,邏輯卷不會在引導時啟動。我從 liveUSB 啟動,並使用“lvconvert -m0”將其轉換回未鏡像,一切似乎都很好。但我又回到了原點。我希望我必須使用
dracut -f --add<-drivers?> <name of the lvm raid kernel module>
,但我不知道我需要的確切參數。在啟動失敗期間,我在 dracut lvm 工具中嘗試
lvchange -ay cl_excalibur/root
了 ,但 lvm 抱怨模組“dm-raid”不在核心中。所以這就是我認為我需要安裝的。我找到了文件
/usr/lib/modules/3.10.0-1062.1.1.el7.x86_64/kernel/drivers/md/dm-raid.ko.xz
。但是,我不知道要使用哪個添加標誌,也不知道如何從上面的文件名轉到 dracut 所需的參數。這個主機對我們的基礎設施很重要,所以我還沒有嘗試過任何東西。我現在已經建構了一個虛擬 CentOS 7 伺服器,因此我可以使用 dracut 和 grub2 進行破解,但我將不勝感激 :)
看起來解決方案是編輯 /etc/dracut.conf,將一些字元串插入到 add_dracutmodules 和 add_drivers 的分配中,並為 mdadmconf 和 lvmcomf 啟用“yes”值:
# dracut modules to add to the default add_dracutmodules+="dm lvm dmraid mdraid" # additional kernel modules to the default add_drivers+="dm_mod dm_mirror dm_log dm_region_hash " # install local /etc/mdadm.conf mdadmconf="yes" # install local /etc/lvm/lvm.conf lvmconf="yes"
唯一古怪的部分是我需要在最後一個核心驅動程序之後和結束引號之前包含一個空格。否則,dracut 將兩個驅動程序名稱連接為一個。
lvconvert -m2
在根邏輯卷上使用後,我通過檢查來等待鏡像完成lvs -a -o name,copy_percent,devices centos_agamemnon
。然後我繼續dracut -f grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
並重新啟動。一切似乎都很好,而且我不太容易受到下一次不可避免的硬碟故障的影響。