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
