Fedora 30 failed to start switch root

Last week I upgraded my OS to 5.0.17-300.fc30.x86_64. Now, when I attempt to reboot my machine the boot process fails, and I get a message that states “Failed to start switch Root. See ‘systemctl status initrd-switch-root.service’ for details.” I have done several Google searches, but I cannot find any solution to the problem. Some of the pages that I have visited include:

  1. https://bugzilla.redhat.com/show_bug.cgi?id=1492208
  2. https://forums.fedoraforum.org/showthread.php?307391-Failed-to-start-switch-root

Any suggestions on how to resolve the issue will be welcomed.

Hello @jamcmrnichols! Welcome to the community! Please do take a few minutes to go over the introductory posts in #start-here when you have the time. They contain lots of useful information.

Are you able to select and boot a previous kernel version? GRUB menu should be hidden by default. To show the menu where you can select a previous kernel you have to press “ESC” at the early stages of the boot process.

1 Like

Yes, I am able to select a previous kernel version, but I also get dropped into an emergency shell after a few seconds. On my system I keep three kernel versions, and all three fail to boot up.

This is a symlink issue. The following commands should help
mount -o remount,rw /sysroot
cd /sysroot/usr/lib
ln -s os.release.d os-release.d
exit

1 Like

I’m having a similar issue,
But in my case I’m not redirect to the emergency shell. I got stuck on
Failed to start switch Root. See ‘systemctl status initrd-switch-root.service’
I change the runlevel and still not going through.

I used a fedora bootable USD to create the symlink you suggested @jakfrost
Though os.release.d file don’t exist in the folder, so the problem persists.

I would really appreciate some help, I’ve been doing a lot of work in this build of Fedora and it would be problematic to re-install

If you can boot from USB again, try removing this file ‘/usr/lib/variant’. It is a file no longer used by Fedora 30, but was for Fedora 29, and it is likely preventing you from starting the new kernel since it would point to the earlier version. Maybe don’t remove it but follow the suggstion of the work around first.
[EDIT] This is a DNF upgrade issue, specifically the preun script for removing the old F29. This link suggests a work around.
https://src.fedoraproject.org/rpms/fedora-release/pull-request/85

1 Like

None of the solutions that were suggested worked for me. I ended up booting of a LiveUSB, then copying my /home directory to a back-up disk and then re-installing Fedora. Once it was installed, then I copied over the files from my old home directory into the new. It was painful, but I got it done.

@jamcmrnichols, this is why I always put my /home on a separate partition. It makes reinstalling easy. I format root partition, ensure I don’t format my /home – but tell the installer to use it, of course – and I get a new clean install with all my data and all user’s settings in my /home.

Keeping /home on a separate partition really helps. Just something to consider for the future.

Sorry to hear that you had to go through that. Glad to know you resolved it though. As a cautionary habit, I have been using Borg Backup for my home dir and some of my /etc files as a “just in case something goes off the rails and I need to get my stuff back” solution. Since I use Silverblue I do have to exclude a number of areas of my home dir, I don’t want things like the flatpak applications complete stack that is installed in my .local/share dir to be backed up.

Thanks for the suggestions.
I couldn’t fix the ‘switch root’ issue, but I’ll definitely re-install Fedora keeping my home.