Colin, one has to boot with edd=on for this to be activated, as you say,
and it's presumably defaults to off for good reason, "This option is
experimental and is known to fail to boot on some obscure
configurations." says drivers/firmware/Kconfig.  However, I'd guess that
grub only makes use of the MBR's four-byte Windows NT signature at
offset 440 in the MBR which is published in
/sys/.../int13_dev80/mbr_signature.

Since reading the MBR is done in arch/x86/boot/edd.c:read_mbr() by using
INT 0x13 AX=0x201 (read legacy sector) it will work without doing any
EDD-specific stuff which may stop booting on "some obscure
configurations".  If query_edd() in the same file didn't avoid reading
the MBRs when (!do_edd && do_mbr) then the data could still be published
by /sys for grub to use.

This would allow EDD to not be done by default, avoiding boot problems
on some machines, but BIOS device 0x80's MBR's EDD ID would be available
to grub on all machines without the user first having to suffer
problems, then find out that the resolution is to add edd=on to the
kernel's parameters.

What do you think?  The current fix of insisting EDD be done before four
bytes of the MBR can be published seems limiting and allows more users
to be pestered by this issue in the future instead of them never knowing
it existed.

-- 
grub guessed BIOS disk order incorrectly
https://bugs.launchpad.net/bugs/8497
You received this bug notification because you are a member of Ubuntu
Bugs, which is a direct subscriber.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to