bug-xorriso
[Top][All Lists]
Advanced

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

Re: [Bug-xorriso] creating bootable .ISO with multiple methods


From: Thomas Schmitt
Subject: Re: [Bug-xorriso] creating bootable .ISO with multiple methods
Date: Thu, 09 Apr 2015 20:33:16 +0200

Hi,

>  - only use GRUB2, no SYSLINUX.  A bit arbitrary, but that's what I want.

SYSLINUX will not boot via EFI from ISO 9660 anyway.
(It's a bit unclear why, but all known EFI isohybrids
 have GRUB or GRUB2 in their EFI System Partitions.)

So why not use GRUB2 utility grub-mkrescue which combines
the expertise to set up GRUB2 and to operate xorriso ini
a matching way ?
Vladimir Serbinenko once asked for various xorriso features
and used them in the script (now becomming a C program).

In november 2013 i made an overview of the -as mkisofs
options which it uses (not all together, of course):

  --modification-date=2013030413525500
  -b boot/grub/i386-pc/eltorito.img
  -no-emul-boot -boot-load-size 4 -boot-info-table
  --grub2-boot-info
  --grub2-mbr ${pc_dir}/boot_hybrid.img
  --efi-boot efi.img -efi-boot-part --efi-boot-image
  -hfsplus -apm-block-size 2048
  -hfsplus-file-creator-type chrp tbxj /System/Library/CoreServices/.disk_label 
/System/Library/CoreServices/grub.elf=${iso9660_dir}/boot/grub/powerpc-ieee1275/core.elf
  /boot/grub/powerpc.elf=${iso9660_dir}/boot/grub/powerpc-ieee1275/core.elf
  -hfsplus-file-creator-type chrp tbxi /System/Library/CoreServices/BootX
  -hfs-bless-by p /System/Library/CoreServices
  -sysid PPC
  -hfs-bless-by i /System/Library/CoreServices/boot.efi
  -G $sysarea_img
  -B ,
  --grub2-sparc-core /boot/grub/sparc64-ieee1275/core.img
  /boot/grub/mips-arc/grub=${iso9660_dir}/boot/grub/mips-arc/core.img
  /boot/grub/mips-arc/sashARCS=${iso9660_dir}/boot/grub/mips-arc/core.img
  /boot/grub/mips-arc/sash=${iso9660_dir}/boot/grub/mips-arc/core.img
  -mips-boot /boot/grub/mips-arc/sashARCS
  -mips-boot /boot/grub/mips-arc/sash
  -mips-boot /boot/grub/mips-arc/grub
  -graft-points ${grub_mkisofs_arguments}
  --protective-msdos-label
  -o "${output_image}"
  -r
  --sort-weight 0 /
  --sort-weight 1 /boot ${source}


> The UEFI hard disk scenario was also straight forward using xorriso
> with the "efi_boot_part=--efi-boot-image" option.

grub-mkrescue does the same by

  -efi-boot-part --efi-boot-image

> With GPT in place, however, it was difficult to add support for the
> legacy BIOS hard disk boot.  

grub-mkrescue does it with newer xorriso by

  --grub2-mbr ${pc_dir}/boot_hybrid.img

which in xorriso generic commands would be

  -boot_image grub grub2_mbr=${pc_dir}/boot_hybrid.img

Older xorriso gets ordered to do

  -G $sysarea_img

which would be generic command

  -boot_image any system_area=$sysarea_img

I understand that $sysarea_img might get larger than 32 KiB
and in this case will not get into effect.
The newer --grub2-mbr patches the MBR template with the
address of the first El Torito boot image. So it can hop
onto the CD-ROM boot procedure after a short piece of code.

(-as mkisofs emulation is documented in man xorrisofs.)
  

> That requires a bit of MBR work plus
> storing the core.img in a "BIOS boot partition".

I don't know whether grub-mkrescue produces
${pc_dir}/boot_hybrid.img or whether it is a static part
of the GRUB2 installation.

$sysarea_img gets concatenated by from ${pc_dir}/boot.img
and a freshly produced ${core_img}.


> http://lukeluo.blogspot.com/2013/06/grub-how-to-5-ubuntu-distributition-iso.html

I have seen links to this address. But when i tried to view
it i got to an explanation how to set up an Ec2 server in
Tokyo. (My old Firefox does not show anything. It's all
Javascript.)


> My question is "is there a better way?" 

You may compose any file up to 32 KiB and let xorriso use
it as System Area:
  -boot_image any system_area=...path.on.local.disk...

But as said, i'd try to use grub-mkrescue from the GRUB2
installation which provides the boot software, or at least
learn from it.


Have a nice day :)

Thomas
 



reply via email to

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