更新到 Ubuntu 16.04 后,启动时间变长了一点(超过 10-15 秒)。我查看了“dmesg”输出,发现了以下内容:
[ 23.882674] audit: type=1400 audit(1461650474.108:10): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/bin/evince" pid=644 comm="apparmor_parser"
**[ 23.882682]** audit: type=1400 audit(1461650474.108:11): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/bin/evince//sanitized_helper" pid=644 comm="apparmor_parser"
**[ 32.162714]** cgroup: new mount options do not match the existing superblock, will be ignored
[ 32.777477] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 32.777480] Bluetooth: BNEP filters: protocol multicast
我假设“dmesg”输出左侧的数字是时间。如果我在这一步浪费了 9 秒,我该怎么做才能缩短启动时间?
答案1
Systemd
负责启动过程。您可以通过禁用某些服务或尝试修复配置来改善它。要检查服务在启动过程中花费了多少时间,您可以运行:
systemd-analyze blame
为了图形化地详细查看你的启动过程,你可以生成一个绘图图像:
systemd-analyze plot > bootimage
现在你可以打开启动映像使用例如eog
或其他图像查看器并检查服务所用的时间(以及例如系统在启动时停止的位置)。它将看起来像这样:
正如我们所见,例如virtualbox.service
正在采取62毫秒这很好,但安装我的 F3 磁盘不是那么快。我可以考虑禁用自动安装(这是一个糟糕的例子,因为 systemd 正在启动服务平行线模式,并且此服务不会减慢启动时间,没有什么取决于它,但这就是它的工作原理)。 (在您的dmesg
输出中,挂载选项有问题。您可以检查/etc/fstab
)
如果你想要禁用任何服务,最好了解是否有其他服务未将此服务用作依赖项。你可以在 virtualbox.service 示例中进行检查:
systemctl list-dependencies virtualbox.service --reverse
输出显示没有任何相关的服务文件。因此,如果我不需要它,我可以停止并禁用它,而不会出现任何复杂情况:
sudo systemctl disable virtualbox.service --now
如果您发现系统中某些服务需要很长时间才能加载,请首先了解它到底在做什么,然后尝试修复相关的配置文件,或者如果您不需要它,请禁用它。