启动并登录,无需回退到文本控制台

Jaz*_*azz 6 boot logo

这是我注意到很长时间以来发生的事情,我在各种风格的 Ubuntu 中都看到了它。目前我碰巧在使用 Ubuntu Studio。

当系统引导通过 grub 时,您会在一段时间内获得一个漂亮的图形化 Ubuntu Studio 动画徽标,但是,就在登录屏幕出现之前,它返回到文本控制台,您可以在其中看到不同时间的各种内容(例如系统启动)日志记录 - 正如您在 Plymouth 显示徽标时按下 Esc 键时所看到的,有时甚至是登录提示),但通常它至少显示文件系统状态(通常是干净的),然后它切换回图形模式登录对话框。

如果它没有像这样在屏幕上闪烁文本控制台,它看起来会更整洁。我只是想知道为什么它会这样做,并且想要修复?我知道这没什么大不了的。我只是对奇怪的事情感到好奇:)

Win*_*nix 1

除非您使用的是 Windows 10,否则您在 Plymouth 和 Login 之间总会出现黑屏。对于我自己,在 Ubuntu 16.04 中,它会持续大约四秒钟。在 Ubuntu 18.04 中,它仅持续 1 或 2 秒。但是,您可以删除该屏幕上出现的所有文本。

您可以采取多种措施来获得更流畅的启动体验:

  1. 减少控制台消息
  2. 减少屏幕重置
  3. 消除 Grub 消息
  4. 减少启动期间的 fsck

我为我的手机购买了一个三脚架,用于制作各种 grub 启动场景的视频,但在创建要发布到此处的 GIF 时遇到了技术困难。

1.减少控制台消息

根据 Arch Linux 的静默启动quiet splash文章,您可以在启动参数后添加三个额外选项:

quiet splash loglevel=0 vga=current udev.log-priority=3
Run Code Online (Sandbox Code Playgroud)

引导中的完整文章参考,systemd在这种情况下可以使用:

quiet loglevel=3 rd.systemd.show_status=auto rd.udev.log_priority=3
Run Code Online (Sandbox Code Playgroud)
  • 还要touch ~/.hushlogin删除上次登录消息。

2.减少屏幕重置

来自此问答:grub.cfg 中的 vt.handoff=7 参数是什么?它说:

为了顺利启动过程,我们希望尽早显示黑屏以外的内容,并将其保留在屏幕上,直到桌面准备就绪。vt.handoff=7是其中的一部分。我们让引导加载程序显示茄子背景(我们也希望有 Ubuntu 徽标,但是引导加载程序和真实系统之间的宽高比不同存在问题,所以这是下一个最好的事情)。vt.handoff=7然后使内核在虚拟终端 7 上维护视频内存的当前内容,这是一种新的“透明”VT 类型。第一次告诉内核从 VT 7 切换时,无论是从 Plymouth 还是手动(Alt-F1 等),这些内容都会丢失,并且 VT 7 恢复为文本模式。

如果您使用的是图形背景图像的 grub,请在以下位置添加这些行/etc/default/grub

GRUB_GFXMODE="1920x1080x32"
GRUB_GFXPAYLOAD_LINUX="keep"
Run Code Online (Sandbox Code Playgroud)

3.消除Grub消息

选择菜单选项后,或者倒计时器到期后,grub 有时会发出以下消息:

Loading Linux %s ..." ${version}
Loading initial ramdisk ...
Run Code Online (Sandbox Code Playgroud)

要消除这些消息,请编辑/etc/grub.d/10_linux并将这些行更改为注释:

# 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
Run Code Online (Sandbox Code Playgroud)

也向下翻一页:

# 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
Run Code Online (Sandbox Code Playgroud)

4.fsck启动时减少

在您的/etc/fstab确保passno设置0为防止systemd-fsck@.service运行。更多详细信息请参见联机帮助页

将频率更改fsck为每 30 次启动或每月一次:我的 Ubuntu 在每次启动时都运行 fsck