内核更新后,grub.conf缺lessinitrdpath

今天早上我更新了一台服务器,并在启动时引发了最新的内核崩溃 在审查了grub.conf文件后,我发现initrdpath丢失。 有没有办法解决这个问题? 或者,我应该从grub.conf中删除最新的内核条目,并从以前的内核启动(testing工作)?

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 

我发现这个链接解释了如何重新构buildinit文件。 重buildInitrd

不完全理解所有的风险,这是一个好主意尝试吗? 这是一个生产服务器,我不想把它彻底解决。 🙂

你可以把initrd回自己。

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

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

要永久修复它以便将来升级,请运行

 # yum reinstall kernel.x86_64 

如果你可以启动到一个旧的内核版本,看看你是否可以运行update-grub来解决这个问题。 否则,就像Michael所说的那样,假设实际的initrd文件存在,你可以手动添加条目。