如何缩短启动/关机时间?

alc*_*lci 29 laptop 12.10 bootchart

我有一台相当不错的笔记本电脑(英特尔酷睿 i7-3520M CPU @ 2.90GHz,三星的 SataII SSD,8GB 内存),但我对启动和关机时间不满意......我已经安装了引导图,并试图解释它,但我不明白某些部分。

引导图输出

特别是,我不明白前 10 秒发生了什么,当时几乎没有 CPU 利用率,也没有 I/O。发生了什么?(似乎只有 udevd、modprobe 和 plymouth 正在运行)。

在我日常工作的另一端,我也经历了缓慢关机。这里没有击落图,所以我更无能为力......

更新 我遇到了一个提示,说在关闭时按向上键可以访问控制台(在此之前我一直在与 F1 / Alt F1 作斗争)。所以我看到长时间的关机时间似乎与rpcbindmodem-manager无法干净地退出有关......知道吗?

更新 2 我已经卸载了 rpcbind 和 modemmanager。这使关闭变得更好,但在“所有进程在 1 秒内结束”消息和真正关闭之间我还有几秒钟的等待时间。就在那时,我收到一条我还无法阅读的快速消息,但我怀疑会发生某种超时......

更新 3 好的,我想我已经将范围缩小到在启动过程的前 10 秒内执行resumewait-for-root。这需要 5 秒以上,没有磁盘也没有明显的 CPU 活动。我注意到 /etc/initramfs/conf.d/resume 中的交换 UUID 与我的交换分区的真实 UUID 不匹配,这恰好是......加密的。也许这就是重点?关于 initramfs-tools 和 cryptswap 的任何提示?

alc*_*lci 12

好的,我找到了问题所在。正如我的感觉,等待恢复等待 root的 5 秒是不正常的。

谷歌搜索,我终于找到了这个错误报告:wait-for-root 延迟 5 秒

本质上,它指出 5 秒的等待是由于/etc/initramfs-tools/conf.d/resume.

事实证明我的交换是加密的,并且我的初始安装 UUID 在/etc/initramfs-tools/conf.d/resume. 我试图把 blkid 给的那个放在 /dev/mapper/cryptswap1 中,但它没有用......

我终于把文件中的条目注释掉了,5 秒的延迟消失了。无论如何,我的系统上没有启用休眠(我认为它在 Ubuntu 中默认是禁用的)。注意条目开头的#。

#RESUME=UUID=3835540d-0cb4-46fc-b39a-de9ff88dcefd
Run Code Online (Sandbox Code Playgroud)

然后运行:

sudo update-initramfs -u
Run Code Online (Sandbox Code Playgroud)

所以这是我最新的引导图:

引导图

好多了。关于关机,删除 rpcbind 和 modemmanager 就行了。我现在有很好的启动和关闭时间。