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
Kernel parameters
Change thekernel parametersusing the configuration options of your boot loader, to include the following parameters:
quiet vga=current
vga=current
is the kernel argument that avoid weird behaviours likeFS#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 usingquiet loglevel=
, where
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 bothquiet
andloglevel=
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 thedmesg
command. For more information, see theDocumentation/kernel-parameters.txt
file of thelinux-docspackage.
If you also want to stop systemd from printing its version number when booting, you should also appendudev.log_priority=3
to your kernel commandline (source). If systemd is used in aninitramfs, appendrd.udev.log_priority=3
instead.
If you are using thesystemd
hook in theinitramfs, you may get systemd messages during initramfs initialization. You can passrd.systemd.show_status=false
to disable them, orrd.systemd.show_status=auto
to only suppress successful messages (so in case of errors you can still see them). Actually,auto
is already passed tosystemd.show_status=auto
whenquiet
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 yourinitramfs:
quiet loglevel=3 rd.systemd.show_status=auto rd.udev.log-priority=3
Alsotouch ~/.hushlogin
to remove the Last login message.
sysctl
To hide any kernel messages from the console, add or modify thekernel.printk
line according to[1]:
/etc/sysctl.d/20-quiet-printk.conf
kernel.printk = 3 3 3 3
startx
To hidestartx
messages, you could redirect its output to/dev/null
, in your.bash_profilelike so:
$ [[ $(fgconsole 2>/dev/null) == 1 ]] && exec startx -- vt1 &> /dev/null
fsck
To hide fsck messages during boot, let systemd check the root filesystem. For this, removefsckfrom:
HOOKS=(...)
in/etc/mkinitcpio.conf
and then run:
mkinitcpio -p linux
Now copy the filessystemd-fsck-root.service
andsystemd-fsck@.service
located at/usr/lib/systemd/system/
to/etc/systemd/system/
and edit them, configuringStandardOutputandStandardErrorlike this:
(...)
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/lib/systemd/systemd-fsck
StandardOutput=null
StandardError=journal+console
TimeoutSec=0
Seethisfor more info on the options you can pass tosystemd-fsck
- you can change how often the service will check (or not) your filesystems.
Remove console cursor blinking
The console cursor at boot keeps blinking if you follow these instructions. This can be solved by passingvt.global_cursor_default=0
to the kernel[2].
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 unofficialgrub-silentAURpackage.
After the installation, it is required to reinstallGRUBto necessary partition first.
Then, take an example as/etc/default/grub.silent
, and make necessary changes to/etc/default/grub
.
Below three lines are necessary:
GRUB_DEFAULT=0
GRUB_TIMEOUT=0
GRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT
Lastly, regenerategrub.cfg
file.