Le 08/06/2021 à 21:45, Michael Hierweck a écrit :
today I experienced GRUB 2.02 was not able to boot successfully a QEMU
based virtual machine in BIOS mode from a GPT partitioned virtual disk
when the root partition (containing /boot) exceeds 2 TB even when a
there is a tiny bios_grub partition (ef02) exists at the beginning of
the disk.
I was dropped to the GRUB rescue shell but was not able to load any
modules: "attempt to read or write outside of disk 'hd0'".
You have a broken BIOS. Nothing in the BIOS interface limits the usable
size of a disk to 2 TiB.
After that I did some experiments. Reinstalled the system but assigned
only 1 TB to the root/swap partition. The system booted successfully.
After that I increased the partition to 4 TB and increased the
filesystem. GRUB was still able to boot.
Until you reinstall GRUB, the kernel or the initramfs in a location
beyond the BIOS limit.
I suppose the problem occurs when (after stage 1 and 1.5 have been
successfully loaded) parts of stage 2 (modules from /boot/grub...) have
to been loaded from disk sectors beyond the 2 TB limit.
GRUB 2 has no stage 1/1.5/2. It has a boot image which loads a core
image which loads files.
Can you confirm that not only the bios_grub partition but also
/boot/grub has to be located in the first 2 TB of the disk?
No. If the BIOS is broken, the whole /boot (including kernel and
initramfs, not only /boot/grub) must be located within the BIOS limit.
If the BIOS is not broken, /boot can be located anywhere.