当您在“dmesg”输出中找到可能的原因时,如何加快 Ubuntu 的启动时间?

Lji*_*vic 16 boot 16.04

更新到 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
Run Code Online (Sandbox Code Playgroud)

我假设“dmesg”输出左侧的数字是时间。如果我在这一步失去了 9 秒,我可以做些什么来改善启动时间?

Edi*_*diD 28

Systemd负责启动过程。您可以通过禁用某些服务或尝试修复您的配置来改进它。要检查服务在启动过程中花费的时间,您可以运行:

systemd-analyze blame
Run Code Online (Sandbox Code Playgroud)

对于引导程序的图形详细视图,您可以生成绘图图像:

systemd-analyze plot > bootimage
Run Code Online (Sandbox Code Playgroud)

现在您可以使用例如打开bootimageeog或不同的图像查看器并检查服务花费了多少时间(例如系统在启动时停止的位置)。它看起来像这样:

在此处输入图片说明

正如我们所看到的,例如virtualbox.service需要62 毫秒,这非常好,但安装我的 F3 磁盘并没有那么快。我可以考虑禁用自动挂载(这是一个不好的例子,因为 systemd 以并行模式启动服务并且该服务不会减慢启动时间,没有任何依赖,但这就是它的工作原理)。(在您的dmesg输出中,挂载选项有问题。您可以签入/etc/fstab

如果您想禁用任何服务,最好知道是否有其他服务未将此服务用作依赖项。您可以在例如 virtualbox.service 示例上检查它:

systemctl list-dependencies virtualbox.service --reverse 
Run Code Online (Sandbox Code Playgroud)

输出显示没有任何相关的服务文件。因此,如果我不需要它,我可以停止并禁用它而不会出现任何并发症:

sudo systemctl disable virtualbox.service --now
Run Code Online (Sandbox Code Playgroud)

如果您发现系统中的某些服务需要很长时间才能加载,请首先阅读它到底在做什么,然后尝试修复相关的配置文件,或者如果您不需要它,请将其禁用。