How do I improve the boot speed

I have no idea which services are essential for the system, but fedora takes longer than i think it should to boot. The thing that tells me this is the NetworkManager wait online service. I have disabled it, but what other things dont i know about that are slowing my system down?

When i run systemd-analyze blame this are the services that take seconds to start:

5.591s NetworkManager-wait-online.service 
3.298s dev-tpm0.device 
3.298s sys-devices-platform-INTC6000:00-tpm-tpm0.device 
3.248s sys-module-fuse.device 
3.133s sys-devices-platform-serial8250-serial8250:0-serial8250:0.1-tty-ttyS1.device 
3.133s dev-ttyS1.device 
3.133s sys-devices-platform-serial8250-serial8250:0-serial8250:0.3-tty-ttyS3.device 
3.133s dev-ttyS3.device 
3.129s sys-devices-platform-serial8250-serial8250:0-serial8250:0.2-tty-ttyS2.device 
3.129s dev-ttyS2.device 
3.128s sys-devices-platform-serial8250-serial8250:0-serial8250:0.0-tty-ttyS0.device 
3.128s dev-ttyS0.device 
3.123s dev-tpmrm0.device 
3.123s sys-devices-platform-INTC6000:00-tpmrm-tpmrm0.device 
3.106s sys-module-configfs.device 
2.503s dev-disk-by\\x2dpartlabel-EFI\\x5cx20System\\x5cx20Partition.device 
2.503s sys-devices-pci0000:00-0000:00:0e.0-pci10000:e0-10000:e0:06.0-10000:e1:00.0-nvme-nvme0-nvme0n1-nvme0n1> 
2.503s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart1.device 
2.503s dev-disk-by\\x2ddiskseq-1\\x2dpart1.device 
2.503s dev-disk-by\\x2ddesignator-esp.device 
2.503s dev-disk-by\\x2did-nvme\\x2dSKHynix_HFM512GD3HX015N_FYB6N018513106C5Y\\x2dpart1.device 
2.503s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart-by\\x2duuid-D4A7\\x> 
2.503s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart-by\\x2dpartuuid-29> 
2.503s dev-disk-by\\x2did-nvme\\x2dSKHynix_HFM512GD3HX015N_FYB6N018513106C5Y_1\\x2dpart1.device 
2.503s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart-by\\x2dpartnum-1.d> 
2.503s dev-nvme0n1p1.device 
2.503s dev-disk-by\\x2dpartuuid-29593c6e\\x2d818c\\x2d459b\\x2db289\\x2d1b83268c9f77.device 
2.503s dev-disk-by\\x2did-nvme\\x2dnvme.1c5c\\x2d465942364e303138353133313036433559\\x2d534b48796e69785f48464d353> 
2.503s dev-disk-by\\x2duuid-D4A7\\x2d5DE0.device 
2.503s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart-by\\x2dpartlabel-E> 
2.496s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart-by\\x2dpartuuid-3f> 
2.496s dev-disk-by\\x2duuid-565AE6B25AE68DD5.device 
2.496s dev-disk-by\\x2did-nvme\\x2dnvme.1c5c\\x2d465942364e303138353133313036433559\\x2d534b48796e69785f48464d353> 
2.496s dev-disk-by\\x2ddiskseq-1\\x2dpart4.device 
2.496s dev-disk-by\\x2did-nvme\\x2dSKHynix_HFM512GD3HX015N_FYB6N018513106C5Y\\x2dpart4.device 
2.496s dev-disk-by\\x2did-nvme\\x2dSKHynix_HFM512GD3HX015N_FYB6N018513106C5Y_1\\x2dpart4.device 
2.496s dev-disk-by\\x2dpartuuid-3f27fd3b\\x2d1acd\\x2d4040\\x2d9401\\x2d544dc930cf6c.device 
2.496s sys-devices-pci0000:00-0000:00:0e.0-pci10000:e0-10000:e0:06.0-10000:e1:00.0-nvme-nvme0-nvme0n1-nvme0n1> 
2.496s dev-nvme0n1p4.device 
2.496s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart4.device 
2.496s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart-by\\x2dpartnum-4.d> 
2.496s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart-by\\x2duuid-565AE6> 
2.495s dev-nvme0n1p2.device 
2.495s dev-disk-by\\x2did-nvme\\x2dSKHynix_HFM512GD3HX015N_FYB6N018513106C5Y_1\\x2dpart2.device 
2.495s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart2.device 
2.495s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart-by\\x2dpartuuid-ee> 
2.495s dev-disk-by\\x2dpartuuid-eee22221\\x2d1fa4\\x2d4bb6\\x2da700\\x2df5a72a939b53.device 
2.495s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart-by\\x2dpartnum-2.d> 
2.495s dev-disk-by\\x2dpartlabel-Microsoft\\x5cx20reserved\\x5cx20partition.device 
2.495s dev-disk-by\\x2did-nvme\\x2dnvme.1c5c\\x2d465942364e303138353133313036433559\\x2d534b48796e69785f48464d353> 
2.495s sys-devices-pci0000:00-0000:00:0e.0-pci10000:e0-10000:e0:06.0-10000:e1:00.0-nvme-nvme0-nvme0n1-nvme0n1> 
2.495s dev-disk-by\\x2did-nvme\\x2dSKHynix_HFM512GD3HX015N_FYB6N018513106C5Y\\x2dpart2.device 
2.495s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart-by\\x2dpartlabel-M> 
2.495s dev-disk-by\\x2ddiskseq-1\\x2dpart2.device 
2.494s sys-devices-pci0000:00-0000:00:0e.0-pci10000:e0-10000:e0:06.0-10000:e1:00.0-nvme-nvme0-nvme0n1-nvme0n1> 
2.494s dev-disk-by\\x2did-nvme\\x2dSKHynix_HFM512GD3HX015N_FYB6N018513106C5Y\\x2dpart5.device 
2.494s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart5.device 
2.494s dev-disk-by\\x2did-nvme\\x2dnvme.1c5c\\x2d465942364e303138353133313036433559\\x2d534b48796e69785f48464d353> 
2.494s dev-disk-by\\x2ddiskseq-1\\x2dpart5.device 
2.494s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart-by\\x2dpartnum-5.d> 
2.494s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart-by\\x2dpartuuid-21> 
2.494s dev-disk-by\\x2dpartuuid-2180d8e2\\x2d6f9a\\x2d434b\\x2d94dd\\x2d9e6132317a31.device 
2.494s dev-disk-by\\x2did-nvme\\x2dSKHynix_HFM512GD3HX015N_FYB6N018513106C5Y_1\\x2dpart5.device 
2.494s dev-disk-by\\x2duuid-aa829604\\x2d85e1\\x2d4138\\x2da434\\x2d13de40c6b726.device 
2.494s dev-nvme0n1p5.device 
2.494s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart-by\\x2duuid-aa8296> 
2.493s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart-by\\x2dlabel-fedor> 
2.493s dev-disk-by\\x2duuid-7698c412\\x2dd889\\x2d4351\\x2db170\\x2dcd4ecaf87180.device 
2.493s dev-disk-by\\x2did-nvme\\x2dnvme.1c5c\\x2d465942364e303138353133313036433559\\x2d534b48796e69785f48464d353> 
2.493s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart-by\\x2dpartuuid-03> 
2.493s dev-disk-by\\x2did-nvme\\x2dSKHynix_HFM512GD3HX015N_FYB6N018513106C5Y\\x2dpart6.device 
2.493s sys-devices-pci0000:00-0000:00:0e.0-pci10000:e0-10000:e0:06.0-10000:e1:00.0-nvme-nvme0-nvme0n1-nvme0n1> 
2.493s dev-disk-by\\x2did-nvme\\x2dSKHynix_HFM512GD3HX015N_FYB6N018513106C5Y_1\\x2dpart6.device 
2.493s dev-disk-by\\x2dpartuuid-03df241d\\x2d6b0d\\x2d4a15\\x2d9b1c\\x2d5976435b8527.device 
2.493s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart-by\\x2duuid-7698c4> 
2.493s dev-disk-by\\x2dlabel-fedora.device 
2.493s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart-by\\x2dpartnum-6.d> 
2.493s dev-nvme0n1p6.device 
2.493s dev-disk-by\\x2ddiskseq-1\\x2dpart6.device 
2.493s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart6.device 
2.488s sys-devices-pci0000:00-0000:00:0e.0-pci10000:e0-10000:e0:06.0-10000:e1:00.0-nvme-nvme0-nvme0n1.device 
2.488s dev-disk-by\\x2did-nvme\\x2dSKHynix_HFM512GD3HX015N_FYB6N018513106C5Y_1.device 
2.488s dev-disk-by\\x2did-nvme\\x2dSKHynix_HFM512GD3HX015N_FYB6N018513106C5Y.device 
2.488s dev-disk-by\\x2did-nvme\\x2dnvme.1c5c\\x2d465942364e303138353133313036433559\\x2d534b48796e69785f48464d353> 
2.488s dev-nvme0n1.device 
2.488s dev-disk-by\\x2ddiskseq-1.device 
2.488s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1.device 
2.487s dev-disk-by\\x2did-nvme\\x2dnvme.1c5c\\x2d465942364e303138353133313036433559\\x2d534b48796e69785f48464d353> 
2.487s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart-by\\x2dlabel-Windo> 
2.487s sys-devices-pci0000:00-0000:00:0e.0-pci10000:e0-10000:e0:06.0-10000:e1:00.0-nvme-nvme0-nvme0n1-nvme0n1> 
2.487s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart-by\\x2dpartlabel-B> 
2.487s dev-disk-by\\x2dpartlabel-Basic\\x5cx20data\\x5cx20partition.device 
2.487s dev-nvme0n1p3.device 
2.487s dev-disk-by\\x2dlabel-Windows.device 
2.487s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart-by\\x2duuid-1AD4A7> 
2.487s dev-disk-by\\x2did-nvme\\x2dSKHynix_HFM512GD3HX015N_FYB6N018513106C5Y_1\\x2dpart3.device 
2.487s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart3.device 
2.487s dev-disk-by\\x2did-nvme\\x2dSKHynix_HFM512GD3HX015N_FYB6N018513106C5Y\\x2dpart3.device 
2.487s dev-disk-by\\x2dpartuuid-fa1fd4b3\\x2d89e0\\x2d4390\\x2d883d\\x2d6fc5f083f40a.device 
2.487s dev-disk-by\\x2duuid-1AD4A7D6D4A7B285.device 
2.487s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart-by\\x2dpartnum-3.d> 
2.487s dev-disk-by\\x2ddiskseq-1\\x2dpart3.device 
2.487s dev-disk-by\\x2dpath-pci\\x2d0000:00:0e.0\\x2dpci\\x2d10000:e1:00.0\\x2dnvme\\x2d1\\x2dpart-by\\x2dpartuuid-fa> 
1.835s dracut-initqueue.service 
1.405s sys-devices-pci0000:00-0000:00:02.0-drm-card1-card1\\x2deDP\\x2d1-intel_backlight.device 
1.231s systemd-backlight@backlight:intel_backlight.service

