Silent boot - ArchWiki

# Silent boot

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 the kernel parameters using 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 like grey flash.

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 `quiet` and `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 linux-docs package.

If you also want to stop systemd from printing it's version number when booting, you should also append this to your kernel commandline (source):

    rd.udev.log-priority=3

## systemd

Configure your systemd getty service as described upon Automatic login to virtual console.

    $ grep Exec /etc/systemd/system/autologin\@.service

    ...
    ExecStart=-/sbin/agetty -n -i -a YOUR_USERNAME %I
    ...

This article or section is out of date.

Reason: The default login file no longer contains a line calling pam_lastlog.so, and does not need to be commented out. (Discuss)

To remove lastlog message you need to comment out lastlog in `/etc/pam.d/login`:

    #session                optional        pam_lastlog.so

Also `touch ~/.hushlogin` to remove the Last login message.

## sysctl

To hide any kernel messages from the console add or modify the kernel.printk line like the following:

     /etc/sysctl.d/20-quiet-printk.conf

     kernel.printk = 3 3 3 3

## startx

To hide `startx` messages, you could redirect its output to `/dev/null`, in your .bash_profile like so:

Warning: As of Xorg 1.16 with rootless login, see Xorg#Broken_redirection.

    $ [[ $(fgconsole 2>/dev/null) == 1 ]] && exec startx -- vt1 &> /dev/null

Outstanding Issues:

- Systemd shutdowns are not quiet - As of systemd v206, the `quiet` kernel command line parameter is now respected on shutdown, though it seems that if you use the `shutdown` hook of mkinitcpio, this function has not been set up to support that parameter.

## fsck

To hide fsck messages during boot, let systemd check the root filesystem. For this, remove fsck from:

    HOOKS=(...)

in `/etc/mkinitcpio.conf` and then run:

    mkinitcpio -p linux

Now copy the files `systemd-fsck-root.service` and `systemd-fsck@.service` located at `/usr/lib/systemd/system/` to `/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.

Category:

- Boot process