What is extlinux?
extlinux is a simple and modern systemloader bundled with the syslinux tools. Installation is simple and fast, in Funtoo the configuration is easily automated.
# emerge syslinux
with that you have the complete syslinux tools installed. Another helpful tool you should merge with syslinux is slashbeast's lazykernel tool, so let us merge it too:
# emerge lazykernel
to install extlinux just follow these steps:
# install -d /boot/extlinux # extlinux --install /boot/extlinux
The next steps are different depending on if you use an MBR or GPT setup and the HDD you installed on and want to boot from. Let us assume that /dev/sda is the drive you will be booting from.
If you set up your disk with a MBR partition scheme, run the following:
# dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/mbr.bin of=/dev/sda # cp /usr/share/syslinux/menu.c32 /boot/extlinux/ # cp /usr/share/syslinux/libutil.c32 /boot/extlinux/ # touch /boot/extlinux/extlinux.conf
On the other hand, if you te up your disk using GPT, run these commands:
# sgdisk /dev/sda --attributes=1:set:2 # sgdisk /dev/sda --attributes=1:show 1:2:1 (legacy BIOS bootable) # dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/gptmbr.bin of=/dev/sda # cp /usr/share/syslinux/menu.c32 /boot/extlinux/ # cp /usr/share/syslinux/libutil.c32 /boot/extlinux/ # touch /boot/extlinux/extlinux.conf
Setting up the Kernel
Now if you followed our advice to install lazykernel we have a pretty nice way to solve all the setup with a bit of prework and finish it then. If not you should go to the manual part. :)
Please make sure to comment out or delete the second line of the config file...else it will spit out an error.
Now let us setup our kernel with lazykernel. If you have a manual kernel just run:
# cd <kernel build dir> # lazykernel auto
This will generate the modules for you. Copy your kernel form /usr/src/linux to /boot and generate the /boot/extlinux/extlinux.conf. The manual kernel will be the only one supported by lazykernel.
For other kernels, like those created by genkernel or by the binary USE-flag you need to edit your config by yourself. Just open /boot/extlinux/extlinux.conf in your favorite editor:
That's all. You are now ready for boot. You can also define several LABELs in that list to have multiple kernel selections to choose from before booting.