Hi, John Paul Adrian Glaubitz wrote: > On the other hand, having HFS support in libisofs is still desirable > for OldWorld Macs and m68k Macs,
(We should better not tell the Fridays-For-Future kids. The MIPS/Watt ratio must be subterran.) > Looking at grub-mkrescue [1], I assume the options we need are: > > if (system_area == SYS_AREA_COMMON) > { > xorriso_push ("-hfsplus-file-creator-type"); > xorriso_push ("chrp"); > xorriso_push ("tbxi"); > xorriso_push ("/System/Library/CoreServices/BootX"); > xorriso_push ("-hfs-bless-by"); > xorriso_push ("p"); > xorriso_push ("/System/Library/CoreServices"); > } > xorriso_push ("-sysid"); > xorriso_push ("PPC"); > > Thomas, can you comment on the options for xorrisofs? You need to enable HFS+ production (or maybe future HFS production) xorriso_push ("-hfsplus"); xorriso_push ("-apm-block-size"); xorriso_push ("2048"); The block size might be adjustable to 512, if a reason arises. File data start address granularity will be 2048, because of ISO 9660. Type "tbxi" has not been used by grub-mkrescue yet. Googling ... It seems to be appropriate for BootX. Did we have a link to this text already ? https://opensource.apple.com/source/bless/bless-11/README.BOOTING It has a section "== Old World booting from HFS+ ==". Blessing "p" was not tested yet. You should use some Mac tool to verify that it gets correcty applied by libisofs. Is option -sysid PPC really needed ? ECMA-119 (aka ISO 9660) says: "This field shall specify an identification of a system which can recognize and act upon the content of the Logical Sectors with logical Sector Numbers 0 to 15 of the volume." That would be the firmware, i guess. Whatver, it should not do harm. > The question is whether we can create an image that boots both on IBM CHRP > machines and PowerMacs. There is an option -chrp-boot-part of which man xorrisofs says: Mark the block range of the whole emerging ISO image as MBR partition of type 0x96. This is not compatible with any other feature that produces MBR partition entries. It makes GPT unrecognizable. CHRP is often used in conjunction with HFS. It is not yet tested whether HFS+ filesystems produced with option -hfsplus would boot on any CHRP capable machine which does not boot pure ISO 9660 as well. ----------------------------------------------------------------------- Let's try with not more dummy ingredients than necessary: The old powerpc 6.0.5 and 8.0.0 netinst ISOs do not contain a BootX file or a /System/Library/CoreServices directory. 9.4.0-ppc64el does not either. So i have to make it somewhat artificial on a x86 grub-mkrescue ISO, which has HFS+ for x86 Macs. I simulate the missing file BootX by a copy of the ISO's EFI image: mount /dvdbuffer/grub-mkrescue-original.iso /mnt/iso xorriso -as mkisofs \ -o test.iso \ -hfsplus \ -apm-block-size 2048 \ -hfsplus-file-creator-type chrp tbxi \ /System/Library/CoreServices/BootX \ -hfs-bless-by p /System/Library/CoreServices \ -sysid PPC \ -chrp-boot-part \ -graft-points \ /mnt/iso \ /System/Library/CoreServices/BootX=/mnt/iso/efi.img An ISO emerges. As far as xorriso can tell, it looks ok: $ xorriso -hfsplus on \ -indev test.iso \ -report_system_area plain \ -pvd_info \ -find / -has_hfs_bless any -exec get_hfs_bless -- \ -find / -has_hfs_crtp - - -exec get_hfs_crtp -- ... System area summary: MBR CHRP cyl-align-off APM ISO image size/512 : 30796 Partition offset : 0 MBR heads per cyl : 64 MBR secs per head : 32 MBR partition table: N Status Type Start Blocks MBR partition : 1 0x80 0x96 0 30796 APM : N Info APM block size : 2048 APM gap fillers : 2 APM partition name : 1 Gap0 APM partition type : 1 ISO9660_data APM start and size : 1 16 67 APM partition name : 2 HFSPLUS_Hybrid APM partition type : 2 Apple_HFS APM start and size : 2 83 7466 APM partition name : 3 Gap1 APM partition type : 3 ISO9660_data APM start and size : 3 7549 150 ... System Id : PPC ... ppc_bootdir '/System/Library/CoreServices' chrp tbxi '/System/Library/CoreServices/BootX' The report about blessing and creator/type stems from ISO extended attributes which preserve the info independently of the HFS+ filesystem. So it has to be checked by other tools whether these HFS+ attributes are recognizable. ----------------------------------------------------------------------- Have a nice day :) Thomas