[syslinux] How to recognize an MBR suitable for isohybrid --mac ?

Thomas Schmitt scdbackup at gmx.net
Fri Jun 22 06:02:45 PDT 2012


Hi,

i have implemented in xorriso the equivalents of isohybrid.c options --mac
and --uefi. There remains the question how to ensure that the submitted
MBR is prepared for the 32 byte mock-up of an APM Block0.

I see in git of may 2012 that all mbr/isohdp[fp]x*.bin begin by
   33  ed  90  90  90  90  90  90  90  90  90  90  90  90  90  90
   90  90  90  90  90  90  90  90  90  90  90  90  90  90  90  90

Can i safely refuse on MBR templates which do not bear that signature
without inflicting injustice on future isohybrid MBRs ?

(I will also accept the substituted bytes of isohybrid --mac: 
   45  52  08  00  00  00  90  90  00  00  00  00  00  00  00  00
   00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
)

----------------------------------------------------------------------

I tested my implementation by re-packing Fedora-LiveCD.iso and booting
it by PC-BIOS from CD and USB stick.

I do not have hardware that would boot via APM or GPT (i.e. Mac from
CD and USB stick or hard disk). A test would be needed, because xorriso
deviates from several suspicious address computations of isohybrid.c,
and from its GPT partition names.
For the reasons of deviation see
  http://www.syslinux.org/archives/2012-May/017518.html


So just in case somebody is curious, here is a description how to prepare
test media on Linux. It will need about 1.4 GB of disk space.

- Download ISO (650 MB) and the most recent xorriso development snapshot
  (2.2 MB) into an elsewise disposable directory
    wget http://mjg59.fedorapeople.org/Fedora-LiveCD.iso
    wget http://www.gnu.org/software/xorriso/xorriso-1.2.3.tar.gz

- Build xorriso
    tar xzf xorriso-1.2.3.tar.gz
    ( cd xorriso-1.2.3 && ./configure && make )

- Copy the MBR out of Fedora-LiveCD.iso
    dd if=Fedora-LiveCD.iso bs=512 count=1 of=Fedora-LiveCD.mbr

- Mount Fedora-LiveCD.iso
    mount -o loop Fedora-LiveCD.iso /mnt

- Create new ISO image FedoraRepack.iso

    xorriso-1.2.3/xorriso/xorriso -as mkisofs \
      -o FedoraRepack.iso -no-pad \
      -isohybrid-mbr Fedora-LiveCD.mbr \
      -c /isolinux/boot.cat \
      -b /isolinux/isolinux.bin -no-emul-boot \
         -boot-load-size 4 -boot-info-table \
      -eltorito-alt-boot \
      -e /isolinux/efiboot.img -no-emul-boot \
         -isohybrid-gpt-basdat -isohybrid-apm-hfsplus \
      -eltorito-alt-boot \
      -e /isolinux/macboot.img -no-emul-boot \
         -isohybrid-gpt-hfsplus -isohybrid-apm-hfsplus \
      -V Fedora-LiveCD \
      /mnt

  (My apologies for using the unchanged Volume Id "Fedora-LiveCD".
   The booting system wants to see this in its /dev/disk/by-label/.)

- Put on CD, DVD or BD:
    xorriso-1.2.3/xorriso/xorriso -as cdrecord \
      dev=/dev/sr0 -v blank=as_needed -eject FedoraRepack.iso

- Put on USB stick (Caution: Make sure not to overwrite your hard disk !):
    dd if=FedoraRepack.iso bs=4M of=/dev/sdc ; sync

----------------------------------------------------------------------

Have a nice day :)

Thomas




More information about the Syslinux mailing list