Fedora slow boot

My Fedora 38 takes way too long to boot and in general to start programs when booted. I note that I have a dual boot with windows. Below the output of systemd-analyze, systemd-analyze blame | head and systemd-analyze critical-chain. Thank you in advance!

$ systemd-analyze
Startup finished in 3.566s (firmware) + 4.052s (loader) + 1.251s (kernel) + 5.535s (initrd) + 1min 17.237s (userspace) = 1min 31.642s 
graphical.target reached after 1min 17.176s in userspace.
$ systemd-analyze blame | head
30.273s plymouth-quit-wait.service
23.615s firewalld.service
19.802s dev-disk-by\x2dpartuuid-8b3fb463\x2de99b\x2d47ba\x2db4ad\x2d6794c3044067.device
19.802s dev-disk-by\x2dpath-pci\x2d0000:00:17.0\x2data\x2d1.0\x2dpart4.device
19.802s dev-disk-by\x2did-wwn\x2d0x5000c500b20a9b00\x2dpart4.device
19.802s dev-disk-by\x2did-ata\x2dST1000LM035\x2d1RK172_ZDEBAN5L\x2dpart4.device
19.802s dev-disk-by\x2ddiskseq-1\x2dpart4.device
19.802s dev-disk-by\x2duuid-f0caa9a0\x2d6e57\x2d4f80\x2d9748\x2d238b3b44d58f.device
19.802s dev-sda4.device
19.802s dev-disk-by\x2dpath-pci\x2d0000:00:17.0\x2data\x2d1\x2dpart4.device
$ systemd-analyze blame | head
30.273s plymouth-quit-wait.service
23.615s firewalld.service
19.802s dev-disk-by\x2dpartuuid-8b3fb463\x2de99b\x2d47ba\x2db4ad\x2d6794c3044067.device
19.802s dev-disk-by\x2dpath-pci\x2d0000:00:17.0\x2data\x2d1.0\x2dpart4.device
19.802s dev-disk-by\x2did-wwn\x2d0x5000c500b20a9b00\x2dpart4.device
19.802s dev-disk-by\x2did-ata\x2dST1000LM035\x2d1RK172_ZDEBAN5L\x2dpart4.device
19.802s dev-disk-by\x2ddiskseq-1\x2dpart4.device
19.802s dev-disk-by\x2duuid-f0caa9a0\x2d6e57\x2d4f80\x2d9748\x2d238b3b44d58f.device
19.802s dev-sda4.device
19.802s dev-disk-by\x2dpath-pci\x2d0000:00:17.0\x2data\x2d1\x2dpart4.device

$ 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 17.176s
└─multi-user.target @1min 17.175s
  └─plymouth-quit-wait.service @46.886s +30.273s
    └─systemd-user-sessions.service @46.793s +60ms
      └─remote-fs.target @46.773s
        └─remote-fs-pre.target @46.773s
          └─nfs-client.target @46.772s
            └─gssproxy.service @46.013s +756ms
              └─network.target @45.998s
                └─wpa_supplicant.service @47.242s +285ms
                  └─basic.target @20.095s
                    └─dbus-broker.service @19.629s +460ms
                      └─dbus.socket @19.546s
                        └─sysinit.target @19.515s
                          └─systemd-resolved.service @18.800s +714ms
                            └─systemd-tmpfiles-setup.service @18.461s +317ms
                              └─systemd-journal-flush.service @6.942s +11.506s
                                └─systemd-journald.service @6.680s +256ms
                                  └─systemd-journald-audit.socket @6.663s
                                    └─system.slice
                                      └─-.slice

To get a graphical representation of the startup process one may use something like systemd-analyze plot > startup.svg. One can ten view that as graphical with a browser using file:///path/to/startup.svg which shows the times involved in each step. Then one can easily see what takes the longest and delays the next steps.

From your critical chain it shows ~25 seconds just getting the basic.target started to allow the network config then an additional 64 seconds in the last 2 steps (plymouth-quit-wait.service – 30 sec & 17 sec each in multi-user.target & graphical.target). There are an additional 11.5 seconds in systemd-journal-flush.service.

Those steps alone seem to use ~2 minutes in booting.

Thanks for the reply. Below the output of systemd-analyze plot > startup.svg. I was tempted to try to disable plymouth-quit-wait.service, but I am not sure what the consequences of doing this are. Also my gut feeling is that this is only part of the problem.

I cannot read that image. Can you host the svg file somewhere?
Maybe use fpaste.

Plymouth is not the problem. It just manages the splash screen to hide messages. Personally i remove it as i like to see the kernel and systemd boot messages. It is optional.

Hi! Sorry the image gets converted to jpeg and then loses quality. Here is a link I created using fpaste as you suggested

https://paste.centos.org/view/9e3a5d30

if you download the txt file and convert it to svg with a txt to svg converter (TXT to SVG (Online & Free) — Convertio for instance) you can retrieve the svg (I checked it works).

Svg files are text files. All you have to do is open them in a browser.

I see the following points.
/dev/sdb seems to be SSD – SanDisk_SD9SN8W
/dev/sda seems to be HDD – ST1000LM035
The drives and other devices are not fully configured for 22 seconds.

firewalld takes 28 seconds before the network can begin to get configured.
Plymouth-quit-wait then takes another 30 seconds

I cannot precisely identify the cause, but those points stick out to me.