New Fedora 36 installation does not reboot

I’m installing Fedora 36 on a computer with two disks (SSD and HDD).
In the previous installation I had Silverblue 35, root on SSD and home on HDD.
Now I tried installing regular Fedora on SSD disk, leaving the HDD as it is (I’ll change it later).
I chose the automatic partition using all the SSD disk.
The installation completes successfully, then I click on restart button of the installation screen, but the system does not reboot. So I reboot from the system menu, but then I see a black screen and nothing happens.

Another important difference is that I previously used legacy boot and now I chose UEFI boot for this new installation.
In the BIOS menu I gave priority to the UEFI boot.

Changing the Boot Mode from Auto to UEFI only and rebooting now causes a message error to appear:

error 1962 no operating system found. press any key to repeat boot sequence

I see it’s a typical Lenovo message error.

IIUC, the boot is not working at all so I cannot even get access to GRUB, right?

Please check this too:
https://docs.fedoraproject.org/en-US/quick-docs/bootloading-with-grub2/#installing-grub-2-configuration-on-uefi-system

I’ve started the live CD and tried to regenerate the GRUB menu as suggested here. But the chroot command is failing:

$ sudo chroot /mnt/root
chroot: failed to run command '/bin/bash': No such file or directory

I don’t have much time left to work on this. I’ll try again tomorrow.
Meanwhile, any suggestion is welcome.

I have the suspect that the disk id I see in /mnt/root/boot/EFI/fedora/grub.cfg is not the right one.

Do not edit that file.
The uuid seen there is the one for the partition mounted at /boot (in your chroot mounted at /mnt/root/boot) and you can verify if it is correct with the command lsblk -o KNAME,UUID,FSTYPE,MOUNTPOINT . Changing the column names will allow you to see different data, but the UUID in /boot/efi/EFI/fedora/grub.cfg should be the one shown for /boot in the output of the lsblk command. Make certain you are comparing it to the UUID for the partition you have mounted at /mnt/root/boot in your chroot environment.

Just as an aside, and to make certain your chroot environment is correct.
when mounting the installed partitions for the chroot you should be already running as root and the partitions should be
/ mounted at /mnt/root
/boot mounted at /mnt/root/boot
/boot/efi mounted at /mnt/root/boot/efi
then the other required partitions should be mounted using these commands
mount -o bind /proc /mnt/root/proc
mount -o bind /sys /mnt/root/sys
mount -o bind /dev /mnt/root/dev
mount -o bind /run /mnt/root/run

then finally you enter the chroot environment (still as root) with chroot /mnt/root

On my system you can see that the partition shown in /boot/efi/EFI/fedora/grub.cfg is the same as for /boot

# cat /boot/efi/EFI/fedora/grub.cfg
search --no-floppy --fs-uuid --set=dev bd615d70-0ff8-42b6-ab38-0a7429b9bb91
set prefix=($dev)/grub2
export $prefix
configfile $prefix/grub.cfg


# lsblk -o KNAME,UUID,FSTYPE,MOUNTPOINT 
KNAME UUID                                   FSTYPE            MOUNTPOINT
sda                                                            
sda1  EE19-DB5A                              vfat              /boot/efi
sda2  bd615d70-0ff8-42b6-ab38-0a7429b9bb91   ext4              /boot
sda3  vpxzk7-tpzx-FEdH-wJzd-qZEQ-yEJ7-nuiPkc LVM2_member       
sr0                                                            
zram0                                                          [SWAP]
dm-0  3468ef28-f391-4b94-811e-894daaa5b791   ext4              /
dm-1  b2028601-424c-43ca-8f0b-3e6fe4dfa51c   ext4              /home

When I did the mount, I blindly followed the docs mentioned above, which says that default partitioning uses sda1 for boot and sda2 for the root. I see now that mine is different, as the root is in sda3:

  • sda1 is vfat, 600M, EFI System. Mountpoint should be /boot/efi
  • sda2 is 1G and ext4. Mountpoint should be /boot
  • sda3 is btrfs, 231G. Mountpoint should be /

If I run that lsblk command I can’t see any mountpoint. Does it mean that there’s a bug in Fedora installer? If it’s true, I guess I should install again and use the manual partition.

Now let’s try to mount the device. As root I did:

mkdir -p /mnt/root/boot/efi
mount /dev/sda3 /mnt   # the docs say to mount the / in /mnt instead of /mnt/root and it makes sense to me
mount /dev/sda1 /mnt/root/boot/efi
mount /dev/sda2 /mnt/root/boot
mount -o bind /proc /mnt/root/proc
mount -o bind /sys /mnt/root/sys
mount -o bind /dev /mnt/root/dev
mount -o bind /run /mnt/root/run
chroot /mnt/root

Inside the chroot /boot/efi is empty.

Anyway, I don’t understand where I’m going. I’ll try to reinstall using the manual partitioning.

When I rerun the installation and choose the manual partition (blivet-gui), I see there’s no mountpoint defined. So I added the mountpoints.

Every time I have to reinstall Fedora I have to fight with the installer partitioning. It’s not usable at all. I cannot go on with the installation.

All the fedora dual boot tutorials suggest that you use windows to shrink the ntfs partition and leave enough available unallocated space for the install. Then do the install using automatic partitioning in that available space.

When installing as the only OS on the machine they also suggest using the automatic installer.

What do you actually get when you run the lsblk -o KNAME,UUID,FSTYPE,MOUNTPOINT command I suggested?
We cannot read your screen and cannot read your mind so it is impossible for us to give you educated suggestions unless you show us the details!!

It also would be helpful if you were to post the content of /etc/fstab from the installed OS.

1 Like

Sorry, I appreciate your help but I’m under pressure because it’s the computer I use at work and I must solve this asap.

I’ll post the content of /etc/fstab tomorrow when I’m back at work.

I took a picture of the screen, see below. As there’s no mountpoint for sda, I launched that command before mounting sda. After mounting it in /mnt I remember I could also see the correct mountpoints.

Here’s the content of /etc/fstab. It seems correct… can you see any error?

Thank you for the full update.

It looks like we may need to do a bit of tweaking to get everything in sync so it boots properly.
First we need boot from live USB then do the fix.
Once booted these steps (done in a terminal as root) should mount the file systems properly for access.

mount -t btrfs -o subvol=root,compress=zstd:1 UUID=ad72810e-eccc-4cf3-92d8-12f870cb80a4 /mnt
mount UUID=e949070a-a71a-4d93-89a8-79013228e8d7 /mnt/boot
mount -t vfat -o umask=0077,shortname=winnt UUID=1527-5059 /mnt/boot/efi
mount -t btrfs -o subvol=home00,compress=zstd:1 UUID=ad72810e-eccc-4cf3-92d8-12f870cb80a4 /mnt/home

Once all those are mounted then the following mounts need to be done to prep for the chroot

mount -o bind /proc /mnt/proc
mount -o bind /sys /mnt/sys
mount -o bind /run /mnt/run
mount -o bind /dev /mnt/dev

Now you can do the chroot. chroot /mnt
Then the following will hopefully fix the boot problems.

dnf upgrade --refresh
dnf distro-sync
grub2-mkconfig -o /boot/grub2/grub.cfg
dracut --force

If any step in the process above fails then stop and fix that before you continue.

If everything completes properly now is the time to exit from the chroot and reboot so you can see if it works as intended

Everything worked without errors except dnf distro-sync; adding the --skip-broken option doesn’t help. Can I ignore it and continue? Here’s the screenshot:

If I run dnf distro-sync --allowerasing, it will install 5 packages (new kernel), remove 2 (sssd-idp and python3-gobject-base-noarch, from @updates-testing repository) and downgrade 325 packages.

I’m in a hurry. I think I’ll go this way.

I’ve now logged in the live browser, no more screenshots :smile:

grub2-mkconfig seems correct:

[root@localhost-live /]# grub2-mkconfig -o /boot/grub2/grub.cfg 
Generating grub configuration file ...
grub2-probe: error: cannot find a GRUB drive for /dev/sde1.  Check your device.map.
grub2-probe: error: cannot find a GRUB drive for /dev/sde3.  Check your device.map.
Adding boot menu entry for UEFI Firmware Settings ...
done

and dracut --force does not print any output.

So far so good. Let’s reboot and I’ll let you know if it works.

No, same problem. I’m discouraged.

I don’t know if installing Fedora 35 and then upgrading could be a workaround. I’m not sure it’s a Fedora 36 bug. Probably the installer doesn’t work well if there are multiple disks?

Eventually I repeated the installation on my desktop PC, but this time I booted the USB as legacy instead of UEFI. I can now boot into Fedora 36.

Don’t know what it might have gone wrong. Maybe a BIOS firmware issue?
I happened to reinstall successfully Fedora 35 (6 months ago) on my laptop as UEFI on a previous legacy installation.