What does systemd-analyze report as the summary?
What does systemd-analyze critical-chain report?

please post as preformatted text using the </> button.

Systemd starts multiple services in parallel. You have lots of services all taking the same time, but the clock time will be much less than the sum of the individual times, so as suggested, you need analyze-blame.

First, you should re-enable the NetworkManager-wait-online.service.
It’s job is to ensure the network is online before services that require it are started, so having that disabled makes it harder to tell what the delay really is, and may cause other issues.

sudo systemctl enable NetworkManager-wait-online.service

Once that’s re-enabled, reboot and run systemd-analyze plot >bootup.svg which is much more useful than “blame”… You open the .svg file it outputs and zoom in to see specifically what’s taking the most time. (xdg-open bootup.svg) With that information you can make better decisions.

Recently I’ve noticed people seem to be waiting for the iscsi.service which takes time if there are no iscsi devices to be found, so it’s usually safe to disable that. (It’s often installed and activated with with Virtualization tools), If you don’t need it, you can safely run
sudo systemctl mask iscsi.service which might actually help.

Not directly related, but this seems a good opportunity to credit @gordonmessmer from whom I paraphrase the above, and who’s writing was instrumental in bringing geeks like myself to Fedora. Thanks!

how much time are we talking about here? on what specs do you run fedora?

i rarely boot my system, because i use sleep all the time, when i boot is because i had updates and that is like 2 reboots and is hard to measure time, for example, i have a old 4 cores ryzen, 8 gbs of ddr4 and a old pciexpress 3 nvme on a m.2 slot and it takes like 25 ish seconds to reach the login screen, what specs do you have and what do you call slow?

The size of the initramfs image is something to consider.[1] I’m not sure if systemd-analyze measures that.


  1. https://hansdegoede.dreamwidth.org/28291.html ↩︎

Thanks @lozenge . I endorse those recommendations.

News regarding iscsi: I’ve looked at the iscsi service before and I think we actually got rid of the delay it caused for a few releases, but some users are seeing it again. I’ve been looking at it again, and submitted a new PR last week. I’m suggesting that we revert my last fix and do something simpler and more reliable. Still waiting for feedback, but I’m optimistic.

The systemd plot is sometimes hard to understand at first, but modern systemd versions include really helpful information about exactly what is blocking each service. It’s kind of the only analyze tool that produces useful output. I’ve never seen “blame” or “critical-chain” include “iscsi.service” and that’s consistently the thing that affects Fedora users. I’d be happy to look at yours, @hsanm09 if you share it.