Unable to upgrade from 43 to 44

I’ve got several machines here and on the first one, the 43 to 44 worked flawlessly. On my main desktop machine, however, I’m having some problems and I don’t know how to troubleshoot.

First, I’ve got a running machine with an NVidia card, using akmod to keep it updated. I’m following the usual upgrade path as documented here: Making sure you're not a bot!

I run sudo dnf upgrade --refresh and it reports that there is nothing to be done (because I’ve already done this several times). I reboot anyway, and then run sudo dnf system-upgrade download --releasever=44. This downloads 3421 packages successfully and then I run sudo dnf offline reboot. It reboots using kernel 7.0.9-105.fc43.x86_64 but does not seem to attempt to upgrade. I looked at dmesg and journalctl logs but didn’t notice any obvious problems. How can I troubleshoot this?

Update: I realized that it’s actually rebooting twice, so then I used sudo journalctl -b -1 and found these lines:

May 22 09:21:20 flash systemd\[1\]: Finished packagekit-offline-update.service - Update the operating system whilst offline.
May 22 09:21:20 flash fwupdoffline\[1552\]: /usr/libexec/fwupd/fwupdoffline: error while loading shared libraries: libcbor.so.0.11: cannot open shared object file: No such file or directory
May 22 09:21:20 flash systemd\[1\]: fwupd-offline-update.service: Main process exited, code=exited, status=127/n/a
May 22 09:21:20 flash systemd\[1\]: fwupd-offline-update.service: Failed with result 'exit-code'.
May 22 09:21:20 flash systemd\[1\]: Failed to start fwupd-offline-update.service - Updates device firmware whilst offline.
May 22 09:21:20 flash audit\[1\]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=fwupd-offline-update comm="systemd" exe="/usr/lib/systemd/sy>
May 22 09:21:20 flash systemd\[1\]: Rebooting: unit fwupd-offline-update.service failed

My machine has /usr/lib64/libcbor.so.0.12 but not 0.11. Curiously, sudo dnf provides /usr/libexec/fwupd/fwupdoffline* reports “No matches found” but the file is definitely there.

Also, when I try sudo dnf install fwupd, it tells me that Package “fwupd-2.0.20-1.fc43.x86_64” is already installed.

I don’t know whether this is a real clue or not and I’m not sure how to further troubleshoot.

It sounds like your upgrade is starting, but gets derailed by fwupd-offline-update.service crashing immediately when it tries to load libcbor.so.0.11 and the system only has libcbor.so.0.12; systemd then reboots your machine and, since the upgrade never completed, it boots back into Fedora 43.

I think you have two paths forward and I’m not sure one is “better” than the other; i.e., either mask fwupd-offline-update.service so it can’t run during the update or try fixing the library mismatch directly:

# Option 1

sudo dnf system-upgrade clean
sudo systemctl mask fwupd-offline-update.service
sudo dnf system-upgrade download --releasever=44
sudo dnf offline reboot
sudo systemctl unmask fwupd-offline-update.service
sudo fwupdmgr refresh
# Option 2

sudo dnf system-upgrade clean
sudo dnf distro-sync --releasever=43
sudo dnf system-upgrade download --releasever=44 --allowerasing
sudo dnf offline reboot

Regardless of which path you opt for, you’ll want to confirm the nvidia module rebuilt against the current kernel with sudo akmods --force. Although the akmod system usually handles that automatically on first boot, it’s worth verifying with modinfo nvidia | grep vermagic to confirm the version matches uname -r.

I tried your Option 2 first, since it seemed to be the most minimal change, but had the same symptom. So then I tried Option 1 and masked the fwupd-offline-update.service and now it appears to be updating as expected. (I’m posting from a different machine.)

When it finishes, I’ll post the result, but it looks very promising. Thanks! Now I wonder if there’s a way to figure out what put that fwupd-offline-update.service there in the first place since dnf claims to have no knowledge of it.

That seem to have done it. I still need to set the graphics resolution and try to coax it to recognize the second monitor, but it’s running F44. Thanks!

Honestly, I don’t know enough about fwupd to comment intelligently why it did that; maybe it’s a runtime-generated file? I really don’t know, but maybe it’s buried somewhere in the documentation for fwupd.

Glad to hear you got things going! If you need any help with the resolution or external monitor piece, just start a new thread. :wink: