上週客戶在 Oracle Linux 執行 dnf update 之後 reboot 就掛了!!!
客戶環境比較特殊,當初買主機設備採用的用 AMD CPU,當時 AMD 剛出來所以還無法在設備中整合相對應的 RAID 控制卡,所有的 HD 都是用 software RAID(mdadm)。
如果主機設備配有有 RAID 控制器,進行 dnf update 是不會遇到這個問題的!
原因如標題所示,新版 mdadm 啟動及組裝 assemble 軟體 RAID 時,為了相容性會強制去找核心的 md_mod 中是否包含一個特定參數路:
/sys/module/md_mod/parameters/legacy_del_gendisk
而最該版本 UEK 核心未整合進來,開機時就會出現錯誤訊息:
mdadm: Can't open /sys/module/md_mod/parameters/legacy_async_del_gendisk 或 init md module parameters fail
解決方法有二個
方法一:
改用 RHCK(Red Hat Compatible Kernel)開機
1、開機時,在 GRUB 選單,手選 RHCK 核心(非 UEK 結尾)進入系統
(這時 mdadm 可以正常運作,所有分割區及檔案系統會正常掛載)
2、使用 grubby 工具,修改開機載入核心
sudo grubby --info=ALL | grep ^kernel
sudo grubby --set-default=/boot/vmlinuz-“RHCK的核心版本號”
方法二:
降級 mdadm 套版本,不要使用最新版
1、開機時,在 GRUB 選單,手選 RHCK 核心(非 UEK 結尾)進入系統
(這時 mdadm 可以正常運作,所有分割區及檔案系統會正常掛載)
2、執行降版指令:
sudo dnf downgrade mdadm
3、降版成功後要防止 dnf update 又升到衝突的版本
vi /etc/dnf/dnf.conf (加入一行)
exclude=mdadm
如果你也遇到相同的問題,希望這篇文章有幫助到你,GOOD LUCK TO U!






