我安装了一个最小的 ubuntu (xubuntu-core)。它运行良好,但启动速度有点太慢。
在我在 grub 中做出选择后,屏幕立即变黑,大约 15 秒后我看到内核启动消息,以[ 0.028000]
.那么它在这之间做了什么,即在 grub 之后,但在启动消息之前。我怎样才能找到答案?
我记得在旧的安装中,grub 本身生成输出(甚至可能是日志文件?) 有没有办法让 grub 更详细?
编辑:systemd-bootchart 告诉我显示管理器在 8 秒后启动。然而,从我在 grub 中做出选择的那一刻起,大约过了 25 秒。
我在 grub 中选择的部分非常普通:
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-29414df5-b194-46a5-ae12-dac11924ae3c' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 29414df5-b194-46a5-ae12-dac11924ae3c
else
search --no-floppy --fs-uuid --set=root 29414df5-b194-46a5-ae12-dac11924ae3c
fi
linux /boot/vmlinuz-4.18.0-15-generic root=UUID=29414df5-b194-46a5-ae12-dac11924ae3c ro
initrd /boot/initrd.img-4.18.0-15-generic
}
答案1
内核在启动的早期部分设置各种东西(CPU、内存、其他低级平台组件,例如中断控制器),并且始终记录相关消息。在时钟源初始化之前,所有消息的时间戳都为零。因此,即使在早期启动过程中的某个时刻存在很长的延迟,您也不会从时间戳中看到它。像只是可视化时间戳数据这样的工具systemd-bootchart
,所以它们在这里也没有帮助。
您需要从早期阶段仔细查看 dmesg 日志,看看是否有任何问题。除非存在行为不当的平台组件、中断传送中断或其他问题,否则延迟可能来自为 KASLR 收集熵等步骤。您可以尝试使用启动nokaslr
选项禁用它,看看是否有帮助。