grub-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]