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

Bug#831368: live-wrapper: output live.iso not isohybrid, cannot be booted from thumb drive



Hi,

if the live.iso has ISOLINUX boot software and an El Torito boot record
for PC-BIOS, then you may apply SYSLINUX program "isohybrid" to it.

To inspect the existing boot equipment of the ISO, run

  xorriso -indev live.iso -report_el_torito plain -report_system_area plain

If it reports that the first boot image file is for BIOS and has name
"isolinux.bin":

  El Torito boot img :   1  BIOS  y   none  0x0000  0x00      4        3544
  ...
  El Torito img path :   1  /isolinux/isolinux.bin

then it is most probably suitable for program "isohybrid".

If it reports "eltorito.img", then it's GRUB2 based and not suitable for
program "isohybrid":

  El Torito img path :   1  /boot/grub/i386-pc/eltorito.img

(GRUB2 program grub-mkrescue is well able to let xorriso build ISOs with MBR
 and GPT. There is just no postprocessing program which would do this on the
 existing El Torito equipped ISO image.)

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

Being developer of xorriso i offer advise with choosing the necessary
arguments for the prepared boot loader equipment.

In
  https://debian-live.alioth.debian.org/live-wrapper-doc/_modules/lwr/xorriso.html
i see an interesting mix of generic xorriso commands and -as mkisofs
emulation options. In the EFI case one would get a MBR partition of type 0xEF
for boot/grub/efi.img but no MBR x86 boot code for PC-BIOS, which would hop
onto /boot/isolinux/isolinux.bin if the ISO.

That x86 code would come on Debian 8 from file
   /usr/lib/ISOLINUX/isohdpfx.bin
out of package "isolinux".

An additional xorriso command -boot_image would insert it into the
resulting ISO:

  if self.isolinux:
      self.args.extend(['-boot_image', 'isolinux', 'dir=/boot/isolinux',
                        '-boot_image', 'isolinux',
                        'system_area=/usr/lib/ISOLINUX/isohdpfx.bin'])

The GRUB2 based EFI part could be written as generic xorriso commands, too:

  if self.grub:
      self.args.extend(['-boot_image', 'any', 'next',
                        '-boot_image', 'any', 'efi_path=/boot/grub/efi.img',
                        '-boot_image', 'isolinux',
                        'partition_entry=gpt_basdat'])

(Most boot ISO preparers use -as mkisofs emulation options for the whole
 xorriso run, rather than xorriso's generic commands like -outdev, -map,
 or -boot_image.)


Have a nice day :)

Thomas


Reply to: