Comment 22 for bug 1895131

Revision history for this message
Thomas Schmitt (scdbackup) wrote :

Hi,

> https://launchpad.net/ubuntu/+source/cd-boot-images-amd64/7

Oh. This explains why there is still an invalid GPT in
   http://cdimage.ubuntu.com/daily-live/current/groovy-desktop-amd64.iso
which i downloaded 2 days ago.

Above change has at its end:

+ echo 'xorriso -as mkisofs [...]
  -append_partition 2 0xef images/boot/grub/efi.img [...]
  -e --interval:appended_partition_2:all:: [...]
  -part_like_isohybrid -isohybrid-gpt-basdat [...]' > xorriso-cmd.txt

To blame for the invalid GPT is "-part_like_isohybrid -isohybrid-gpt-basdat".

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

I downloaded a new groovy-desktop-amd64.iso and repacked it without these
options:

  dd if=groovy-desktop-amd64.iso bs=512 count=1 \
     of=groovy-desktop-amd64.mbr.img

  dd if=groovy-desktop-amd64.iso bs=512 skip=5715872 count=9952 \
     of=groovy-desktop-amd64.efi.img

  xorriso -as mkisofs \
    -o test.iso \
    -J -joliet-long -l \
    -b boot/grub/i386-pc/eltorito.img \
       -no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info \
    --grub2-mbr groovy-desktop-amd64.mbr.img \
    -append_partition 2 0xef groovy-desktop-amd64.efi.img \
    -eltorito-alt-boot \
    -e --interval:appended_partition_2:all:: \
       -no-emul-boot \
    -partition_offset 16 -r \
    /mnt/iso

The numbers 5715872 and 9952 can be obtained by "/sbin/fdisk -l" or by
xorriso inspection.

This inspection

  iso=groovy-desktop-amd64.iso

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

yields for the downloaded ISO, iso=groovy-desktop-amd64.iso :

  Drive current: -indev 'groovy-desktop-amd64.iso'
  Media current: stdio file, overwriteable
  Media status : is written , is appendable
  Boot record : El Torito , MBR grub2-mbr cyl-align-off GPT
  Media summary: 1 session, 1431622 data blocks, 2796m data, 350g free
  Volume id : 'Ubuntu 20.10 amd64'
  System area options: 0x00004a00
  System area summary: MBR grub2-mbr cyl-align-off GPT
  ISO image size/512 : 5726488
  Partition offset : 16
  MBR heads per cyl : 0
  MBR secs per head : 0
  MBR partition table: N Status Type Start Blocks
  MBR partition : 1 0x80 0xcd 64 5715808
  MBR partition : 2 0x00 0xef 5715872 9952
  GPT : N Info
  GPT disk GUID : 7631942462da4c4797ccfb75ca94a436
  GPT entry array : 2 248 separated
  GPT lba range : 64 5726424 5726487
  GPT partition name : 1 490053004f004800790062007200690064003100
  GPT partname local : 1 ISOHybrid1
  GPT partition GUID : 1 7631942462da4c4797cdfb75ca94a436
  GPT type GUID : 1 a2a0d0ebe5b9334487c068b6b72699c7
  GPT partition flags: 1 0x1000000000000001
  GPT start and size : 1 5715872 9952
  El Torito catalog : 678 1
  El Torito cat path : /boot.catalog
  El Torito images : N Pltf B Emul Ld_seg Hdpt Ldsiz LBA
  El Torito boot img : 1 BIOS y none 0x0000 0x00 4 679
  El Torito boot img : 2 UEFI y none 0x0000 0x00 9952 1428968
  El Torito img path : 1 /boot/grub/i386-pc/eltorito.img
  El Torito img opts : 1 boot-info-table grub2-boot-info
  El Torito img blks : 2 2488

The new ISO yields:

  Drive current: -indev 'test.iso'
  Media current: stdio file, overwriteable
  Media status : is written , is appendable
  Boot record : El Torito , MBR grub2-mbr cyl-align-off
  Media summary: 1 session, 1431606 data blocks, 2796m data, 347g free
  Volume id : 'ISOIMAGE'
  System area options: 0x00004a00
  System area summary: MBR grub2-mbr cyl-align-off
  ISO image size/512 : 5726424
  Partition offset : 16
  MBR heads per cyl : 0
  MBR secs per head : 0
  MBR partition table: N Status Type Start Blocks
  MBR partition : 1 0x80 0xcd 64 5715808
  MBR partition : 2 0x00 0xef 5715872 9952
  El Torito catalog : 678 1
  El Torito cat path : /boot.catalog
  El Torito images : N Pltf B Emul Ld_seg Hdpt Ldsiz LBA
  El Torito boot img : 1 BIOS y none 0x0000 0x00 4 679
  El Torito boot img : 2 UEFI y none 0x0000 0x00 9952 1428968
  El Torito img path : 1 /boot/grub/i386-pc/eltorito.img
  El Torito img opts : 1 boot-info-table grub2-boot-info
  El Torito img blks : 2 2488

which is what i proposed to debian-cd and debian-live a year ago.

The GPT of the original ISO is not valid because the MBR partition table
has two partitions. GPT would be valid only if there is a single MBR
partition of type 0xee, which covers the range from LBA 1 up to the ISO's
end.

Have a nice day :)

Thomas