Thanks for the feedback, @mickee . In that case, all the 3 entries in your "/etc/fstab
" file (the entry for the EFI partition mounted on "/boot/efi
"; the entry for the "/
" mount point and the entry for the swap file) seem to be correct. So, I think that your "slow boot time" is not related to any mistakes in your "fstab".
By the way: what do you call a "long boot time"? In my case, in a 5 years old HP laptop (dual boot system of Windows 10 and Ubuntu MATE 22.04.1) that has a conventional HDD (Hard Disk Drive) of 5400 RPM (Rotations/Revolutions Per Minute) - so, it's not an SSD - the "boot time" is about 1 minute and 8 seconds:
$ systemd-analyze time
Startup finished in 6.781s (kernel) + 1min 1.308s (userspace) = 1min 8.089s
graphical.target reached after 1min 1.297s in userspace
In my case, it seems that about 30 seconds of the time is spent in things related to VirtualBox services:
$ systemd-analyze critical-chain
The time when unit became active or started is printed after the "@" character.
The time the unit took to start is printed after the "+" character.
graphical.target @1min 1.297s
└─multi-user.target @1min 1.297s
└─vboxballoonctrl-service.service @1min 1.262s +33ms
└─vboxdrv.service @30.978s +30.279s
└─basic.target @29.776s
└─sockets.target @29.775s
└─snapd.socket @29.767s +5ms
└─sysinit.target @29.558s
└─snapd.apparmor.service @27.608s +1.948s
└─apparmor.service @25.790s +1.816s
└─local-fs.target @25.786s
└─boot-efi.mount @25.668s +116ms
└─systemd-fsck@dev-disk-by\x2duuid-AECE\x2d6B1C.service @22.092s +3.552s
└─dev-disk-by\x2duuid-AECE\x2d6B1C.device @22.088s
Having said that, there are usually some "caveats" in these kinds of analysis using "systemd-analyze" commands:
https://www.freedesktop.org/software/systemd/man/systemd-analyze.html
From that "systemd-analyze" page:
" (...)
systemd-analyze critical-chain [UNIT
...]
This command prints a tree of the time-critical chain of units (for each of the specified *UNIT
*s or for the default target otherwise). The time after the unit is active or started is printed after the "@" character. The time the unit takes to start is printed after the "+" character. Note that the output might be misleading as the initialization of services might depend on socket activation and because of the parallel execution of units. Also, similarly to the blame command, this only takes into account the time units spent in "activating
" state, and hence does not cover units that never went through an "activating
" state (such as device units that transition directly from "inactive
" to "active
"). Moreover it does not show information on jobs (and in particular not jobs that timed out). (...)"