[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] util/grub-mkrescue: specify -iso-level 3 in xorriso options
From: |
Thomas Schmitt |
Subject: |
Re: [PATCH] util/grub-mkrescue: specify -iso-level 3 in xorriso options |
Date: |
Wed, 20 Sep 2023 09:17:45 +0200 |
Hi,
Mingcong Bai <jeffbai@aosc.io> wrote:
> This is needed for architectures whose EFI executables has file names that
> exceeds the 8.3 (extension.suffix) convention, such as LoongArch64
> (bootloongarch64.efi).
In general -iso-level 3 is a harmless setting if the reading operating
system is Linux or MS-Windows. On other reading system your mileage may
vary. In any case level 3 is harmless if it is not actually needed, i.e.
all file names are 8.3 and all files are smaller than 4 GiB.
But i wonder:
- Why level 3 and not 2 ?
If it is only about file name length, then -iso-level 2 would suffice
and not enable file sizes of 4 GiB and larger. Such files have to be
represented by more than one extent, which might be not supported by
the BSDs and other systems.
Especially in grub-core/fs/iso9660.c function grub_iso9660_read() i see
a remark: "XXX: The file is stored in as a single extent" and cannot
spot provisions to read more than one directory entry per file.
So i doubt that GRUB is prepared for multi-extent files.
(If somebody wants to test: libcdio has a small ISO image
https://git.savannah.gnu.org/cgit/libcdio.git/tree/test/data/multi_extent_8k.iso
of size 122 KB with artificially small extent size. So its file
/multi_extent_file bears 8 extents although it has only 54 KB of size.
Compare GRUB's representation of the file with that of GNU/Linux.)
- Why is the name bootloongarch64.efi a problem in the ISO filesystem ?
The name length restriction of -iso-level 1 applies only to the dull
ISO 9660 names, but not to Rock Ridge names, which GRUB uses if present.
(Other than mkisofs or genisoimage, xorriso produces Rock Ridge by
default. Just don't use option --norock.)
Have a nice day :)
Thomas