Alibaba Cloud Linux 2系統(tǒng)的ECS實(shí)例升級(jí)內(nèi)核失敗,如何處理?
本文為您介紹Alibaba Cloud Linux 2系統(tǒng)的ECS實(shí)例升級(jí)內(nèi)核失敗的原因及解決辦法。
問(wèn)題描述
在符合如下條件的Alibaba Cloud Linux 2實(shí)例升級(jí)內(nèi)核時(shí),提示grubby報(bào)錯(cuò),具體報(bào)錯(cuò)信息如下所示。且內(nèi)核升級(jí)后,grub啟動(dòng)項(xiàng)不能自動(dòng)更新,新內(nèi)核功能不生效。
鏡像:aliyun_2_1903_x64_20G_alibase_20200114.qboot.vhd鏡像(以下簡(jiǎn)稱qboot鏡像)。
內(nèi)核:4.19.81-17.al7.x86_64內(nèi)核版本。
kernel-4.19.91-19.2.al7.x86_64.rpm | 14 MB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
Installing : kernel-4.19.91-19.2.al7.x86_64 1/1
grubby fatal error: unable to find a suitable template
Broadcast message from systemd-journald@iZbp1XXXXtbay7jZ (Fri 2020-07-31 15:38:45 CST):
dracut[2183]: Failed to install module xen_blkfront
問(wèn)題原因
因?yàn)閝boot鏡像啟動(dòng)優(yōu)化去除了initramfs過(guò)程,導(dǎo)致實(shí)例啟動(dòng)后出現(xiàn)以下情況:
/proc/mounts
中/
根目錄的掛載設(shè)備為/dev/root
。系統(tǒng)沒(méi)有正確創(chuàng)建軟鏈接
/dev/root
。
因此在內(nèi)核升級(jí)過(guò)程中,grubby腳本無(wú)法正確識(shí)別根分區(qū)掛載的設(shè)備,即升級(jí)過(guò)程中無(wú)法正確更新grub配置信息。
解決方案
方案一:臨時(shí)修復(fù)
修復(fù)“grubby fatal error”問(wèn)題
臨時(shí)修復(fù)
執(zhí)行以下命令,創(chuàng)建
/dev/root
軟鏈接。ln -sf /dev/vda1 /dev/root
持久修復(fù)
執(zhí)行以下命令,新建udev rule自動(dòng)創(chuàng)建
/dev/root
軟鏈接。
sed -i '/ACTION=="remove"/a\\n# create symbol link for /dev/root\nACTION!="remove", SUBSYSTEM=="block", ENV{MAJOR}=="254", ENV{MINOR}=="1", SYMLINK+="root"' /usr/lib/udev/rules.d/60-persistent-storage.rules
修復(fù)“dracut failure”問(wèn)題
執(zhí)行以下命令,刪除不必要的dracut配置文件。
rm -rf /etc/dracut.conf.d/*
方案二:升級(jí)鏡像
該問(wèn)題在aliyun_2_1903_x64_20G_qboot_alibase_20200904.vhd版本的qboot鏡像中已修復(fù),您使用新鏡像即可。