This page is for those who prefer to limit the verbosity of their system to a strict minimum, either for aesthetics or other reasons. Following this guide will remove all text from the bootup process. Video demonstration
Change the kernel parameters using the configuration options of your boot loader, to include the following parameters:
vga=current is the kernel argument that avoid weird behaviours like FS#32309.
If you are still getting messages printed to the console, it may be dmesg sending you what it thinks are important messages. You can change the level at which these messages will be printed by using
quiet loglevel=<level>, where
<level> is any number between 0 and 7, where 0 is the most critical, and 7 is debug levels of printing.
quiet loglevel=3 vga=current
Note that this only seems to work if both
loglevel=<level> are both used, and they must be in that order (quiet first). The loglevel parameter will only change that which is printed to the console, the levels of dmesg itself will not be affected and will still be available through the journal as well as the
dmesg command. For more information, see the
Documentation/kernel-parameters.txt file of the package.
If you also want to stop systemd from printing its version number when booting, you should also append
udev.log_priority=3 to your kernel commandline (source). If systemd is used in an initramfs, append
If you are using the
systemd hook in the initramfs, you may get systemd messages during initramfs initialization. You can pass
rd.systemd.show_status=false to disable them, or
rd.systemd.show_status=auto to only suppress successful messages (so in case of errors you can still see them). Actually,
auto is already passed to
quiet is used, however for some motive sometimes systemd inside initramfs does not get it. Below are the parameters that you need to pass to your kernel to get a completely clean boot with systemd in your initramfs:
quiet loglevel=3 rd.systemd.show_status=auto rd.udev.log_priority=3
touch ~/.hushlogin to remove the Last login message.
To hide any kernel messages from the console, add or modify the
kernel.printk line according to :
kernel.printk = 3 3 3 3
startx messages, you could redirect its output to
/dev/null, in your .bash_profile like so:
$ [[ $(fgconsole 2>/dev/null) == 1 ]] && exec startx -- vt1 &> /dev/null
To hide fsck messages during boot, let systemd check the root filesystem. For this, remove fsck from:
/etc/mkinitcpio.conf and then run:
mkinitcpio -p linux
Now copy the files
systemd-fsck@.service located at
/etc/systemd/system/ and edit them, configuring StandardOutput and StandardError like this:
(...) [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/lib/systemd/systemd-fsck StandardOutput=null StandardError=journal+console TimeoutSec=0
See this for more info on the options you can pass to
systemd-fsck - you can change how often the service will check (or not) your filesystems.
The console cursor at boot keeps blinking if you follow these instructions. This can be solved by passing
vt.global_cursor_default=0 to the kernel .
To recover the cursor in the TTY, run:
# setterm -cursor on >> /etc/issue
Make GRUB silent
To hide GRUB welcome and boot messages, you may install unofficialAUR package.
After the installation, it is required to reinstall GRUB to necessary partition first.
Then, take an example as
/etc/default/grub.silent, and make necessary changes to
Below three lines are necessary:
GRUB_DEFAULT=0 GRUB_TIMEOUT=0 GRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT
GRUB_HIDDEN_TIMEOUT=1(or any positive value), set
GRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT. Otherwise pressing
Escon boot to show GRUB menu will not work.