Note:

The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.

Difference between revisions of "Extlinux"

From Funtoo
Jump to navigation Jump to search
 
 
(21 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= What is ExtLinux? =
== What is extlinux? ==
 
{{Warning|with e2fsprogs-1.43, mke2fs have the metadata_csum and 64bit features enabled by default. Extlinux does not support booting from partitions formatted with 64-bit ext4. Users have to edit <code>/etc/mke2fs.conf</code> to disable this features '''before''' partioning drive. Otherwise, extlinux will not boot. Ref. [1], [2].}}
ExtLinux is a pretty simple and modern systemloader, bundled with the syslinux tools, installation is really simple for it and fast, and thanks to our CoreTeam member Slashbeast the configuration runs automated in an awesome way.
extlinux is a simple and modern bootloader and is a part of the syslinux tools. Installation is simple and fast, in Funtoo the configuration is easily automated.
 
= Installing ExtLinux for funtoo =
 
Installing ExtLinux for funtoo is known to work and supported too. If you like to try it just emerge syslinux


= Installing extlinux  =
<console>
<console>
# ##i##emerge syslinux
# ##i##emerge syslinux
</console>
</console>
This will install complete syslinux suite, including <code>extlinux</code>.


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:
== Using extlinux ==
 
<console>
# ##i##emerge lazykernel
</console>
 
== Installing extlinux ==
 
to install extlinux just follow these steps:
 
<console>
<console>
# ##i##install -d /boot/extlinux
# ##i##install -d /boot/extlinux
# ##i##extlinux --install /boot/extlinux
# ##i##extlinux --install /boot/extlinux
# ##i##cd /boot
# ##i##ln -s . boot
</console>
</console>


the next steps are different depending if you use an MBR or GPT setup and the HDD you installed on and want to boot from. Let us now for general take /dev/sda as your boot device.
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 <tt>/dev/sda</tt> is the drive you will be booting from.


=== MBR ===
=== MBR ===


If you set up your disk with MBR partition scheme just do the next steps:
If you set up your disk with a MBR partition scheme, run the following:


<console>
<console>
Line 42: Line 29:


=== GPT ===
=== GPT ===
On the other hand, if you te up your disk using GPT, run these commands:


<console>
<console>
Line 54: Line 43:


== Setting up the Kernel ==
== Setting up the Kernel ==
=== The  extlinux.conf ===


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. :)
For other kernels, like those created by genkernel or by the binary USE-flag you need to edit your config by yourself. Just open <tt>/boot/extlinux/extlinux.conf</tt> in your favorite editor:
 
=== lazykernel way ===
 
As you setup lazykernel, we now need to edit /etc/lazykernel.conf
 
make it to look like somethink like that:
 
<pre>
# After configuring, hash or remove line below.
#CONFIGUREFIRST
 
# Number of the kernels to keep so `lazykernel clean` will not propose to remove them. Default: 3
keep_kernels=5
 
# Sort kernels by 'version' (biggest version first) or by 'mtime' (latest images first). Default: mtime
# Sorting by version may fail and 3.3.0-rc2 will be marked as newer than 3.3.0.
#sort_by='version'
sort_by=mtime
 
# The name for menu entry.
menu_entry_name="Funtoo Linux"
 
# Specify what initramfs image to use, if any. (Optional)
initramfs='initramfs.cpio.gz'
 
# Append kernel params, usualy you use it to specify rootfs device, but you can use it to pass switches to initramfs as well. (Optional)
#kernel_params='root=/dev/sda2'
#kernel_params="rootfstype=ext4 luks enc_root=/dev/sda2 lvm root=/dev/mapper/vg-rootfs uswsusp resume=/dev/mapper/vg-swap"
kernel_params="rootfstype=ext4 luks enc_root=/dev/sdb3 lvm root=/dev/mapper/vg-root uswsusp resume=/dev/mapper/vg-swap"
</pre>
 
please make sure to comment out or delete the second line of the config file, else it will spit out an error for you... :)
 
Now let us setup our kernel with lazykernel if you have a manual kernel just run:
 
<console>
# ##i##cd <kernel build dir>
# ##i##lazykernel auto
</console>
 
that will generate the modules for you, copy your kernel form /usr/src/linux over to /boot and generate the /boot/extlinux/extlinux.conf for you. The manual kernel will be the only supported one by lazykernel.
 
That's all you are ready to boot. :)
 
=== manual extlinux.conf ===
 
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 and setup something like the following:


<pre>
{{file|name=/boot/extlinux/extlinux.conf|desc= |body=
TIMEOUT 30
TIMEOUT 30
UI menu.c32
UI menu.c32
Line 118: Line 61:
         INITRD /<initramfs>
         INITRD /<initramfs>
         APPEND rootfstype=ext4 luks enc_root=/dev/sdb3 lvm root=/dev/mapper/vg-root uswsusp resume=/dev/mapper/vg-swap
         APPEND rootfstype=ext4 luks enc_root=/dev/sdb3 lvm root=/dev/mapper/vg-root uswsusp resume=/dev/mapper/vg-swap
</pre>
}}


That's all again you are ready for boot. You can also define several LABELs in that list to have multiple kernels been booted... :)
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.
* [1] http://git.kernel.org/cgit/fs/ext2/e2fsprogs.git/commit/?id=cd27af3ecb83e8fd1e3eaa14994284a1818c7c15
* [2] https://bugzilla.redhat.com/show_bug.cgi?id=1099237


[[Category:HOWTO]]
[[Category:HOWTO]]
[[Category:Bootloaders]]

Latest revision as of 18:09, December 27, 2017

What is extlinux?

   Warning

with e2fsprogs-1.43, mke2fs have the metadata_csum and 64bit features enabled by default. Extlinux does not support booting from partitions formatted with 64-bit ext4. Users have to edit /etc/mke2fs.conf to disable this features before partioning drive. Otherwise, extlinux will not boot. Ref. [1], [2].

extlinux is a simple and modern bootloader and is a part of the syslinux tools. Installation is simple and fast, in Funtoo the configuration is easily automated.

Installing extlinux

root # emerge syslinux

This will install complete syslinux suite, including extlinux.

Using extlinux

root # install -d /boot/extlinux
root # 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.

MBR

If you set up your disk with a MBR partition scheme, run the following:

root # dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/mbr.bin of=/dev/sda
root # cp /usr/share/syslinux/menu.c32 /boot/extlinux/
root # cp /usr/share/syslinux/libutil.c32 /boot/extlinux/
root # touch /boot/extlinux/extlinux.conf

GPT

On the other hand, if you te up your disk using GPT, run these commands:

root # sgdisk /dev/sda --attributes=1:set:2
root # sgdisk /dev/sda --attributes=1:show
1:2:1 (legacy BIOS bootable)
root # dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/gptmbr.bin of=/dev/sda
root # cp /usr/share/syslinux/menu.c32 /boot/extlinux/
root # cp /usr/share/syslinux/libutil.c32 /boot/extlinux/
root # touch /boot/extlinux/extlinux.conf

Setting up the Kernel

The extlinux.conf

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:

   /boot/extlinux/extlinux.conf
TIMEOUT 30
UI menu.c32

MENU TITLE Boot Menu
MENU COLOR title        1;37;40
MENU COLOR border       30;40
MENU COLOR unsel        37;40

LABEL funtoo1
        MENU LABEL Funtoo Linux KERNEL-VERSION
        LINUX /<kernel>
        INITRD /<initramfs>
        APPEND rootfstype=ext4 luks enc_root=/dev/sdb3 lvm root=/dev/mapper/vg-root uswsusp resume=/dev/mapper/vg-swap

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.