在Ubuntu启动时让Plymouth启动画面同步显示启动日志
在Ubuntu启动时让Plymouth启动画面同步显示启动日志
兄弟,我懂你那种跟着老教程踩坑的感觉——2010年的教程放到现在,Ubuntu的Plymouth机制和API早就更新了,难怪你看不到启动日志!我给你整理一套适配新Ubuntu版本的可行方案,一步步来:
一、先备份你的Plymouth主题
别上来就改,先把自定义主题备份一份,避免搞坏了没法恢复:
sudo cp -r /usr/share/plymouth/themes/你的主题名/ ~/你的主题名备份/
二、修改主题的脚本文件
找到你主题目录里的脚本文件(一般叫script.js,如果是其他名字比如main.js也一样),打开它:
sudo nano /usr/share/plymouth/themes/你的主题名/script.js
在脚本的合适位置(比如初始化部分之后)添加以下代码——这段代码会创建一个底部居中的文本框,实时更新并显示最近10行启动日志:
// 创建日志显示标签,设置样式和位置 var log_display = plymouth.label({ text: "", font: "monospace 10", // 等宽字体更适合显示日志,字号可调整 color: "#ffffff", // 字体颜色,根据你的主题背景调整,比如深色背景用白色 horizontal_alignment: "center", vertical_alignment: "bottom", y: plymouth.screen_height() - 20, // 距离屏幕底部20px,可调整 max_width: plymouth.screen_width() - 40, // 左右留20px边距 wrap: true // 自动换行 }); // 监听启动消息,更新日志内容 plymouth.add_message_handler("message", function(msg) { // 只保留最近10行日志,避免占满屏幕 var current_logs = log_display.text().split("\n"); if (current_logs.length >= 10) { current_logs.shift(); // 删除最早的一行 } current_logs.push(msg); // 添加新日志行 log_display.text(current_logs.join("\n")); }); // 让日志标签显示在启动画面上 plymouth.display(log_display);
保存退出(按Ctrl+O,回车,再按Ctrl+X)。
三、调整系统GRUB配置
默认Ubuntu的启动参数会隐藏大部分日志,我们需要修改GRUB来让Plymouth能获取到日志:
- 打开GRUB配置文件:
sudo nano /etc/default/grub
- 找到
GRUB_CMDLINE_LINUX_DEFAULT这一行,修改成:
GRUB_CMDLINE_LINUX_DEFAULT="splash plymouth.debug"
如果你之前有
quiet参数,把它删掉——quiet会屏蔽大部分启动日志,留着的话你看不到多少内容。
- 更新GRUB配置:
sudo update-grub
四、重新应用主题并更新initramfs
让系统加载修改后的主题配置:
# 设置你的主题为默认Plymouth主题 sudo update-alternatives --set default.plymouth /usr/share/plymouth/themes/你的主题名/你的主题名.plymouth # 更新initramfs,让修改生效 sudo update-initramfs -u
五、测试重启
现在重启你的电脑,就能看到启动画面底部中心实时显示启动日志了!
可能遇到的小问题及解决:
- 日志看不见:大概率是字体颜色和主题背景冲突了,调整代码里的
color值(比如改成#000000黑色);或者调整y值,让日志位置更明显。 - 日志显示乱:确保用的是
monospace等宽字体,避免排版错乱。
备注:内容来源于stack exchange,提问作者TheHustlerX
相关产品推荐
相关产品推荐

