23.12.2015 23:44, Andrei Borzenkov пишет:
OK, it turned out to be not related to xorriso, but for the record ...
Mac does not like FAT created by mformat. I can reproduce it easily by
creating single MSDOS partition on USB stick of type 0xef size 2880K,
formatting it with same options as grub-mkrescue:
sudo mformat -C -f 2880 -L 16 -i /dev/sdb1 ::
and copying bootx64.efi into \EFI\BOOT on it.
The same partition formatted with mkfs -t fat works like a charm.
Both Porteus and openSUSE CD (which correctly boot) have ESP created by
mkfs.fat.
TBH I think that precreating FAT once and shipping image with GRUB is
the most simple solution. It can be empty, we can dd files later.
Ideas?
I have byte-compared the boot sectors (because that's the only different
things in the filesystems).
So, here are the differences:
Bytes 0x03 .. 0x0a represent the OEM ID (software that created the
filesystem). mformat: "MTOO4018", mkfs.vfat: "mkfs.fat". Should not be
significant.
Bytes 0x11 .. 0x12: a WORD that represents the number of root directory
entries. mformat: 240, mkfs.vfat: 224. This is settable via the -r
parameter of mformat.
Bytes 0x27 .. 0x2a: a DWORD with the serial number of the filesystem.
Should not be significant.
Bytes 0x3e .. 0x1fe: x86 bootstrap code, which is not executed and thus
is likely not significant.
If you make the number of root directory entries match (using -r 14),
then there appears a difference in bytes 0x16 .. 0x17, which form a WORD
that means the number of sectors per FAT. mformat -r 14: 16, mkfs.vfat:
9. But this is settable with -L.
So, could you please run this?
sudo mformat -C -f 2880 -L 9 -r 14 -i /dev/sdb1 ::
If this fails, try giving mformat a known-good x86 boot sector using the
-B option.
--
Alexander E. Patrakov
_______________________________________________
Grub-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/grub-devel