Я обновил сервер сегодня утром, и последнее ядро паникает во время загрузки. При просмотре файла 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
Не совсем понимая все риски, стоит ли попробовать? Это рабочий сервер, и я не хочу его полностью отключать. :)
Вы можете просто добавить initrd
обратно в себя.
initrd /initramfs-2.6.32-431.20.3.el6.x86_64.img
Вы должны проверить свой /boot
каталог и убедитесь, что он действительно присутствует.
Чтобы исправить это навсегда для будущих обновлений, запустите
# yum reinstall kernel.x86_64
Если вы можете загрузиться в одну из более старых версий ядра, посмотрите, сможете ли вы запустить update-grub
чтобы исправить проблему. В противном случае, как сказал Майкл, вы можете просто добавить запись вручную, предполагая, что фактический файл initrd существует.