Show
Ignore:
Timestamp:
08/24/11 22:37:28 (9 months ago)
Author:
H. Peter Anvin <hpa@…>
Children:
dadc0999025959b1bb99846cf576ca8e10a15c72
Parents:
c210e571f61eeb898fadbb6f47d4a2c82e5bfbfd
git-author:
Matthew Garrett <mjg59@srcf.ucam.org> / 2011-08-11T19:58:09Z+0100
git-committer:
H. Peter Anvin <hpa@linux.intel.com> / 2011-08-24T15:37:28Z-0700
Message:

isohybrid: Generate GPT and Mac bootable images

EFI systems typically don't support booting off ISO 9660 filesystems,
even if written to USB sticks. This patch adds support for generating a
GPT that covers the stick as well, with an additional partition entry
pointing purely at the secondary El Torito image. When burned to CD the
secondary El Torito will be used as an EFI boot image, and when written
to a USB stick the GPT partition will be found and may be booted from.

However, some earlier EFI Macs don't support booting from El Torito
images via EFI. To cater for them this also supports generating an Apple
partition table, allowing a third El Torito image in HFS+ format to be
made available to the firmware. This requires padding the MBR images
slightly in order to leave space for the Apple header, but should have
no functional impact.

Sadly, this breaks the workaround for Acer BIOSes (magic xor
instruction) when Mac support is enabled via -m... not much that can
be done about that.

Signed-off-by: Matthew Garrett <mjg@…>
Signed-off-by: H. Peter Anvin <hpa@…>

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • mbr/isohdpfx.S

    rd0f275 r2c3a24  
    6666        .globl  _start 
    6767_start: 
     68        .byte   0x33, 0xed      /* xorw %bp, %bp */ 
     69        nop 
     70        nop 
     71        nop 
     72        nop 
     73        nop 
     74        nop 
     75        nop 
     76        nop 
     77        nop 
     78        nop 
     79        nop 
     80        nop 
     81        nop 
     82        nop 
     83        nop 
     84        nop 
     85        nop 
     86        nop 
     87        nop 
     88        nop 
     89        nop 
     90        nop 
     91        nop 
     92        nop 
     93        nop 
     94        nop 
     95        nop 
     96        nop 
     97        nop 
     98        nop 
    6899        .byte   0x33, 0xed      /* xorw %bp, %bp */ 
    69100        cli