19.12.2015 18:50, Thomas Schmitt пишет:
> Hi,
> 
> [resending to bug-grub after rejection message]
> 
> Alexander E. Patrakov wrote:
>>> http://www.syslinux.org/wiki/index.php/Isohybrid
> 
> This is quite independent of what GRUB2 does.
> (SYSLINUX and GRUB2 meet at BIOS and EFI, of course.)
> 
> 
> Andrei Borzenkov wrote:
>> Command from syslinux wiki does not create protective MBR; it creates
>> normal DOS partition of type 17 and marks it as bootable.
> 
> Especially the SYSLINUX partition is mountable as it starts
> at the begin of the ISO filesystem. :))
> 
> 
> Looking at the source code of libisofs, i'd expect that the
> bootability flag is set if GRUB2 related option
>   --protective-msdos-label
> is given. At least Vladimir Serbinenko prescribed it to me.
> 
>   https://lists.gnu.org/archive/html/grub-devel/2010-04/msg00014.html
> 
>>>> 3) Put 0x80 (for bootable partition), 0, 2, 0 (C/H/S of the start), 0xcd
>>>> (partition type), [3 bytes of C/H/S end], 0x01, 0x00, 0x00, 0x00 (LBA
>>>> start in little endian), [LBA end in little endian] at 446-462
> 
> This might be a regression which nobody noticed yet.
> 

There is no regression. This is exactly what happens for pure BIOS
platform (i386-pc). If we (additionally) want EFI, it will create PMBR +
GPT instead.

> 
>> Marking protective partition as bootable may trigger bugs on EFI, so I
>> am not sure if it is reallu desirable.
> 
> If the needs for BIOS and EFI are incompatible, then we should
> add an option to xorriso which controls this.
> Probably an alternative to --protective-msdos-label.
> But first i must find out what's going on inside libisofs.
> 

That makes little sense. You already can tell grub-mkresecue to use only
i386-pc platform which will automatically create normal MBR with single
active partition. As I understand Alexander would like to have single
ISO suitable for every platform.

UEFI spec is highly ambiguous how to interpret 0x80 flag in MBR:

"BootIndicator ... Set to 0x00 to indicate a non-bootable partition. If
set to any value other than 0x00 the behavior of this flag on non-UEFI
systems is undefined. Must be ignored by UEFI implementations"

EDK2 interprets it "[Partition] must be ignored". This can just as well
be interpreted as "[BootIndicator] must be ignored" which I find better
suiting overall context. Anyone has good contacts to ask for clarification?

But of course as we have precedent we cannot simply go and set it now.


_______________________________________________
Bug-grub mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-grub

Reply via email to