如果想让 Ubuntu 在启动时把内核日志完整显示出来,不能只改一处。除了删除 /etc/default/grub 里的 quiet splash,还得把 /etc/grub.d/10_linux 中的 gfxmode $linux_gfx_mode 这一行一并去掉,然后执行 sudo update-grub。很多人只改前者却发现没有效果,原因就在于后者会强制启用图形模式,把原本该出现的文本输出挡住了。

Ubuntu 默认不会把开机自检过程中的细节直接摊开给你看,像内核启动日志这类信息,通常都会被紫色背景和进度条盖住。要把它改成和 Debian 类似的效果,让 dmesg 级别的启动内容一行一行打印出来,重点并不在“加一个显示界面”,而在于把那层图形遮罩去掉,让文本输出重新露出来。说白了,这件事的核心就是关闭 GRUB 的图形模式,以及禁用内核的静默启动参数。
为什么删掉 quiet splash 还是黑屏或紫屏?
常见错误是只改了 /etc/default/grub 里的 GRUB_CMDLINE_LINUX_DEFAULT,却忽略了 GRUB 自身的图形模式控制逻辑。Ubuntu 在生成启动项时会自动插入 gfxmode $linux_gfx_mode,它强制启用 framebuffer 图形输出,把内核文本日志直接吞掉。
quiet:让内核不打印启动消息splash:加载 Plymouth 启动画面(覆盖终端)gfxmode(在/etc/grub.d/10_linux中):强制切换到图形分辨率,屏蔽文本模式
必须同时修改两个文件才能生效
只动 /etc/default/grub 不够,/etc/grub.d/10_linux 是实际生成菜单项的模板,它会在每个 linux 行后面追加 gfxmode。不删它,update-grub 后依然无效。
- 编辑
/etc/default/grub,把GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"改成空值或删除整行 - 编辑
/etc/grub.d/10_linux,找到含gfxmode $linux_gfx_mode的段落(通常在if ! ${recovery} ; then块里),整行删掉 - 运行
sudo update-grub,重启后就能看到滚动的内核初始化日志(如Starting kernel...、usb 1-1: new high-speed USB device...)
注意:这不是“进度图”,而是原始文本日志
Ubuntu 没有类似 Windows 的可视化启动进度条。所谓“详细开机信息”就是传统 Linux 的串口式文本输出,每行代表一个驱动加载、设备探测或服务启动事件。如果你真需要图形化进度(比如带百分比的 bar),那得自己写 Plymouth 插件——但几乎没人这么做,因为既难维护又无实际调试价值。真正有用的,是能看懂 Failed to start XXX 或 Timeout waiting for device /dev/sda1 这类报错。