I've spent some time on google, but I don't want a quick fix here, I want to understand what is going on. I have a desktop which boots to Windows in 3 seconds, and booted older ubuntu's in under 10, but with Kubuntu 15.10 it takes over 40 seconds to boot, and the KDE login is also very slow.
$ systemd-analyze critical-chain
graphical.target @9.961s
└─multi-user.target @9.961s
└─getty.target @9.961s
└─getty@tty1.service @9.961s
└─rc-local.service @9.925s +3ms
└─network-online.target @9.924s
└─network.target @1.000s
└─wpa_supplicant.service @1.772s +338ms
└─basic.target @797ms
└─sockets.target @797ms
└─avahi-daemon.socket @797ms
└─sysinit.target @795ms
└─networking.service @740ms +54ms
└─apparmor.service @416ms +323ms
└─local-fs.target @409ms
└─local-fs-pre.target @409ms
└─systemd-remount-fs.service @401ms +6ms
└─system.slice @128ms
└─-.slice @128ms
So it's clear that the delay is due to waiting to get online. Many questions here:
Why would a desktop version of Ubuntu block my boot and log in waiting for a network connection? Can these services not start after I booted? I want to understand why anyone thinks this is reasonable at all. Even for a server, wouldn't it be better to let it boot and then start up services which require network?
How can I debug which services are blocking on network? I tried
$ systemctl show network-online.target
and it just shows me that the online target is wanted bykerneloops.service
. Why would that service need internet to start? Also, this seems like something that would come standard on install. I imagine I can disable that one, but I don't want to spend the next 3 hours disabling and rebooting one by one. Is there a better way to see all of the services which are blocking onnetwork-online.target
? Can I defer these services to start post-login instead of disabling them?This is the least important to me, but on a desktop with an ethernet connection to a router, why is it taking nearly 10 seconds to get online?