Ubuntu 16.04慢速启动(apt-daily.service)


41

我的启动太慢了,我不知道为什么。

$ systemd-analyze 
Startup finished in 10.975s (kernel) + 49.732s (userspace) = 1min 708ms
$ systemd-analyze blame 
         34.971s apt-daily.service
         20.590s snapd.refresh.service
         17.113s grub-common.service
         16.033s apport.service
         16.027s networking.service
         15.894s ondemand.service
         15.860s irqbalance.service
         15.655s speech-dispatcher.service
         11.695s ModemManager.service
          9.772s accounts-daemon.service
          8.626s NetworkManager-wait-online.service
          8.058s systemd-logind.service
          8.053s bluetooth.service
          7.944s gpu-manager.service
          7.896s alsa-restore.service
          7.892s pppd-dns.service
          7.882s rsyslog.service
          7.860s avahi-daemon.service
          7.844s dev-sda1.device
          7.842s systemd-user-sessions.service
          7.648s lightdm.service
          7.610s teamviewerd.service
          6.445s apparmor.service

另外,在启动过程中,我看到一条消息,内容如下:

device descriptor read/all, error -62
ata1 softreset failed (device not ready) #most of the times
error loading journal #(sometimes)
Test WP failed, assume Write Enabled
Asking for cache data failed     #most of the times
Assuming drive cache: write through

apt-daily.service会使启动速度最慢。关于如何解决这个问题的任何想法?

我有Ubuntu MATE 16.04。


我有同样的问题。您可以在该链接中看到,我剥离了很多内容以加快速度,以至于引起问题。我改用了Ubuntu Gnome 14.04,从那以后,它的运行速度很快,从启动时的55秒缩短为20秒。切换到SSD后,它现在可以在大约4秒钟内启动。
多里安

这曾经发生在我身上,但是当您首次安装Ubuntu时,您可以选择分割硬盘。这对于RAM较低的人也非常有用。还有其他方法。看这个链接。help.ubuntu.com/stable/ubuntu-help/disk-partitions.html我的硬盘驱动器有1 GB的启动空间,并且运行速度非常快。希望有帮助!
schung

Answers:


43

这是Debian错误#844453apt-daily.service不应在引导过程中运行,而应在以后的某个时间运行。

解决方法是,sudo systemctl edit apt-daily.timer将以下文本粘贴到编辑器窗口中:

# apt-daily timer configuration override
[Timer]
OnBootSec=15min
OnUnitActiveSec=1d
AccuracySec=1h
RandomizedDelaySec=30min

这会更改“计时器”,该计时器会apt-daily.service在启动后15分钟到45分钟之间的随机时间触发一次,此后每天一次。请参阅systemd.timer联机帮助页以获取有关此含义的其他解释((,不是很好)。


这是否适用于该systemd-analyze blame命令列出的任何服务?
Muhammad Gelbana '17

@MuhammadGelbana我不明白你想问我什么。
zwol

1
我问我是否可以运行类似的命令,例如,sudo systemctl edit snapd.refresh.timer 并添加您在答案中发布的相同文本,以覆盖snapd.refresh的计时器配置?
穆罕默德·盖尔巴纳

是的,它应该适用于实际上是“计时器”的任何东西,但不适用于启动时启动的任意服务。
zwol

3

另一个答案针对问题中的第二段文字。

对我来说,要apt-daily.service永久解决,Ubuntu论坛上的这篇文章似乎奏效了。

发出这些命令作为如何编辑的示例 /etc/systemd/system.conf

sudo cp /etc/systemd/system.conf /etc/systemd/system.conf.bak 

这将为安全提供支持。

gksudo gedit /etc/systemd/system.conf 

查找并更改以下两行:

#DefaultTimeoutStartSec=90s
#DefaultTimeoutStopSec=90s 

我的现在看起来像这样:

DefaultTimeoutStartSec=10s 
DefaultTimeoutStopSec=10s 

一年以来一直这样做,而且还算不错。

删除导致#行无效的前导,并更改其值。


1
我无法使用此超时启动,因此不得不从恢复模式中注释掉这行内容。
Yuri Gor

1
@YuriGor,我很抱歉,自16.10起发生了一些变化

1
我的是18.04。我记不清楚了,但这是与sda有关的问题,因此我的硬盘可能需要很长时间才能挂载或进行其他任何操作。
Yuri Gor

2

如果是台式机,请打开并断开连接,然后重新连接所有HDD电缆(包括MB)。

失败的话,听起来您的硬盘正在超时。立即备份所有数据。

刻录Ubuntu的Live Live网络安装以适合您的系统,引导至Try Ubuntu。然后运行Gparted:默认情况下,它检查HDD读取错误。如果您拥有所有数据的备份,也许其他人可能会建议您。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.