Black Screen after upgrading to 43

Since you managed to use systemd-nspawn, I guess you managed to mount your
system. Assuming it is mounted on /mnt/sysroot you can simply use chroot instead
of systemd-nspawn, as follows:

  • sudo chroot /mnt/sysroot dnf distro-sync --refresh --releasever=43

Note that --releasever is a valid option. You made perhaps a typo.

Finally, you may need more options to distro-sync. See:

1 Like

Sorry I’m late here but to answer some of the questions, systemd-nspawn i like chroot but in my opinion, simpler. You essentially mount your system with it and from inside that container you can do everything you need including updating the system, and retrieving logs.

I should have left a couple commands to help ease the situation, but I was in a hurry.

So an example command would have been something like this :

systemd-nspawn -Dbn /path/to-the/luks-xxxx-xx

this would have
D pointed to your luks container so you can enter password and decrypt it

b booted the container

n gave you networking access.

then once inside the container, you could have done anything you needed.

2 Likes

I won’t say it’s wasn’t a spelling error :sweat_smile:, but it’s just extra confusing that the options aren’t listed under dnf distro-sync --help or on the dnf documentation page. I’m also still very much a novice with Linux, so I’m also not sure what I’m even looking at more than half the time; the options are probably just listed somewhere else maybe.

1 Like

I had to look up what the luks stuff was. I eventually found two luks files under /dev/mapper/ on the Live USB. It seemed to line up since there are two encrypted drives in the machine, but there was an error regarding a missing bn directory:

I’ve been decrypting the drives through the Gnome file explorer, so I’m not sure they need to be decrypted. I can run systemd-nspawn -bn and systemd-nspawn -n without issue.

Even with that, when I try to run sudo dnf distro-sync --refresh --releasever=43, it seems that either the network still isn’t getting passed through or I don’t have permissions.

systemd-nspawn -n then sudo dnf distro-sync --refresh --releasever=43:

systemd-nspawn -bn then sudo dnf distro-sync --refresh --releasever=43:

Yes. --releasever is a global option, documented thus in dnf --help and in man dnf. You can nevertheless use it after distro-sync.

In addition, you may use the (bash) completion with dnf.
Typing for example:

  • dnf distro-sync --rel<TAB>

will complete as:

  • dnf distro-sync --releasever=

Sorry, I don’t know enough systemd-nspawn to help with it :frowning:

You may thus try the following as root in a terminal.

I’m unsure if the system is mounted under:

  • /run/media/liveuser/fedora

or:

  • /run/media/liveuser/fedora/root

Verify that with

  • ls /run/media/liveuser/fedora/etc/fedora-release

or:

  • ls /run/media/liveuser/fedora/root/etc/fedora-release

One of those should give no errors.

Then finish setting up /run/media/liveuser/fedora/ or
/run/media/liveuser/fedora/root. Add /root after fedora in the latter
case in the following.

for i in dev proc run sys tmp; do
  mount --bind /$i /run/media/liveuser/fedora/$i
done

Then use chroot to start the dnf distro-sync:

chroot /run/media/liveuser/fedora dnf distro-sync --refresh --releasever=43

or better:

chroot /run/media/liveuser/fedora dnf distro-sync \
  --refresh --releasever=43 \
  --allowerasing \
  --skip-broken \
  --setopt=protected_packages= 

3 Likes

It looks like that got the upgrade to run properly this time!

Thank you, everyone, for helping me troubleshoot!

3 Likes