rpm
, the kernel package creates an entry in the boot loader configuration file for that new kernel. However, rpm
does not configure the new kernel to boot as the default kernel. You must do this manually when installing a new kernel with rpm
.
rpm
to ensure that the configuration is correct. Otherwise, the system may not be able to boot into Fedora properly. If this happens, boot the system with the boot media created earlier and re-configure the boot loader.
Table 20.1. Boot loaders by architecture
Architecture | Boot Loader | See |
---|---|---|
x86 | GRUB 2 | Section 20.6.1, “Configuring the GRUB 2 Boot Loader” |
AMD AMD64 or Intel 64 | GRUB 2 | Section 20.6.1, “Configuring the GRUB 2 Boot Loader” |
IBM eServer System i | OS/400 | Section 20.6.2, “Configuring the OS/400 Boot Loader” |
IBM eServer System p | YABOOT | Section 20.6.3, “Configuring the YABOOT Boot Loader” |
IBM System z | z/IPL | — |
/boot/grub2/grub.cfg
file. This file is generated by the grub2-mkconfig utility based on Linux kernels located in the /boot
directory, template files located in /etc/grub.d/
, and custom settings in the /etc/default/grub
file and is automatically updated each time you install a new kernel from an RPM package. To update this configuration file manually, type the following at a shell prompt as root
:
grub2-mkconfig
-o
/boot/grub2/grub.cfg
/boot/grub2/grub.cfg
configuration file contains one or more menuentry
blocks, each representing a single GRUB 2 boot menu entry. These blocks always start with the menuentry
keyword followed by a title, list of options, and opening curly bracket, and end with a closing curly bracket. Anything between the opening and closing bracket should be indented. For example, the following is a sample menuentry
block for Fedora 17 with Linux kernel 3.4.0-1.fc17.x86_64:
menuentry 'Fedora (3.4.0-1.fc17.x86_64)' --class fedora --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-77ba9149-751a-48e0-974f-ad94911734b9' { load_video set gfxpayload=keep insmod gzio insmod part_msdos insmod ext2 set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint='hd0,msdos1' 4ea24c68-ab10-47d4-8a6b-b8d3a002acba else search --no-floppy --fs-uuid --set=root 4ea24c68-ab10-47d4-8a6b-b8d3a002acba fi echo 'Loading Fedora (3.4.0-1.fc17.x86_64)' linux /vmlinuz-3.4.0-1.fc17.x86_64 root=/dev/mapper/vg_fedora-lv_root ro rd.md=0 rd.dm=0 SYSFONT=True rd.lvm.lv=vg_fedora/lv_swap KEYTABLE=us rd.lvm.lv=vg_fedora/lv_root rd.luks=0 LANG=en_US.UTF-8 rhgb quiet echo 'Loading initial ramdisk ...' initrd /initramfs-3.4.0-1.fc17.x86_64.img }
menuentry
block that represents an installed Linux kernel contains linux
and initrd
directives followed by the path to the kernel and the initramfs
image respectively. If a separate /boot
partition was created, the paths to the kernel and the initramfs
image are relative to /boot
. In the example above, the initrd /initramfs-3.4.0-1.fc17.x86_64.img
line means that the initramfs
image is actually located at /boot/initramfs-3.4.0-1.fc17.x86_64.img
when the root file system is mounted, and likewise for the kernel path.
linux /vmlinuz-kernel_version
line must match the version number of the initramfs
image given on the initrd /initramfs-kernel_version.img
line of each menuentry
block. For more information on how to verify the initial RAM disk image, refer to Procedure 20.1, “Verifying the Initial RAM Disk Image”.
The initrd directive in grub.cfg refers to an initramfs image
menuentry
blocks, the initrd
directive must point to the location (relative to the /boot
directory if it is on a separate partition) of the initramfs
file corresponding to the same kernel version. This directive is called initrd
because the previous tool which created initial RAM disk images, mkinitrd
, created what were known as initrd
files. The grub.cfg
directive remains initrd
to maintain compatibility with other tools. The file-naming convention of systems using the dracut
utility to create the initial RAM disk image is initramfs-kernel_version.img
.
rpm
, verify that /boot/grub2/grub.cfg
is correct and reboot the computer into the new kernel. Ensure your hardware is detected by watching the boot process output. If GRUB 2 presents an error and is unable to boot into the new kernel, it is often easiest to try to boot into an alternative or older kernel so that you can fix the problem. Alternatively, use the boot media you created earlier to boot the system.
Causing the GRUB 2 boot menu to display
GRUB_TIMEOUT
option in the /etc/default/grub
file to 0
, GRUB 2 will not display its list of bootable kernels when the system starts up. In order to display this list when booting, press and hold any alphanumeric key while and immediately after BIOS information is displayed, and GRUB 2 will present you with the GRUB menu.