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.
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
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.
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.
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.
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.
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 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.