Hi,

Chris Hofstaedtler wrote:
> our (grml) xorriso command line is (stripped for build paths and taken from
> a daily build):
> ...
>   --grub2-mbr .../boot_hybrid.img \

grub-mkrescue combines this with option

  --protective-msdos-label

for the case that only BIOS equipment is configured.
If EFI is configured too, then it overrides that setting by

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

which causes GPT instead of MBR partition table.
Since both are not used in the GRML xorriso -as mkisofs run, no
partition table is created.
(I still wonder why the Supermicro machine boots this ISO from USB
stick in EFI mode.)

grub-mkrescue produces no partition by which one could mount the
ISO 9660 filesystem. One can mount the base device /dev/sdX as
with all ISOs which would work from optical media.


>     -isohybrid-gpt-basdat \

This option would have caused a MBR partition table and an invalid
GPT as is done for Debian amd64 ISOs. But it belongs to the ISOLINUX
bootloader option  -isohybrid-mbr .
So i assume that GRML in the past gave up ISOLINUX for BIOS in favor
of GRUB and that since then there is no partition table.

You may re-enable this kind of partition table by adding option

  -part_like_isohybrid

to the xorriso -as mkisofs run.
This yields a valid MBR partition table and an invalid GPT as in
debian-13.5.0-amd64-netinst.iso. The ISO fileystem is mountable as
MBR partition 1. The EFI partition is inside the ISO partition.


If you want specs-compliant GPT with mountable ISO 9660 partition, then
you have to go the way of appended EFI partition, like FAI and Ubuntu
do. GPT does not allow to mark the data file efi.img as partition
inside the partition of the ISO 9660 filesystem.

Consider to explore other bootable ISOs by

  xorriso -indev "$iso" -report_el_torito as_mkisofs

to get a guess from xorriso about which -as mkisofs options could be
used to replay the boot equipment. E.g.:

  -V 'Ubuntu 24.04.3 LTS amd64'
  --modification-date='2025080518202600'
  --grub2-mbr 
--interval:local_fs:0s-15s:zero_mbrpt,zero_gpt:'ubuntu-24.04.3-desktop-amd64.iso'
  --protective-msdos-label
  -partition_cyl_align off
  -partition_offset 16
  --mbr-force-bootable
  -append_partition 2 28732ac11ff8d211ba4b00a0c93ec93b 
--interval:local_fs:12383488d-12393647d::'ubuntu-24.04.3-desktop-amd64.iso'
  -appended_part_as_gpt
  -iso_mbr_part_type a2a0d0ebe5b9334487c068b6b72699c7
  -c '/boot.catalog'
  -b '/boot/grub/i386-pc/eltorito.img'
  -no-emul-boot
  -boot-load-size 4
  -boot-info-table
  --grub2-boot-info
  -eltorito-alt-boot
  -e '--interval:appended_partition_2_start_3095872s_size_10160d:all::'
  -no-emul-boot

(That's the moment to read man xorrisofs or to ask me at
[email protected].
The "--interval:localfs" pseudopaths pick data from the original ISOi
image instead of reading them from hard disk.
"--interval:appended_partition_2" points to the emerging appended
partition. The further text "_start..." is informational and ignored
by xorriso.)

The bootability assessment by libisofs which led xorriso to that guess
can be seen by:

  xorriso -indev "$iso" -report_el_torito plain \
                        -report_system_area plain


Have a nice day :)

Thomas

Reply via email to