Difference between revisions of "Silent boot"

From ArchWiki
Jump to: navigation, search
(hiding kernel messages)
(remove inittab nonesense)
Line 32: Line 32:
 
==Grub configs==
 
==Grub configs==
  
To avoid the verbose text, you can add this line to the grub kernel command "quiet console=tty12". It will send the outpout of the boot process to the "tty 12", while remaining on the "tty 1".
+
To avoid the verbose text, you can add this line to the grub kernel command "quiet console=tty12". It will send the output of the boot process to the "tty 12", while remaining on the "tty 1".
  
 
Example configuration for /boot/grub/menu.lst
 
Example configuration for /boot/grub/menu.lst
Line 49: Line 49:
 
  kernel /vmlinuz26 root=/dev/disk/by-uuid/b2f2fc9a-6305-4770-aed2-fccb3ec51d5c ro quiet console=tty12 logo.nologo
 
  kernel /vmlinuz26 root=/dev/disk/by-uuid/b2f2fc9a-6305-4770-aed2-fccb3ec51d5c ro quiet console=tty12 logo.nologo
 
  initrd /kernel26.img
 
  initrd /kernel26.img
 
==/etc/inittab==
 
 
The file /etc/inittab is responsible for the prompts you get in your ttys. The boot process taking place in tty 1, i want to remove the prompt in that tty so that no text is displayed whatsoever. So i am gonna deactivate tty1 completely. Simply comment the line responsible for it in the /etc/initab file. The line to comment is this one: 
 
 
c1:2345:respawn:/sbin/agetty -8 38400 tty1 linux
 
 
This is what my inittab file looks like with that line commented:
 
 
#
 
# /etc/inittab
 
#
 
 
#  Runlevels:
 
#    0    Halt
 
#    1(S)      Single-user
 
#    2    Not used
 
#    3    Multi-user
 
#    4    Not used
 
#    5    X11
 
#    6    Reboot
 
 
## Only one of the following two lines can be uncommented!
 
# Boot to console
 
#id:3:initdefault:
 
# Boot to X11
 
id:5:initdefault:
 
 
rc::sysinit:/etc/rc.sysinit
 
rs:S1:wait:/etc/rc.single
 
rm:2345:wait:/etc/rc.multi
 
rh:06:wait:/etc/rc.shutdown
 
su:S:wait:/sbin/sulogin -p
 
 
# -8 options fixes umlauts problem on login
 
#c1:2345:respawn:/sbin/agetty -8 38400 tty1 linux
 
c2:2345:respawn:/sbin/agetty -8 38400 tty2 linux
 
c3:2345:respawn:/sbin/agetty -8 38400 tty3 linux
 
c4:2345:respawn:/sbin/agetty -8 38400 tty4 linux
 
c5:2345:respawn:/sbin/agetty -8 38400 tty5 linux
 
c6:2345:respawn:/sbin/agetty -8 38400 tty6 linux
 
 
# Hypervisor Virtual Console for Xen and KVM
 
#h0:2345:respawn:/sbin/agetty -8 38400 hvc0 linux
 
 
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
 
 
# Example lines for starting a login manager
 
#x:5:respawn:/usr/bin/xdm -nodaemon
 
#x:5:respawn:/usr/sbin/gdm -nodaemon
 
#x:5:respawn:/usr/bin/kdm -nodaemon
 
#x:5:respawn:/usr/bin/slim >& /dev/null
 
x:5:once:/bin/su yourusername -l -c "/bin/bash --login -c /usr/bin/startx >/dev/null 2>&1"
 
 
==Patching grub==
 
 
(coming soon)
 
 
==Other==
 

Revision as of 05:45, 18 November 2012

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.

Syslinux+Systemd

Your /boot/syslinux/syslinux.cfg should look something like:

   $ grep APPEND /boot/syslinux/syslinux.cfg | head -n1
   APPEND root=/dev/sda1 ro 5 init=/usr/lib/systemd/systemd quiet vga=current

vga=current is the magic kernel argument not to do something crazy like: https://bugs.archlinux.org/task/32309

Configure your systemd getty service like so:

   x220:~$ grep ExecStart /usr/lib/systemd/system/getty@.service
   ExecStart=-/sbin/agetty -i -a YOUR_USERNAME %I 38400

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

    #session                optional        pam_lastlog.so

To hide any kernel messages from the console use this tip:

   $ grep ^kernel.printk /etc/sysctl.conf 
   kernel.printk = 3 3 3 3

Outstanding Issues:

Grub configs

To avoid the verbose text, you can add this line to the grub kernel command "quiet console=tty12". It will send the output of the boot process to the "tty 12", while remaining on the "tty 1".

Example configuration for /boot/grub/menu.lst

# (0) Arch Linux
title  Arch Linux
root   (hd0,5)
kernel /vmlinuz26 root=/dev/disk/by-uuid/b2f2fc9a-6305-4770-aed2-fccb3ec51d5c ro quiet console=tty12
initrd /kernel26.img

This configuration will only leave the Arch logo on the screen for the whole boot process. If you would like to also remove the logo, simply add "logo.nologo" to the kernel command, like this:

# (0) Arch Linux
title  Arch Linux
root   (hd0,5)
kernel /vmlinuz26 root=/dev/disk/by-uuid/b2f2fc9a-6305-4770-aed2-fccb3ec51d5c ro quiet console=tty12 logo.nologo
initrd /kernel26.img