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

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

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

systemd-analyze blame 

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

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

在我的SSD上,启动从2分钟下降到不到10秒。

问题是,当这个问题开始时,我刚刚从14.04升级到16.04正常升级,没有乱码。 显然,升级过程存在一些问题。

这是一种解决方案,但这大大缩短了我的启动时间(从1分24秒到16秒)。

 sudo vim /etc/systemd/system.conf 

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

 DefaultTimeoutStartSec=10s DefaultTimeoutStopSec=10s 

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

如此处所述,这些参数配置单元启动和停止的默认超时,以及自动重启单元之间的默认hibernate时间,如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秒后超时并全局应用此规则。

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

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

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

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

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

我遇到了类似的问题:我在SSD上运行Ubuntu 16.04。 我使用闪存驱动器作为交换分区。 驱动器意外被轻微移动,启动时间超过3分钟。 我把它正确地放了回来,现在一切都很好。 如果您尝试使用smartctl或fsck且文件系统正常,请尝试删除闪存驱动器(或其他外围设备?)并查看其运行情况。 祝好运!

根据你的pastebin输出,我发现了一些事情:

EXT4-fs (sda5): re-mounted

您可能希望查看此卷并查看该驱动器的智能数据 。

 [ 31.022220] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 45.720952] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 45.761548] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready 

如果您的连接不支持,您可以尝试在网络连接上禁用IPV6 。

关注user536489的提示:

系统分析责任

检查是否有一个服务需要很长时间才能启动并设置较低的超时:

sudo vim /lib/systemd/system/networking.service

TimeoutStartSec更改为10s 。 手册页状态以秒为单位获取无单位值,或以“5分20秒”为单位的时间跨度值。 传递“无穷大”以禁用超时逻辑。