如何抑制内核消息并保留启动画面?

我正在使用Ubuntu 22.04 LTS,并且我想要屏蔽所有形式的内核消息。
[0.342] Blah blah ...

在启动过程中保持启动画面。对我来说,这是最自然的启动方式,但似乎没有简单的方法可以实现!默认的grub设置quiet splash不起作用。我找到了这个post,将所有内容重定向到console=ttyS0,这样内核消息就消失了,但启动画面也消失了。下面是我在/etc/defaults/grub中的grub设置。有没有办法处理这个问题?
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=120
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`

# Don't show Ubuntu bootup text
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Detect other operating systems
GRUB_DISABLE_OS_PROBER=false

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `videoinfo'
GRUB_GFXMODE=1280x1024

1你的grub文件中没有quiet splash。你在quietsplash之间插入了一个loglevel指令。修复它,确保它实际上显示为quiet splash,然后更新grub。 - Organic Marble
@OrganicMarble:那个也不起作用。我添加了这个选项来抑制一些内核消息。 - Hosein Rahnama
2@OrganicMarble 抱歉,但这是一种有效的方法;-) 你的评论在某些年份是正确的,然后quiet得到了额外的loglevel选项(甚至必须在quiet之后)。 - undefined
1@Rinzwind 谢谢!我学到了一些东西。 - undefined
2个回答

GRUB_CMDLINE_LINUX_DEFAULT="fsck.mode=skip quiet loglevel=3 splash"

对我来说,这个工作没有任何字符的打印,并且它显示了与fcheck无关的启动画面。
看起来这个工作按照预期的方式进行,并且符合您的期望。参数...
loglevel=2
loglevel=1
loglevel=0

不管是 loglevel=3 还是不是,都没有任何区别。

[4.568562] 可能不是来自 Grub,而是其他东西。执行 sudo dmesg |grep -i '4.568562' -A 2 -B 2,它将显示消息的上下两行。

在 Ubuntu Cinnamon 23.04 和 23.10 上进行了测试。


谢谢上次的小费。顺便问一下,你是不是指的是空行 [3.721]?对吗? - undefined
1@HoseinRahnama 是的,那是我从我的dmesg中复制/粘贴的,因为我没有0.342的结果;-) 将你的grep命令和结果添加到问题中,如果可能的话,我会进行扩展。 - undefined
我在问题中添加了更多细节。令人惊讶的是,对应空行的时间在sudo dmesg中没有出现,所以grep没有返回任何内容。然而,我手动找到了该时间之前和之后的消息。希望这有所帮助。 :) - undefined
1这看起来像是NVIDIA驱动程序中的一个bug,它会打印时间戳但不会打印文本 :P - undefined
是的!我会检查不同的驱动程序版本,看看是否可以解决问题。也许检查不同的内核版本也会有帮助!:) - undefined

根据@Rinzwind的建议,我在对应空行的时间之前和之后检查了内核消息。令人惊讶的是,对应空行的时间在sudo dmesg中没有出现。而且,当我使用sudo dmesg --level=err命令时,空行出现了,但没有显示对应的时间!我手动找到了该时间之前和之后的消息。结果发现,这个空行错误与nvidia驱动程序有关,因为空行之前和之后的消息表明了这一点。因此,我将驱动程序从nvidia-driver-535降级到nvidia-driver-390,使用nvidia显卡后,空行消失了。我的笔记本电脑显卡是NVIDIA GTX 1050。