内核更新后 grub.conf 缺少 initrd 路径

内核更新后 grub.conf 缺少 initrd 路径

我今天早上更新了一台服务器,最新的内核在启动时崩溃了。检查 grub.conf 文件后,我发现缺少 initrd 路径。有办法解决这个问题吗?或者我应该从 grub.conf 中删除最新的内核条目并从之前的内核启动(测试有效)?

grub.conf 文件:

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/vg_spots-lv_root
#          initrd /initrd-[generic-]version.img
#boot=/dev/vda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-431.20.3.el6.x86_64)
    root (hd0,0)
    kernel /vmlinuz-2.6.32-431.20.3.el6.x86_64 ro root=/dev/mapper/vg_spots-lv_root rd_LVM_LV=vg_spots/lv_root rd_LVM_LV=vg_spots/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet
title CentOS (2.6.32-358.14.1.el6.x86_64)
    root (hd0,0)
    kernel /vmlinuz-2.6.32-358.14.1.el6.x86_64 ro root=/dev/mapper/vg_spots-lv_root rd_LVM_LV=vg_spots/lv_root rd_LVM_LV=vg_spots/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet
    initrd /initramfs-2.6.32-358.14.1.el6.x86_64.img

我发现此链接解释了如何重建初始化文件。重建 Initrd

不完全了解所有风险,尝试一下是否是个好主意?这是一个生产服务器,我不想完全关闭它。:)

答案1

您可以自行添加initrd背面。

initrd /initramfs-2.6.32-431.20.3.el6.x86_64.img

您应该检查您的/boot目录并确保它确实存在。

要永久修复此问题以供将来升级,请运行

# yum reinstall kernel.x86_64

答案2

如果您可以启动较旧的内核版本之一,请查看是否可以运行update-grub以修复该问题。否则,正如 Michael 所说,您可以手动添加条目(假设实际的 initrd 文件存在)。

相关内容