GRUB is the default Linux bootloader that works on most systems.
You can find new Grub themes in gnome-look.org & store.kde.org.
To install a new Grub theme open Grub Customizer and go to the appearance tab.
Click the plus symbol next to the theme option and select the archive of the theme you download.
To change the grub theme click on the dropdown menu next to theme and select the theme you want.
Then click save to save your new theme.
You can change your first boot option from Grub Customizer.
click the dropdown menu next to predefined to change your first boot option. or change the order of boot options on the list configuration page.
Plymouth is the fancy startup animations that you see in videos & distros. (please note Plymouth can be buggy on some systems)
Plymouth can only be installed from the AUR.
To install it use, your preferred AUR helper. In this example, we use yay
yay -S plymouth-git
Add the Plymouth hook
Add plymouth
to the HOOKS
array in mkinitcpio.conf (/etc/mkinitcpio.conf
). It must be added after base
and udev
for it to work:
HOOKS=(base udev plymouth ...)
New Plymouth themes can be found here or here
Copy the theme folders you downloaded to /usr/share/plymouth/themes
list all Plymouth themes installed.
plymouth-set-default-theme -l
set Plymouth theme as default. theme
is an example name in this.
plymouth-set-default-theme -R theme
Systemd-boot is a simple UEFI boot manager. It is simple to configure but it can only start EFI executables such as the Linux kernel EFISTUB, UEFI shell, GRUB, or the Windows Boot Manager.
To install the systemd-boot EFI boot manager, first make sure the system has booted in UEFI mode and that UEFI variables are accessible. This can be checked by running the command efivar --list
or, if efivar is not installed, do ls /sys/firmware/efi/efivars
(if the directory exists, the system is booted in UEFI mode).
esp
will be used throughout this page to denote the ESP mountpoint, e.g. /boot
or /efi
. This assumes that you have chroot
ed to your system's mount point.
With the ESP mounted to esp
, use bootctl
to install systemd-boot into the EFI system partition by running:
bootctl install
This will copy the systemd-boot boot loader to the EFI partition: on a x64 architecture system /usr/lib/systemd/boot/efi/systemd-bootx64.efi
will be copied to *esp*/EFI/systemd/systemd-bootx64.efi
and *esp*/EFI/BOOT/BOOTX64.EFI
. It will then set systemd-boot as the default EFI application (default boot entry) loaded by the EFI Boot Manager.
Installing systemd-boot will overwrite any existing
/efi/boot/bootx64.efi
, for example Microsoft's version of this file.
Whenever there is a new version of systemd-boot, the boot manager can be optionally reinstalled by the user. This can be performed manually, or the update can be automatically triggered using pacman hooks. The two approaches are described thereafter.
Note: The boot manager is a standalone EFI executable and any version can be used to boot the system (partial updates do not apply, since pacman only installs the systemd-boot installer, not systemd-boot itself). However, new versions may add new features or fix bugs, so it is probably a good idea to update it anyway.
Use bootctl
to update systemd-boot:
bootctl update
If the location of the ESP is non-standard (i.e., it is not /efi
, /boot
, or /boot/efi
), you need to explicitly provide it using the --esp-path
parameter.
The package systemd-boot-pacman-hookAUR provides a Pacman hook to automate the update process. Installing the package will add a hook which will be executed every time the systemd package is upgraded. Alternatively, to replicate what the systemd-boot-pacman-hook package does without installing it, place the following pacman hook in the /etc/pacman.d/hooks/
directory:
/etc/pacman.d/hooks/100-systemd-boot.hook
[Trigger]
Type = Package
Operation = Upgrade
Target = systemd
[Action]
Description = Updating systemd-boot
When = PostTransaction
Exec = /usr/bin/bootctl update
Syslinux is a collection of boot loaders capable of booting from drives, CDs, and over the network via PXE. Some of the supported file systems are FAT, NTFS, Ext2, Ext3, Ext4, XFS, UFS/FFS, and uncompressed single-device Btrfs.
Install the syslinux package using:
sudo pacman -S syslinux
If you use a separate boot partition, make sure that it is mounted. Check with lsblk
, if you do not see a /boot
mountpoint, mount it before you go any further.
Run syslinux-install_update
with flags: -i
- install the files, -a
- mark the partition active with the boot flag, -m
- install the MBR boot code:
syslinux-install_update -i -a -m
Now is the time to edit /boot/syslinux/syslinux.cfg
refer to Configuration
Your boot partition, on which you plan to install Syslinux, must contain a FAT, ext2, ext3, ext4, or Btrfs file system. You do not have to install it on the root directory of a file system, e.g., with device /dev/sda1
mounted on /boot
. For example, you can install Syslinux in the syslinux
subdirectory:
sudo mkdir /boot/syslinux
Copy all .c32
files from /usr/lib/syslinux/bios/
to /boot/syslinux/
if you desire to use any menus or configurations other than a basic boot prompt. Do not symlink them.
sudo cp /usr/lib/syslinux/bios/*.c32 /boot/syslinux/
Now install the bootloader. For FAT, Ext2/3/4, or Btrfs boot partition use extlinux, where the device has been mounted:
sudo extlinux --install /boot/syslinux
Alternatively, for a FAT boot partition use syslinux, where the device is unmounted:
sudo syslinux --directory syslinux --install /dev/sdXY
After this, proceed to install the Syslinux bootstrap code appropriate for the partition table:
mbr.bin
will be installed for an MBR partition tablegptmbr.bin
will be installed for a GUID partition tableNote:
efi64
denotes x86_64 UEFI systems. For IA32 (32-bit) EFI, replace efi64
with efi32
in the below commands./boot
./usr/bin/syslinux-install_update
does not support UEFI install.syslinux.cfg
for UEFI is same as that of BIOS.Note: In the commands related to UEFI, esp
denotes the mountpoint of the EFI system partition aka ESP.
Install the syslinux and efibootmgr packages from the official repositories. Then setup Syslinux in the ESP as follows:
Copy Syslinux files to ESP:
sudo mkdir -p esp/EFI/syslinux
sudo cp -r /usr/lib/syslinux/efi64/* esp/EFI/syslinux
Setup boot entry for Syslinux using efibootmgr:
sudo efibootmgr --create --disk /dev/sdX --part Y --loader /EFI/syslinux/syslinux.efi --label "Syslinux" --verbose
where /dev/sdXY
is the partition containing the bootloader.
Create or edit *esp*/EFI/syslinux/syslinux.cfg
by following Configuration.
Note:
*esp*/EFI/syslinux/syslinux.cfg
, not /boot/syslinux/syslinux.cfg
. Files in /boot/syslinux/
are BIOS specific and not related to UEFI Syslinux./EFI/syslinux/syslinux.efi
. To work around, place resources at the default EFI location: *esp*/EFI/syslinux/* -> *esp*/EFI/BOOT/*
and *esp*/EFI/syslinux/syslinux.efi -> *esp*/EFI/BOOT/bootx64.efi
sudo nano /boot/syslinux/syslinux.cfg
Your config should look like this, make sure /dev/sdXY
points to your root partition
TIMEOUT
refers to the time it takes to boot the default OS
UI menu.c32
PROMPT 1
TIMEOUT 10
DEFAULT RebornOS
LABEL RebornOS
LINUX ../vmlinuz-linux
APPEND root=/dev/sdXY rw
INITRD ../initramfs-linux.img
LABEL RebornOSfallback
LINUX ../vmlinuz-linux
APPEND root=/dev/sdXY rw
INITRD ../initramfs-linux-fallback.img
Additionally if you want to add Windows to the boot menu add this where hd0 3
refers to the disk then partition
LABEL windows
MENU LABEL Windows
COM32 chain.c32
APPEND hd0 3