bug-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bug #46716] Protective MBR partition is not marked as bootable


From: Andrei Borzenkov
Subject: Re: [bug #46716] Protective MBR partition is not marked as bootable
Date: Sat, 19 Dec 2015 19:47:27 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0

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.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]