Fedora 33 upgrade - broken system after 35 hours

I decided to upgrade to 33 once it came out. Had to remove jfx version 8 as it was conflicting to 11. Then I thought it will be a smooth sail. But after a couple of hours, hit the 64% mark and the system was stuck at the point for 30+ hours without progress. I decided to abort (i know it is not good - but without any visual feedback on what is happening and waiting for 30+ hours, was not sure there was an endless cycle of trying to get some packages and failing). Now my system is not usable. Is there a way to repair this or copy my files and start afresh?

Thanks

1 Like

You should be able to access your files from a Live session.

In theory, you can try to fix your installation using chroot, or running DNF from a Fedora 33 Live session with the --installroot option.

See also: Resolving post-upgrade issues

I have the same problem on my laptop Dell Vostro. After reboot I did get in non graphical mode a command prompt. After using “startx” some applications like firefox do come up but gnome complains and stops. What can I type at the command prompt to continue the broken upgrade ?

Follow the second link in the post above.

How did you upgrade? Using Gnome Software or dnf system-upgrade? Did you know you can hit ESC while the new packages are being installed and you can watch each step?

1 Like

Upgraded from the Gnome prompt, After the initial portion of download (that is when it complained about jfx), the download was complete and the system rebooted to do the upgrade. I could not see any individual package. I tried on the gnome screen while upgrade was going on and the only thing that was shown was that a system upgrade was in progress for 25 mins and there is no time limit for it. Not individual packages being installed. This is where it was stuck - at 64% mark for 30+ hours.

I am going to see if I can recover the installation with a live session. Worst case, will move files and start a fresh installation.

Thanks - I will try to see if I can recover using this method of installing the new root. Note sure if I will see all the packages installed in this method. Will update once I tried this approach

1 Like

I did give
rpm --rebuilddb
and
dnf distro-sync --allowerasing --skip-broken
The result is some Fedora 33 updates and then :
error :
the operation would result in removing the following protected packages : dnf, gnome-shell, systemd, systemd-udev
What to do ?

Boot into Fedora 33 Live session and mount your root.
Then you can perform something like this:

sudo sed -i -e "s/^/#/" /mnt/root/etc/dnf/protected.d/*
sudo dnf --allowerasing --installroot=/mnt/root distro-sync

If the issue persists, you can remove the conflicting packages with RPM:

sudo rpm --root /mnt/root -e dnf

But make sure to install them later with DNF.

2 Likes

I did what you suggested and had to add --releasever 33 to the dnf command.
The result was that rpm fusions for fedora 33 where given followed by
Dependencies resolved
Nothing to do
Complete.

1 Like

Perform old packages clean-up using the same method with --installroot or with chroot.

those suggestions did not work , so I did a complete reinstall and then my screen size was maximum 1024 …

1 Like

Mine too – two laptops running Fedora 32 were upgraded to 33. One using the GUI, and one using dnf… Neither one booted afterwards. I had done all the cleanup etc mentioned in the docs before and after. This was the worst upgrade I have seen since maybe Fedora 17.

I tried to fix the installation. After trying to do a dnf upgrade with installroot and releasever 33 options, the upgrade went through but it removed almost all the packages. So, the best option I would say is to use fresh installation instead of upgrade particularly if you have a couple of thousand packages installed.

It should be possible to save the list of installed packages beforehand and restore it afterwards:

# Save
sudo dnf --installroot=/mnt/root repoquery --queryformat=%{NAME} \
    --installed > dnf.installed

 # Restore
sudo dnf --installroot=/mnt/root --skip-broken install $(cat dnf.installed)
1 Like