On 25/04/2019 07:50, John Paul Adrian Glaubitz wrote: > On 4/25/19 8:40 AM, Mark Cave-Ayland wrote: >> When grub is installed to disk as per your latest ISO images, what is the >> filesystem/partition type being used? > For GPT-based partitioning, we have a dedicated GRUB boot partition: > > (parted) p > Model: Unknown (unknown) > Disk /dev/vdiska: 85.9GB > Sector size (logical/physical): 512B/512B > Partition Table: gpt > Disk Flags: > > Number Start End Size File system Name Flags > 1 1049kB 1075MB 1074MB ext3 boot, esp > 2 1075MB 1076MB 1049kB bios_grub > 3 1076MB 3075MB 2000MB linux-swap(v1) > 4 3075MB 85.9GB 82.8GB ext4 > > (parted) > > For machines with Sun labels, GRUB is actually installed using block lists: > > (parted) p > Model: Unknown (unknown) > Disk /dev/vdiskb: 1100GB > Sector size (logical/physical): 512B/8192B > Partition Table: sun > Disk Flags: > > Number Start End Size File system Flags > 1 0.00B 8192MB 8192MB ext4 boot > 2 8192MB 1016GB 1008GB ext4 > 4 1016GB 1100GB 83.7GB linux-swap(v1) > > (parted) > > See also: https://github.com/esnowberg/grub2-sparc/wiki
Ah now I see - since your PROM supports gpt directly then that's how boot.S works. Presumably then it must be diskboot.S with blocklist support that gets used for older machines such as QEMU's sun4u? Okay so reviewing the genisoimage man page again I think you should be able to use the blocklist approach for the CDROM: install grub into /boot/grub/sparc64.elf on the ISO9660 partition, then generate a cdrom.img using diskboot.S that starts with your a.out bootloader and includes the block list for sparc64.elf taken from the ISO9660 partition. The part that needs to be checked here is whether diskboot.S (and indeed your PROM disk and cdrom aliases) contain the slice because the blocklist needs to come from the "raw" disk device since sparc64.elf is being pulled from a different slice. Adding some code to boot.S to display bootpath will be helpful here. But then presumably this is the same as the blocklist configuration above anyhow? ATB, Mark.