#1647 xorriso graft points breaks DVD image el torito/boot information in Fedora ELN
Closed: Fixed 2 years ago by hlin. Opened 2 years ago by nalika.

Currently when using pungi with xorriso to make extra images (such as the DVD image), the boot.iso is used as a starting point to graft together the extra images. Though this works and it does generate a working and bootable DVD ISO in Fedora ELN, xorriso -report_el_torito doesn't report expected information nor indicators of a healthy image that could be easily compared to the original boot.iso.

Though the DVD image is still bootable and appears to work as intended, some odd or unexpected behavior may occur. One common issue is the error SORRY 32 that comes as a result when operating on the image using xorriso (like repacking it or adding more files to an image). An example would be mkksiso, where it will also report the 32 error though the image will finish building. The resulting image is bootable only in UEFI.

inspection using xorriso

Using xorriso -report_el_torito, we can see the difference between the boot.iso and the DVD image that's generated later. Here's the boot.iso using plain information and then the as_mkisofs information.

# boot, plain
[root@04b38a979336 dls]# xorriso -indev Fedora-ELN-20221213.0-x86_64-boot.iso -report_el_torito plain
xorriso 1.5.4 : RockRidge filesystem manipulator, libburnia project.

xorriso : NOTE : Loading ISO image tree from LBA 0
xorriso : UPDATE :     321 nodes read in 1 seconds
libisofs: NOTE : Found hidden El-Torito image for EFI.
libisofs: NOTE : EFI image start and size: 476895 * 2048 , 14320 * 512
xorriso : NOTE : Detected El-Torito boot information which currently is set to be discarded
Drive current: -indev 'Fedora-ELN-20221213.0-x86_64-boot.iso'
Media current: stdio file, overwriteable
Media status : is written , is appendable
Boot record  : El Torito , MBR protective-msdos-label grub2-mbr cyl-align-off GPT
Media summary: 1 session, 480641 data blocks,  939m data, 4095g free
Volume id    : 'Fedora-ELN-BaseOS-x86_64'
El Torito catalog  : 136  1
El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz         LBA
El Torito boot img :   1  BIOS  y   none  0x0000  0x00      4         137
El Torito boot img :   2  UEFI  y   none  0x0000  0x00  14320      476895
El Torito img path :   1  /images/eltorito.img
El Torito img opts :   1  boot-info-table grub2-boot-info
El Torito img blks :   2  3580

# boot, as_mkisofs
[root@04b38a979336 dls]# xorriso -indev Fedora-ELN-20221213.0-x86_64-boot.iso -report_el_torito as_mkisofs
xorriso 1.5.4 : RockRidge filesystem manipulator, libburnia project.

xorriso : NOTE : Loading ISO image tree from LBA 0
xorriso : UPDATE :     321 nodes read in 1 seconds
libisofs: NOTE : Found hidden El-Torito image for EFI.
libisofs: NOTE : EFI image start and size: 476895 * 2048 , 14320 * 512
xorriso : NOTE : Detected El-Torito boot information which currently is set to be discarded
Drive current: -indev 'Fedora-ELN-20221213.0-x86_64-boot.iso'
Media current: stdio file, overwriteable
Media status : is written , is appendable
Boot record  : El Torito , MBR protective-msdos-label grub2-mbr cyl-align-off GPT
Media summary: 1 session, 480641 data blocks,  939m data, 4095g free
Volume id    : 'Fedora-ELN-BaseOS-x86_64'
-V 'Fedora-ELN-BaseOS-x86_64'
--modification-date='2022121300553300'
--grub2-mbr --interval:local_fs:0s-15s:zero_mbrpt,zero_gpt:'Fedora-ELN-20221213.0-x86_64-boot.iso'
--protective-msdos-label
-partition_cyl_align off
-partition_offset 16
-partition_hd_cyl 64
-partition_sec_hd 32
-append_partition 2 28732ac11ff8d211ba4b00a0c93ec93b --interval:local_fs:1907580d-1921899d::'Fedora-ELN-20221213.0-x86_64-boot.iso'
-appended_part_as_gpt
-iso_mbr_part_type a2a0d0ebe5b9334487c068b6b72699c7
--boot-catalog-hide
-b '/images/eltorito.img'
-no-emul-boot
-boot-load-size 4
-boot-info-table
--grub2-boot-info
-eltorito-alt-boot
-e '--interval:appended_partition_2_start_476895s_size_14320d:all::'
-no-emul-boot
-boot-load-size 14320

