Ubuntu 19.10的启动脚本输出存储在哪里?

通过从`/etc/default/grub`文件的`GRUB_CMDLINE_LINUX_DEFAULT`行中删除`quiet`和`splash`参数,我能够在Ubuntu启动过程中将系统启动脚本(服务)的消息显示到屏幕上。
然而,这些消息滚动得非常快,几乎不可能捕捉到任何`FAILED`消息。文件`/var/log/boot.log`用于保存这些消息。例如:
# grep -a FAILED /var/log/boot.log
[FAILED] Failed to start Raise network interfaces.
...

然而,在我的系统上,自2019年4月以来,此文件已不再更新,这表明从Ubuntu 19.04开始它已被弃用。我在Ubuntu 19.10上可以在哪里找到这个内容?是否有一种方法可以将启动时由init脚本显示的数据捕获到文件中?
注意:journalctl不提供相同的功能(即确切的控制台文本输出)。例如:
# journalctl -b 0 | grep Raise
Jan 13 12:01:25 ... systemd[1]: Starting Raise network interfaces...
Jan 13 12:01:25 ... systemd[1]: Started Raise network interfaces.
3个回答

经过一些测试,我最终得到以下结果:

  1. 请参见this
  2. Bootlogd不再受支持。 Plymouth服务接管。文件/etc/default/bootlogd无关紧要。
  3. 为了让plymouth.service将消息记录到/var/log/boot.log文件中,文件/etc/default/grub应包含以下行:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"。否则,plymouth服务将不会记录任何内容到boot.log

因此,@WinEunuuchs2Unix 的答案基本上是正确的。


可以使用这个引导程序查看来自此引导程序的消息。
sudo journalctl -b 0

阅读man journalctl并查看我的AskUbuntu个人资料以获取journalctl提示。

是的,这是我调查过的一个问题。然而,格式与boot.log的内容不同,而boot.log的内容与启动过程中控制台显示的文本完全相同。 - FedKad

问题从Ubuntu 16.04开始存在:

那里的答案也推荐使用journalctl,但是埋在评论中:

我确认当在/etc/default/grub中配置GRUB_CMDLINE_LINUX_DEFAULT=""时,boot.log不会被写入。当使用GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"时,boot.log又会被写入。我使用的是Ubuntu 19.04。- adrhc Jun 9 '19 at 11:21

当我第一次开始使用16.04时,我记得/var/log/boot.log是空的,但我并没有太在意去调查。在阅读这个问题后,我查看了一下,现在它有内容了。这是一个已经修复的错误:

可能在19.10版中存在错误回归,或者sysvinit软件包未安装。在我的16.04安装中有以下内容:

$ apt list | grep sysv | grep installed

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

    sysv-rc/xenial,xenial,now 2.88dsf-59.3ubuntu2 all [installed]
    sysvinit-utils/xenial,now 2.88dsf-59.3ubuntu2 amd64 [installed]

对于不了解的人来说,/var/log/boot.log相比于journalctl -b的优点在于彩色格式化,可以反映出控制台引导消息。

boot.log.png


很遗憾,在Ubuntu 18.04上这对我来说不起作用。(是的,我运行了sudo update-grub。)无论如何,有关此问题是否有任何错误报告? - Melebius
和@Melebius一样,我在19.10上测试了"quiet splash"和"nosplash"(后跟update-grub),但没有boot.log。 - FedKad
@Melebius 我找到了16.04的错误报告,并添加了一个链接。 - WinEunuuchs2Unix
谢谢您的更新,但是我仍然没有找到关于如何在我的机器上(18.04或更新版本,OP的19.10)使boot.log工作的建议。目前它看起来只是一个非常详细的注释... bootlogd软件包最后出现在16.04中。 - Melebius
@Melebius 您是否已安装了我答案更新中提到的sysvinit软件包? - WinEunuuchs2Unix
我已经安装了sysvinit-utils,但sysv-rc在16.04版本中也是最后一次出现。 - Melebius
我认为这是为了在启动时以Sudo权限运行程序的rc.local服务,可能在你的情况下不需要。 - WinEunuuchs2Unix
非常抱歉,WinEunuuchs2Unix。你的回答最接近我的问题,并且确实值得获得悬赏。然而,由于我的错误操作,我误点击了@starkus的回答来发放悬赏,而系统不允许我撤销!:( - FedKad
一个管理员可能可以修复这个问题。 - WinEunuuchs2Unix
我已经通知了管理员。再次抱歉。 - FedKad
1没问题。我给你的问答都点了赞,帮你抵消一部分悬赏费用 :) - WinEunuuchs2Unix