I have been checking some systemd-analyze outputs and I actually don't have a crucial problem with my boot time but just wondering whether I can decrease it further. I'd like to mention that I'm using an SSD and Ubuntu is my only OS.
systemd-analyze Startup finished in 5.450s (firmware) + 565ms (loader) + 2.632s (kernel) + 10.086s (userspace) = 18.734s graphical.target reached after 10.071s in userspace
systemd-analyze blame 6.607s NetworkManager-wait-online.service 5.660s fwupd.service 5.042s bolt.service 4.134s plymouth-quit-wait.service 1.579s dev-sda2.device 1.552s systemd-backlight@backlight:intel_backlight.service 1.367s plymouth-read-write.service 1.211s snapd.service 903ms systemd-logind.service 572ms systemd-journald.service 555ms dev-loop9.device 523ms dev-loop6.device 515ms man-db.service 499ms dev-loop8.device 478ms dev-loop5.device 472ms dev-loop13.device 448ms dev-loop7.device 441ms dev-loop11.device 438ms dev-loop10.device 432ms dev-loop12.device 415ms udisks2.service 406ms dev-loop14.device 319ms snap-gnome\x2d3\x2d28\x2d1804-71.mount
graphical.target @10.071s └─multi-user.target @10.071s └─kerneloops.service @10.042s +27ms └─network-online.target @10.032s └─NetworkManager-wait-online.service @3.422s +6.607s └─NetworkManager.service @3.224s +186ms └─dbus.service @3.218s └─basic.target @3.211s └─sockets.target @3.211s └─snapd.socket @3.208s +2ms └─sysinit.target @3.205s └─systemd-backlight@backlight:intel_backlight.service @1.468s +1.552s └─system-systemd\x2dbacklight.slice @1.467s └─system.slice @212ms └─-.slice @212ms
If this system is not a server in a network, you can start by cutting down on time used by
NetworkManager-wait-online.service
, to do this please disable the service like so:If it shows up again after reboot, you can follow the above command with this:
Pleas, try this first and check if your boot time improves before carrying on with any further steps. This alone, sometimes, reduces your boot time by a great deal.
To roll back the above changes anytime, please run:
Then follow it by:
What is
systemd-networkd-wait-online.service
?The purpose of the
NetworkManager-wait-online.service
is to wait for the network to come online before proceeding with the boot process.This is needed in case of for example servers that rely on network resources as part of the boot process ( eg. mounting remote drives ) or in the case of workstations that rely on the network to boot correctly ( eg. Thin Clients ).
Otherwise, desktop users can disable
NetworkManager-wait-online.service
and network will connect normally after boot has finished minus the unneeded wait time.It is safe to disable in this case.
This line with 1.5 seconds is a bug:
On my system without bug it is only 1 millisecond:
More tips (including NetworkManager-wait-online.service) can be found here: