如何在 Ubuntu 16.04 上加速真正缓慢的启动?

Pac*_*ood 44 boot dmesg 16.04

我试图了解我需要做什么来加速我的 Ubuntu 16.04 启动。我已经运行 dmesg 并在此处保存了输出。大约 10 秒后,一切似乎都出错了。

小智 46

您可以尝试找出 systemd 花费最多时间的内容

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

  • 是的,然后呢?我必须停止运行某些服务吗? (38认同)

小智 29

编辑 /etc/fstab 的交换空间的UUID(以匹配 的输出sudo blkid)就像一个魅力!

注意:之后,如果/etc/crypttab文件中有任何交换条目,您应该通过 UUID 或路径(即 UUID=something 或 /path/to/swap)更改其第二个参数以匹配您的交换空间。

在我的 SSD 上,启动时间从 2 分钟缩短到不到 10 秒。

问题是,当这个问题开始时,我只是从 14.04 到 16.04 进行了正常升级,没有搞乱分区。显然,升级过程存在一些问题。

  • 查看 https://askubuntu.com/questions/38533/system-not-mounting-swap-partition#answer-38557 答案以获取有关如何操作的更多信息。它将我的启动时间从 100 多秒减少到 15 秒。 (2认同)

小智 12

升级后我遇到了类似的启动时间较长的问题。

出了什么问题? 我删除了我的交换空间,所以我的 /etc/fstab 文件和新文件系统有冲突。Boot loader 等了将近 1m 30s 才找到它。

我是如何解决问题的 运行 sudo blkid

打开您的 /etc/fstab 文件并将 uuid 的匹配与您拥有的分区进行比较。如果不匹配,请更改并重新启动。


Mir*_*rek 10

这是一个变通解决方案,但这显着减少了我的启动时间(从 1 分 24 秒到 16 秒)。

sudo vim /etc/systemd/system.conf
Run Code Online (Sandbox Code Playgroud)

取消对这两个参数的注释并设置所需的超时时间:

DefaultTimeoutStartSec=10s
DefaultTimeoutStopSec=10s
Run Code Online (Sandbox Code Playgroud)

注意:请优化这些值以满足您的硬件需求 ~ 5 - 60 秒。

如所讨论的在这里这些参数配置用于开始和单位停止,以及默认时间为单位的自动重新启动之间睡眠默认超时,作为配置的单位中TimeoutStartSec=TimeoutStopSec=RestartSec=(对于服务,请参见systemd.service(5),用于有关每单位设置的详细信息)。

对于非服务单位,DefaultTimeoutStartSec=设置默认值TimeoutSec= valueDefaultTimeoutStartSec=DefaultTimeoutStopSec=默认为 90 秒。DefaultRestartSec=默认为 100 毫秒。


编辑 - 更详细:

我分析了启动顺序systemd-analyze plot > sequence.svg,显示服务无法在我新升级的操作系统上启动。有三个 - 一个是配置错误的sendmail守护进程,然后是powerd.serviceNetworkManager-wait-online.service。由于完全禁用 NetworkManager 服务不是一个好主意,我只是让它在 10 秒后超时并全局应用此规则。

  • 您能否详细说明该解决方案如何将您的启动时间缩短了 68 秒? (2认同)
  • 10秒太低了。它可以使启动进入恢复模式。我用的是30s (2认同)

Chr*_*ris 1

这可能与文件系统问题有关。您可能需要检查此链接以查看修复文件系统是否可以缩短启动时间: https: //help.ubuntu.com/community/FilesystemTroubleshooting