Silent boot in Arch Linux with Plymouth
Last updated on March 12, 2025The default boot process in Arch Linux displays verbose console output and kernel messages, which may detract from a polished system experience. This technical guide demonstrates how to:
- Implement a clean, message-free boot process
- Configure Plymouth for graphical splash screen support
- Set up GRUB for silent operation
- Maintain system diagnostics accessibility when required
Important: This guide is specifically designed for systems using the GRUB bootloader. While these modifications are safe when properly implemented, ensure you have a system backup before proceeding. Users should be comfortable with command-line operations and basic system configuration.
Prerequisites
Before proceeding with the implementation, ensure your system meets these requirements:
- A functioning Arch Linux installation with GRUB
- Root or sudo privileges
- An AUR helper installed (e.g.,
yay) - A system backup
- A systemd-compatible root filesystem
Install GRUB Silent
The standard GRUB package available in the official Arch Linux repositories lacks options for complete boot message suppression. To achieve a silent boot experience, we’ll implement grub-silent from the Arch User Repository (AUR).
Before proceeding, ensure you have an AUR helper like yay installed on your system. Then run:
yay -S grub-silent

Note: Package compilation may take several minutes, as
grub-silentis built from source. Build time depends on your system’s hardware capabilities.
Upon successful compilation, the package will replace your current GRUB installation:

Important: After installing
grub-silent, follow these configuration steps to ensure proper GRUB replacement.
UEFI Systems Configuration
For systems using UEFI, execute the following command to install grub-silent:
sudo grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
BIOS Systems Configuration
For BIOS-based systems, the installation command requires specifying the target disk device. Replace sdX with your system’s boot disk (e.g., sda, sdb, vda):
sudo grub-install --target=i386-pc /dev/sdX
Generate GRUB Configuration
After installing GRUB Silent, generate the configuration file:
sudo grub-mkconfig -o /boot/grub/grub.cfg

Apply Changes
Restart your system to implement the new configuration:
sudo reboot
Note: Your system should now boot silently. To access the GRUB menu when needed, hold the Shift key during boot. For UEFI systems, use the Esc key instead.
Configuring mkinitcpio Hooks
mkinitcpio is a Bash script used to create an initial ramdisk environment in Arch Linux. The configuration of this script can be edited in the /etc/mkinitcpio.conf file.
The HOOKS array is the most important setting in the file. Hooks are small scripts which describe what will be added to the image. They are executed in the order they exist in the HOOKS array of the configuration file.
The default Arch Linux HOOKS configuration is:
HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block filesystems fsck)
The mkinitcpio documentation provides detailed information about common hooks and their usage. To suppress fsck messages during boot, the system can be configured to use systemd for root filesystem checking instead of the traditional fsck hook.
This will be the new HOOKS configuration using systemd:
HOOKS=(systemd autodetect microcode modconf kms keyboard sd-vconsole block filesystems)
After modifying the configuration, regenerate the initramfs with:
sudo mkinitcpio -P
Note: The
-Pflag rebuilds all preset configurations, ensuring complete system integration.

Install Plymouth
Plymouth is an independent boot splash system developed by Fedora that provides a flicker-free graphical boot experience. It handles the initialization process from kernel load to user space.
sudo pacman -S plymouth

Plymouth requires specific hook configuration in the initramfs generation process. Modify /etc/mkinitcpio.conf to integrate Plymouth with systemd:
HOOKS=(systemd plymouth autodetect microcode modconf kms keyboard sd-vconsole block filesystems)
Important: The hook order is crucial. The
systemdhook must precedeplymouthto ensure proper initialization sequence.
After modifying the hook configuration, regenerate the initramfs:
sudo mkinitcpio -P
Plymouth Theme Configuration
By default, Arch Linux configures Plymouth to use the bgrt theme. To verify the current theme setting:
plymouth-set-default-theme
Plymouth provides several built-in themes, each offering different visual experiences during boot:
- BGRT: Advanced Spinner variant that preserves OEM logo functionality (Boot Graphics Resource Table).
- Fade-in: Minimalist theme featuring a fade transition with animated star effects.
- Glow: Enterprise-grade theme displaying boot progress via pie chart and illuminated logo.
- Script: Custom theme showcasing the Arch Linux logo with professional animations.
- Solar: Dynamic space-themed interface with animated blue star effects.
- Spinner: Lightweight theme implementing a basic loading indicator.
- Spinfinity: Modern theme featuring an animated infinity symbol.
- Tribar: Terminal-based theme with tri-colored progress indication.
- Text: Console-oriented theme with tri-colored progress tracking.
- Details: Verbose mode theme for diagnostic purposes.
The theme can be changed by running the following command as root:
sudo plymouth-set-default-theme -R theme
Note: The
-Rflag automatically regenerates the initramfs after theme selection.
For additional theme customization options, refer to the Plymouth Theme Documentation.
Final result
References
- Silent Boot: https://wiki.archlinux.org/title/Silent_boot
- GRUB: https://wiki.archlinux.org/title/GRUB
- mkinitcpio: https://wiki.archlinux.org/title/Mkinitcpio
- Plymouth: https://wiki.archlinux.org/title/Plymouth
- Plymouth theme: https://wiki.archlinux.org/title/Plymouth#Changing_the_theme