You will always get a black screen between Plymouth and Login, unless you are using Windows 10. For myself in Ubuntu 16.04 it lasts about four seconds. In Ubuntu 18.04 it only lasts 1 or 2 seconds. You can however eliminate all text that appears on that screen.
There are a number of different things you can do for a smoother boot experience:
- Reduce console messages
- Reduce screen resetting
- Eliminate Grub messages
- Reduce fsck during boot
I've purchased a tripod for my cellphone to make videos of the various grub booting scenarios but have run into technical difficulties creating GIF to post here.
1. Reduce console messages
Based on Arch Linux's Silent Boot article you can add three extra options after quiet splash
boot parameters:
quiet splash loglevel=0 vga=current udev.log-priority=3
The full article references systemd
in boot in which case this can be used:
quiet loglevel=3 rd.systemd.show_status=auto rd.udev.log_priority=3
- Also
touch ~/.hushlogin
to remove the Last login message.
2. Reduce screen resetting
From this Q&A: What is vt.handoff=7 parameter in grub.cfg? it says:
For a smooth boot process, we want to display something other than a
black screen as early as possible and leave it on screen until the
desktop is ready. vt.handoff=7
is part of this. We have the boot
loader display an aubergine background (we wanted to have an Ubuntu
logo as well, but there are problems with different aspect ratios
between the boot loader and the real system, so this is the next best
thing). vt.handoff=7
then causes the kernel to maintain the current
contents of video memory on virtual terminal 7, which is a new
"transparent" VT type. The first time that the kernel is told to
switch away from VT 7, either from Plymouth or manually (Alt-F1,
etc.), these contents are lost and VT 7 reverts to text mode.
If you are grub with a graphics background image add these lines in /etc/default/grub
:
GRUB_GFXMODE="1920x1080x32"
GRUB_GFXPAYLOAD_LINUX="keep"
3. Eliminate Grub messages
After selecting a menu option, or the countdown timer expires grub sometimes issues these messages:
Loading Linux %s ..." ${version}
Loading initial ramdisk ...
To eliminate these message edit /etc/grub.d/10_linux
and change these lines to comments:
# June 29, 2018 hide Loading Linux message
# if [ x"$quiet_boot" = x0 ] || [ x"$type" != xsimple ]; then
# message="$(gettext_printf "Loading Linux %s ..." ${version})"
# sed "s/^/$submenu_indentation/" << EOF
# echo '$(echo "$message" | grub_quote)'
#EOF
# fi
And a page down these lines too:
# June 29, 2018 hide Loading inital ramdisk message
# if [ x"$quiet_boot" = x0 ] || [ x"$type" != xsimple ]; then
# message="$(gettext_printf "Loading initial ramdisk ...")"
# sed "s/^/$submenu_indentation/" << EOF
# echo '$(echo "$message" | grub_quote)'
#EOF
# fi
4. Reduce fsck
during boot
In your /etc/fstab
ensure passno is set to 0
to prevent systemd-fsck@.service
from running. More details from the manpage.
Change the frequency of fsck
to every 30 boots or once a month: My Ubuntu is running fsck on every bootup
Best Answer
In
Ubuntu 18.04 Server LTS
, edit/etc/sysctl.d/10-console-messages.conf
and setkernel.printk = 0 4 1 7
Actually the first value (0) is what you need. According to https://elinux.org/Debugging_by_printing, setting that first number to 0 means only "Emergency messages" are shown ("system is about to crash or is unstable").