Slow boot up after Fedora 38 install

I just installed Fedora 38 and have been noticing that it takes a longer than usual to get to the login screen (around 2 minutes).

Why is this and how to I speed it up?

I’m running this on an older laptop with ok specs I think but I’ve tried other Operating Systems that I think were more demanding and they were faster to finish the boot up.

My specs:
Kernel: 6.2.12-300.fc38.x86_64
GNOME 44
Cpu: Intel Pentium 3805U
RAM: 12gb
Storage: 256 SSD (SATA)

This is what shows after running systemd-analyze blame:
systemd-analyze blame

29.800s dev-ttyS16.device
29.800s sys-devices-platform-serial8250-tty-ttyS16.device
29.799s sys-devices-platform-serial8250-tty-ttyS21.device
29.799s dev-ttyS21.device
29.790s dev-ttyS17.device
29.790s sys-devices-platform-serial8250-tty-ttyS17.device
29.783s dev-ttyS23.device
29.783s sys-devices-platform-serial8250-tty-ttyS23.device
29.781s sys-devices-platform-serial8250-tty-ttyS18.device
29.781s dev-ttyS18.device
29.780s dev-ttyS19.device
29.780s sys-devices-platform-serial8250-tty-ttyS19.device
29.779s dev-ttyS14.device
29.779s sys-devices-platform-serial8250-tty-ttyS14.device
29.774s dev-ttyS22.device
29.774s sys-devices-platform-serial8250-tty-ttyS22.device
29.763s dev-disk-by\x2dpartuuid-1f4a8a1b\x2dfe08\x2d42d8\x2d9fd0\x2def95ccf22de>
29.763s dev-disk-by\x2dpath-pci\x2d0000:00:1f.2\x2data\x2d1\x2dpart1.device
29.763s dev-sda1.device
29.763s dev-disk-by\x2dpath-pci\x2d0000:00:1f.2\x2data\x2d1.0\x2dpart1.device
29.763s sys-devices-pci0000:00-0000:00:1f.2-ata1-host0-target0:0:0-0:0:0:0-bloc>
29.763s dev-disk-by\x2ddiskseq-1\x2dpart1.device
29.763s dev-disk-by\x2did-ata\x2dADATA_SX900_02A23102500300002001\x2dpart1.devi>
lines 1-23

FWIW, it looks similar to this report. They appear to be saying that the larger number of activated devices is expected and the times are not cumulative since the services are started in parallel. Still, 30 seconds seems excessive. My (slow) PC shows that service taking 10 seconds.

Thank you for linking that report. Upon further reading, I think this might be related to my bios trying a bunch of different drives (boot order?) instead of the main ssd ?
Though, I do have it set up for the drive that fedora 38 is on to boot first…

Then it might be the way I installed fedora (see pic below);

Partition 1 = BIOS boot , Size 1.0MB, device /dev/sda1
Partition 2 = Linux Filesystem, Size 1.1 GB — 744 MB free (30.7% full), Contents Ext4 (mounted at /boot), Device /dev/sda2
Partition 3 = Linux Filesystem, Size 255gb, Contents Brtfs (Mounted at Filesystem Root), Device /dev/sda3

It looks fine to me ?
I don’t know what the process posting in 'systemd-analyze blame" are.

The partitioning looks fine to me. I don’t believe that would cause things to run slowly even if it were incorrect. That is something that either works or it does not.

There are (many) other possibilities. Since you appear to have an ATA disk drive, maybe this one?

~~ Extremely slow disk access - #8 by computersavvy ~~

Nevermind, I read the wrong line from your last post. I see you said it is an SSD. In that case, maybe it is this “discard storm” problem that has been mentioned recently?

1 Like

one step back, what does the following show?

systemd-analyze
1 Like

systemd-analyze

Startup finished in 1.492s (kernel) + 28.665s (initrd) + 12.113s (userspace) = 42.271s
graphical.target reached after 12.085s in userspace.

I received a message on reddit mentioning "too many snaps"and to:

"Try to delete inactive with this script

'set -eu

snap refresh

LANG=C snap list --all | awk ‘/disabled/{print $1, $3}’ | while read snapname revision; do sudo snap remove “$snapname” --revision=“$revision” done’"


What exactly does this script do? As the process being posted don’t look like something relating to snap. (I could be wrong).

The script appears to be calling snap list --all to list all the installed snaps and feeding that list to a filter (awk ‘/disabled/{print $1, $3}’) then those filtered results to a loop (while read snapname revision). The loop then removes whatever snaps were supplied to it one-by-one with snap remove “$snapname” --revision=“$revision”. The script, as you’ve copied it here, appears to be a bit corrupted. There should be a semicolon (;) before done.

I ran that script and unfortunately not much happened ? (See below):

$ sudo set -eusnap refreshLANG=C snap list --all | awk ‘/disabled/{print $1, $3}’ | while read snapname revision; do sudo snap remove “$snapname” --revision=“$revision” ;done

sudo: set: command not found

All snaps up to date.

awk: cmd. line:1: ‘/disabled/{print

awk: cmd. line:1: ^ invalid char ‘�’ in expression

No snaps are installed yet. Try ‘snap install hello-world’.

How about if you run the following as two separate commands?

sudo snap refresh

and

sudo snap list --all | awk '/disabled/ {print $1, $3}' | while read snapname revision; do sudo snap remove "$snapname" --revision="$revision"; done

I get the following:

$ sudo snap refresh
All snaps up to date.
$ sudo snap list --all | awk ‘/disabled/ {print $1, $3}’ | while read snapname revision; do sudo snap remove “$snapname” --revision=“$revision”; done
No snaps are installed yet. Try ‘snap install hello-world’.

If no snaps are installed, then that probably isn’t the problem. :slightly_smiling_face:

That is 3 separate commands which is why in your post above they were given to you on 3 lines.
sudo set -eu
snap refresh
LANG=C snap list --all | awk ‘/disabled/{print $1, $3}’ | while read snapname revision; do sudo snap remove “$snapname” --revision=“$revision” ;done

systemd-analyze blame doesn’t tell much on its own. It shows startup times of units, but most of them should be running in parallel. The manual explains this in more detail.

You can generate a graph that shows the actual order and timing of units. Do a cold boot first (completely shut down, then boot the computer), then run this command:

systemd-analyze plot | tee plot.svg | fpaste

This will save the plot to a file plot.svg (which you can open in your image viewer or browser) and also upload it to the Fedora pastebin. Reply with the URL given.

That was very cool.
Here is the url link it provided;

https://paste.centos.org/view/8a7314d7

Ps, I noticed that is says “initrd” took around 30 seconds. Is that normal ?

Your entire startup took only slightly over 42 seconds. That does not seem super slow to me.

It seems that configuring /dev/sda and its partitions took about 30 seconds of that time required for initrd. What type device is sda? HDD or SSD?

I used to boot from a sata SSD and it took almost 2 minutes. I installed an M.2 nvme drive and it now takes about 15 seconds with no other changes.

The ~30s for initrd phase seems abnormal, I usually see it around 3s to 15s (and that includes other reports of slow boots). In particular the dracut-initqueue.service stands out to me.

Can you upload the journal as well? Hopefully there’s a clue in there.

journalctl -b | fpaste

Is the SSD shown in your earlier screenshot the only disk on this computer?

Any USB devices connected at boot other than mouse/keyboard? Could you try disconnecting them and see if it affects the boot time?

I have installed an older Sata SSD (ADATA XPG SX900 250gb).

Before this I had a HDD and a good amount/if not most Linux Distro’s boot up much faster than Fedora 38 with an ssd installed.

This laptop doesn’t support nvme .