Below is same commands ran for the DVD. The DVD shows error 32 and the el torito information for the most part is inconsistent or out of place in comparison to the boot image. For example eltorito.img is missing with the message Cannot enable EL Torito boot image #1 because it is not a data file in the ISO filesystem. Another indicator is El torito img opts: 1 boot-info-table grub2-boot-info is missing.

# dvd, plain
[root@04b38a979336 dls]# xorriso -indev Fedora-ELN-20221213.0-x86_64-dvd1.iso -report_el_torito plain
xorriso 1.5.4 : RockRidge filesystem manipulator, libburnia project.

xorriso : NOTE : Loading ISO image tree from LBA 0
xorriso : UPDATE :    7129 nodes read in 1 seconds
libisofs: WARNING : Found hidden El-Torito image. Its size could not be figured out, so image modify or boot image patching may lead to bad results.
libisofs: NOTE : Found hidden El-Torito image for EFI.
libisofs: NOTE : EFI image start and size: 4267296 * 2048 , 14320 * 512
xorriso : NOTE : Detected El-Torito boot information which currently is set to be discarded
Drive current: -indev 'Fedora-ELN-20221213.0-x86_64-dvd1.iso'
Media current: stdio file, overwriteable
Media status : is written , is appendable
Boot record  : El Torito , MBR protective-msdos-label grub2-mbr cyl-align-off GPT
Media summary: 1 session, 4270892 data blocks, 8342m data, 4088g free
Volume id    : 'Fedora-ELN-BaseOS-x86_64'
El Torito catalog  : 1361  1
El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz         LBA
El Torito boot img :   1  BIOS  y   none  0x0000  0x00      4        1362
El Torito boot img :   2  UEFI  y   none  0x0000  0x00  14320     4267296
El Torito img blks :   1  18
El Torito img blks :   2  3580
# dvd, as_mkisofs
[root@04b38a979336 dls]# xorriso -indev Fedora-ELN-20221213.0-x86_64-dvd1.iso -report_el_torito as_mkisofs
xorriso 1.5.4 : RockRidge filesystem manipulator, libburnia project.

xorriso : NOTE : Loading ISO image tree from LBA 0
xorriso : UPDATE :    7129 nodes read in 1 seconds
libisofs: WARNING : Found hidden El-Torito image. Its size could not be figured out, so image modify or boot image patching may lead to bad results.
libisofs: NOTE : Found hidden El-Torito image for EFI.
libisofs: NOTE : EFI image start and size: 4267296 * 2048 , 14320 * 512
xorriso : NOTE : Detected El-Torito boot information which currently is set to be discarded
Drive current: -indev 'Fedora-ELN-20221213.0-x86_64-dvd1.iso'
Media current: stdio file, overwriteable
Media status : is written , is appendable
Boot record  : El Torito , MBR protective-msdos-label grub2-mbr cyl-align-off GPT
Media summary: 1 session, 4270892 data blocks, 8342m data, 4088g free
Volume id    : 'Fedora-ELN-BaseOS-x86_64'
xorriso : SORRY : Cannot enable EL Torito boot image #1 because it is not a data file in the ISO filesystem
-V 'Fedora-ELN-BaseOS-x86_64'
--modification-date='2022121300553300'
--grub2-mbr --interval:local_fs:0s-15s:zero_mbrpt,zero_gpt:'Fedora-ELN-20221213.0-x86_64-dvd1.iso'
--protective-msdos-label
-partition_cyl_align off
-partition_offset 16
-append_partition 2 28732ac11ff8d211ba4b00a0c93ec93b --interval:local_fs:17069184d-17083503d::'Fedora-ELN-20221213.0-x86_64-dvd1.iso'
-appended_part_as_gpt
-iso_mbr_part_type a2a0d0ebe5b9334487c068b6b72699c7
--boot-catalog-hide
-eltorito-alt-boot
-e '--interval:appended_partition_2_start_4267296s_size_14320d:all::'
-no-emul-boot
-boot-load-size 14320
xorriso : NOTE : Tolerated problem event of severity 'SORRY'
xorriso : NOTE : -return_with SORRY 32 triggered by problem severity SORRY

