Ubuntu 16.04 slow boot (apt-daily.service)

My boot is horribly slow, and I don't know why.

$ 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

Also, during boot-up, I see a message that says something like:

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 slows the boot the most. Any idea on how to tackle that?

I have Ubuntu MATE 16.04.


Solution 1:

This is Debian bug #844453. apt-daily.service shouldn't be run during boot, but only some time afterward.

As a workaround, do sudo systemctl edit apt-daily.timer and paste the following text into the editor window:

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

This changes the "timer" that triggers apt-daily.service to run at a random time between 15 min and 45 min after boot, and once a day thereafter. See the systemd.timer manpage for additional (not very well written, alas) explanation of what this means.

Solution 2:

The other answer addresses the second block of text in the question.

For me, to solve apt-daily.service taking forever, this Ubuntu Forums post seems to have worked.

issue these commands as an example of how to edit /etc/systemd/system.conf

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

That will make a back-up for safety.

gksudo gedit /etc/systemd/system.conf 

Look for and change these 2 lines:

#DefaultTimeoutStartSec=90s
#DefaultTimeoutStopSec=90s 

Mine now look like this:

DefaultTimeoutStartSec=10s 
DefaultTimeoutStopSec=10s 

Been doing that for year now and nothing bad has come of it.

Remove the leading #'s which disable the line, and change the value.

Solution 3:

If it's a desktop, open it and disconnect then reconnect All HDD cables including MB.

Failing that, it sounds like your HDD is timing out. BACKUP all data now.

Burn Live network install of Ubuntu to suite your system, boot to Try Ubuntu. Then run Gparted: by default it checks for HDD read errors. If you have a backup of all your data maybe someone else could advise.