You can find out really easily with one simple command:
Which will output something like:
Startup finished in 9.708s (firmware) + 3.692s (loader) + 46.909s (kernel) + 13.614s (userspace) = 1min 13.924s graphical.target reached after 12.063s in userspace
So as you can see, my laptop takes ages to boot. But why is that? We can find out who’s to blame with:
Which will output a list of things and how long it took to start them, with the longest at the top.
Something like this:
11.796s systemd-cryptsetup@sdcard_crypt.service 7.629s NetworkManager-wait-online.service 1.755s docker.service 1.556s dev-mapper-mint\x2d\x2dvg\x2droot.device 1.459s snapd.service 1.101s vboxdrv.service 1.090s dev-loop3.device 1.051s vmware.service 918ms tlp.service 824ms vmware-USBArbitrator.service 512ms udisks2.service 473ms networkd-dispatcher.service 464ms systemd-journal-flush.service 363ms ufw.service 361ms ubuntu-system-adjustments.service 351ms systemd-logind.service 327ms NetworkManager.service 319ms ModemManager.service 312ms upower.service 310ms dev-loop1.device 302ms dev-loop0.device 244ms loadcpufreq.service 224ms networking.service
As you can see, in my case what’s taking up the most time is to unlock my encrypted SD card. The next thing being the Network Manager. And so forth. So now at least I know what to look at to try to speed boot times up.
For example, I could try to not auto-unlock and mount my SD card at boot and only mount it manually when I need it.
I hope this gave you a hint on how to troubleshoot long boot times!