我在使用 Ubuntu 20.04 LTS,我想隐藏以下形式的所有内核消息
[0.342652] Blah blah ...
在启动过程中,同时保留启动画面。默认 grub 设置quiet splash
不起作用。我添加了fsck.mode=skip
和loglevel=0
以隐藏一些用于磁盘检查和旧硬件的内核消息。但是,我仍然得到一个空行,如
[4.568562]
在启动画面出现之前。我发现了这个邮政它将所有内容重定向到,console=ttyS0
这样内核消息就消失了,但启动画面也消失了。下面是我的 grub 设置/etc/defaults/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="fsck.mode=skip quiet loglevel=0 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
我注意到,当我切换到英特尔显卡sudo prime-select intel
时,空行会消失,当前的 grub 设置可以正常工作。但是,当我使用 nvidia 显卡时sudo prime-select nvidia
,启动画面前会出现以下内容
这是上一张图片中出现的sudo dmesg
时间前后的结果。[4.568562]
[ 4.553719] nvidia: module verification failed: signature and/or required key missing - tainting kernel
[ 4.568556] nvidia-nvlink: Nvlink Core is being initialized, major device number 511
[ 4.569341] nvidia 0000:01:00.0: enabling device (0006 -> 0007)
上述日志中显示的空行确实存在,并且不是拼写错误。
答案1
GRUB_CMDLINE_LINUX_DEFAULT="fsck.mode=skip quiet loglevel=3 splash"
对我来说它不需要打印任何字符就可以工作,而且它显示的启动画面与 fcheck 没有任何关系。
这似乎按预期工作,并且正如您期望的那样。参数...
loglevel=2
loglevel=1
loglevel=0
而不是loglevel=3
毫无区别。
可能[4.568562]
不是来自 Grub,而是来自其他东西。执行 a sudo dmesg |grep -i '4.568562' -A 2 -B 2
,它将在消息的上方和下方显示 2 行。
在 Ubuntu Cinnamon 23.04 和 23.10 上测试
答案2
按照@Rinzwind的建议,我查看了空行对应时间前后的内核消息,出乎意料的是, 中并没有出现空行对应的时间,sudo dmesg
而且,当我查看 时sudo dmesg --level=err
,空行出现了,但是没有显示对应的时间!我手动找到了该时间前后的消息,结果发现这个空行错误和nvidia驱动有关,因为空行前后的消息都表明了这一点。于是,我将驱动从 降级到 ,nvidia-driver-535
使用nvidia-driver-390
nvidia显卡时空行就消失了。我的笔记本显卡是NVIDIA GTX 1050
。