System won't boot after update from RL8.9 to RL8.10

Last week, I used dnf to update my RL8.9 system to RL8.10.

The update seemed to run OK with no problems reported but after the update completed and I rebooted, the system failed to boot with the error message

[  OK  ] Reached target Switch Root.
         Starting Switch Root...
[  !!  ] Failed to execute /sbin/init
[!!!!!!] Failed to execute fallback shell, freezing.

The same error occurred whether I booted with the latest kernel or the previous ones.

After much investigation and searching, I discovered after booting from a USB drive and starting a repair mode shell, the symlink for lib64 to /usr/lib64 that should be in the root directory had disappeared. I recreated this link and everything returned to normal.

I have no explanation as to why the link disappeared but maybe if anyone else has the same problem this post will save them some time & worry.

Cheers

Hello, I also met the same problem, how did you solve it, can you tell me more details

Hi,

I can’t give line by line instructions since they will depend on the exact configuration of your system but these are the general steps I followed.

  1. Download the Rocky Linux 8.10 full DVD iso and use to make a bootable USB drive.
  2. Boot the broken system from the USB stick and choose the ‘Troubleshooting’ option
  3. On the Troubleshooting screen choose the ‘Rescue a Rocky Linux system’ option
  4. When the ‘Rescue’ screen options appear, choose option 3 to ‘Skip to a shell’
  5. When you get a shell, use the fdisk -l & blkid commands to locate the root partition of the installation
  6. Create a new directory (I used /RL8root) to use to mount your system’s root partition
  7. Mount the root partition with the command
    mount /dev/sdxx /RL8root
  8. cd into the /RL8root directory and run the command ls -al. This is the output I got

dr-xr-xr-x. 21 root root 4096 Aug 10 2022 .
dr-xr-xr-x. 21 root root 4096 Aug 10 2022 …
-rw-r–r-- 1 root root 0 Aug 10 2022 .autorelabel
lrwxrwxrwx. 1 root root 7 Oct 11 2021 bin → usr/bin
dr-xr-xr-x. 6 root root 4096 Jun 10 11:34 boot
drwxr-xr-x 20 root root 3160 Jun 11 10:14 dev
drwxr-xr-x. 167 root root 12288 Jun 11 10:14 etc
drwxr-xr-x. 2 root root 6 Oct 11 2021 home
lrwxrwxrwx. 1 root root 7 Oct 11 2021 lib → usr/lib
drwxr-xr-x. 2 root root 6 May 4 2022 media
drwxr-xr-x. 2 root root 6 Oct 11 2021 mnt
drwxr-xr-x. 6 root root 94 Jun 10 11:39 opt
dr-xr-xr-x 231 root root 0 Jun 11 10:14 proc
dr-xr-x—. 26 root root 4096 Jun 11 10:15 root
drwxr-xr-x 51 root root 1480 Jun 11 10:15 run
lrwxrwxrwx. 1 root root 8 Oct 11 2021 sbin → usr/sbin
drwxr-xr-x. 2 root root 6 Oct 11 2021 srv
dr-xr-xr-x 13 root root 0 Jun 11 10:14 sys
drwxrwxrwt. 17 root root 4096 Jun 11 10:15 tmp
drwxr-xr-x. 13 root root 158 May 4 2022 usr
drwxr-xr-x. 21 root root 4096 May 4 2022 var

  1. As you can seee, the lib symlink is present but the lib64 one is missing

  2. Recreate the lib64 symlink by executing this command from the /RL8root directory

    ln -s usr/lib64 lib64

  3. Run ls -al again in the /RL8root directory to check that both the lib & lib64 links are now present.

  4. Shut down the system, remove ethe USB drive and reboot. Hopefully everything will now work.

Good luck