potential solution

One solution that comes to mind would be to make sure that the -map'd files do not include any of the boot files that'd already be found on the boot.iso for a given architecture.

images/*
isolinux/*
EFI/*
boot/*
ppc/*
generic.ins

Replacing the boot files with essentially the same data seems to cause the issue mentioned. If the boot files are left alone (basically whatever is on the boot.iso is left untouched), the issue does not occur. A simple way to verify this behavior is to just take the boot image and repackage it, and then verify using xorriso -report_el_torito.

[root@04b38a979336 dls]# xorriso \
  -indev Fedora-ELN-20221213.0-x86_64-boot.iso \
  -outdev test.iso \
  -boot_image any replay \
  -joliet on \
  -system_id LINUX \
  -compliance joliet_long_names

[root@04b38a979336 dls]# xorriso -indev test.iso -report_el_torito plain
xorriso 1.5.4 : RockRidge filesystem manipulator, libburnia project.

xorriso : NOTE : Loading ISO image tree from LBA 0
xorriso : UPDATE :     321 nodes read in 1 seconds
libisofs: NOTE : Found hidden El-Torito image for EFI.
libisofs: NOTE : EFI image start and size: 476943 * 2048 , 14320 * 512
xorriso : NOTE : Detected El-Torito boot information which currently is set to be discarded
Drive current: -indev 'test.iso'
Media current: stdio file, overwriteable
Media status : is written , is appendable
Boot record  : El Torito , MBR protective-msdos-label grub2-mbr cyl-align-off GPT
Media summary: 1 session, 480539 data blocks,  939m data, 4095g free
Volume id    : 'Fedora-ELN-BaseOS-x86_64'
El Torito catalog  : 184  1
El Torito images   :   N  Pltf  B   Emul  Ld_seg  Hdpt  Ldsiz         LBA
El Torito boot img :   1  BIOS  y   none  0x0000  0x00      4         185
El Torito boot img :   2  UEFI  y   none  0x0000  0x00  14320      476943
El Torito img path :   1  /images/eltorito.img
El Torito img opts :   1  boot-info-table grub2-boot-info
El Torito img blks :   2  3580

[root@04b38a979336 dls]# xorriso -indev test.iso -report_el_torito as_mkisofs
xorriso 1.5.4 : RockRidge filesystem manipulator, libburnia project.

xorriso : NOTE : Loading ISO image tree from LBA 0
xorriso : UPDATE :     321 nodes read in 1 seconds
libisofs: NOTE : Found hidden El-Torito image for EFI.
libisofs: NOTE : EFI image start and size: 476943 * 2048 , 14320 * 512
xorriso : NOTE : Detected El-Torito boot information which currently is set to be discarded
Drive current: -indev 'test.iso'
Media current: stdio file, overwriteable
Media status : is written , is appendable
Boot record  : El Torito , MBR protective-msdos-label grub2-mbr cyl-align-off GPT
Media summary: 1 session, 480539 data blocks,  939m data, 4095g free
Volume id    : 'Fedora-ELN-BaseOS-x86_64'
-V 'Fedora-ELN-BaseOS-x86_64'
--modification-date='2022121300553300'
--grub2-mbr --interval:local_fs:0s-15s:zero_mbrpt,zero_gpt:'test.iso'
--protective-msdos-label
-partition_cyl_align off
-partition_offset 16
-partition_hd_cyl 64
-partition_sec_hd 32
-append_partition 2 28732ac11ff8d211ba4b00a0c93ec93b --interval:local_fs:1907772d-1922091d::'test.iso'
-appended_part_as_gpt
-iso_mbr_part_type a2a0d0ebe5b9334487c068b6b72699c7
--boot-catalog-hide
-b '/images/eltorito.img'
-no-emul-boot
-boot-load-size 4
-boot-info-table
--grub2-boot-info
-eltorito-alt-boot
-e '--interval:appended_partition_2_start_476943s_size_14320d:all::'
-no-emul-boot
-boot-load-size 14320

Commit 3175ede fixes this issue

Commit e1d7544 relates to this ticket

Metadata Update from @hlin:
- Issue set to the milestone: 4.3.8

2 years ago

Log in to comment on this ticket.

Metadata
Related Pull Requests
  • #1663 Merged 2 years ago
  • #1659 Merged 2 years ago