I am trying to install Fedora 40 on my computer, but am getting the message that a 1M bios_grub partition needs to be created using GPT.
I have checked my current environment (I have several versions of Linux already installed, including Fedora 39); parted shows that there already is a 1M bios_grub partition in place, and that the partition table type is GPT.
Here is the output from parted:
root@jini:~# parted /dev/sdc print
Model: ATA ST4000NM0033-9ZM (scsi)
Disk /dev/sdc: 4001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: pmbr_boot
I ran ‘lsblk -f /dev/sdc’, ‘fdisk -l /dev/sdc’ and ‘parted /dev/sdc print’. The output is shown below. As can be seen, lsblk -f returned nothing for /dev/sdc1, but both fdisk and parted did.
I’ve done a little more investigating; the actual error message I’m seeing indicates that the installation is specifically requesting that a 1M partition be created on /dev/sda (which happens to be part of an LVM at present).
I’ve been working on rearranging the order in which the disks are being seen by the boot process, but it’s not been an easy task as the order changes randomly during boot.
I haven’t exactly solved my problem, but at least I have a better idea about what is occurring during the initial disk partitioning process.
FYI, I’ve been installing previous Fedora releases on slice 11 for quite some time now with no problem. It’s only with Fedora 40 with which I’ve been having issues.
Let me know if this clears up at least part of the issue, or whether you still want more information.
I’m guessing that /dev/sda is the disk that has the EFI partition on it?
You are right the order that hardware is detected and assigned names is not deterministic on modern hardware. Use of UUID for disks and MAC for ethernet cards it used to find specific items.
Actually, I don’t have any EFI partition; my configuration is strictly non-UEFI.
One would think that, given the move to using UUIDs for disk identification, Fedora would use that method, instead of /dev/sdX, for installing their operating systems (they do, once the OS has been installed).
They cannot do that before the installation. The UUIDs used are file system UUIDs and that requires the partition be created and the file system formatted before the UUID is available. Partitions and file systems are created during installation.
It is up to the user to be careful and properly identify the drive (sda, sdb, etc.) they intend to install on before actually beginning the installation.
This is not important, and the order changes, so the effort is wasted.
Even with legacy boot, the drive the user selects to boot from must be selected for installation. The Bios Boot partition is expected to be the first thing on the drive selected so whichever drive you select must already have a gpt partition table and must have the first 1M free so the system can create that partition if not already there. If the space is not available then the system can create it in one of 2 ways.
Wipe the disk, create a new partition table and allocate the boot partition.
or
The user must free the first 1M of the drive so the install can continue.
Since the system will not do a legacy installation without that boot partition (which is used to enlarge the MBR already reserved on all drives) and the partition must be at the beginning of the drive, then it is up to the user to manage how it is created. It also is up to the user to select which drive to install on (the default is normally the first drive which has available unallocated space.)