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

更新到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秒,我该怎么做才能改善启动时间?

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

 systemd-analyze blame 

有关引导过程的图形详细视图,您可以生成绘图图像:

 systemd-analyze plot > bootimage 

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

在此处输入图像描述

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

如果你想要禁用任何服务,最好知道其他东西是否没有使用此服务作为依赖项。 你可以在例如virtualbox.service上检查它:

 systemctl list-dependencies virtualbox.service --reverse 

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

 sudo systemctl disable virtualbox.service --now 

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