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
plymouth to the
HOOKS array in mkinitcpio.conf (
/etc/mkinitcpio.conf). It must be added after
udev for it to work:
HOOKS=(base udev plymouth ...)
list all Plymouth themes installed.
set Plymouth theme as default.
theme is an example name in this.
plymouth-set-default-theme -R theme
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.
/efi. This assumes that you have
chrooted to your system's mount point.
With the ESP mounted to
bootctl to install systemd-boot into the EFI system partition by running:
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/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.
bootctl to update systemd-boot:
If the location of the ESP is non-standard (i.e., it is not
/boot/efi), you need to explicitly provide it using the
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
Type = Package
Operation = Upgrade
Target = systemd
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.
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
sudo mkdir /boot/syslinux
.c32 files from
/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 table
gptmbr.bin will be installed for a GUID partition table
efi64 denotes x86_64 UEFI systems. For IA32 (32-bit) EFI, replace
efi32 in the below commands.
/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
/dev/sdXY is the partition containing the bootloader.
Create or edit
*esp*/EFI/syslinux/syslinux.cfg by following Configuration.
/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
APPEND root=/dev/sdXY rw
APPEND root=/dev/sdXY rw
Additionally if you want to add Windows to the boot menu add this where
hd0 3 refers to the disk then partition
MENU LABEL Windows
APPEND hd0 3