Having read about using syslinux as a boot-loader for virtual machines I tried to replace grub2 on one of the Fedora 24 virtual machines I am using with syslinux:
Not completely knowing what to do I did:
- dnf install syslinux-extlinux.x86_64
- /sbin/extlinux --install /boot/extlinux/
The I tried to create a configuration file using grubby:
grubby --extlinux --add-kernel=/boot/vmlinuz-4.4.6-300.fc23.x86_64 --title="4.4.6" --initrd=/boot/initramfs-4.4.6-300.fc23.x86_64.img --args="ro root=/dev/sda3"
Which resulted in:
# cat /etc/extlinux.conf
label 4.4.6
kernel /vmlinuz-4.4.6-300.fc23.x86_64
initrd /initramfs-4.4.6-300.fc23.x86_64.img
append ro root=/dev/sda3
I added following lines to the file manually:
default 4.4.6
ui menu.c32
timeout 50
After that I rebooted and the virtual machine was still using grub2 to load the kernel.
To write syslinux to the MBR following additional command was
required:
dd if=/usr/share/syslinux/mbr.bin of=/dev/sda bs=440 count=1
. I was a
bit nervous rebooting the system after overwriting the MBR, but it
rebooted successfully. The configuration file was also correctly updated
after I installed a new kernel via dnf. I also removed grub2
(dnf remove grub2*
) and was able to successfully reboot into the new
kernel without grub2.