grub-install: Allow to install to non-EFI ESP when --force

Although the EFI specification enforces support for FAT ESP, it's free
for EFI implementations to implement support for ESPs with other formats
(e.g. ext4, ntfs, etc), and at least U-Boot EFI will support ext4 ESP if
U-Boot is built with ext4 support. In some situations a GRUB installation
on such a non-FAT ESP could be useful (e.g. a NTFS-based USB disk that
can dual boot a Windows installation media and a Linux LiveCD).

As this is advanced and implementation-dependent behavior, let grub-install
allow this kind of installation, but only when --force is specified.

Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
Icenowy Zheng authored and Daniel Kiper committed 2022-05-24 13:56:30 +02:00
1 parent 63d3211403
commit 3aec085410
1 file changed
+5
+5
View File
@@ -1092,7 +1092,12 @@ main (int argc, char *argv[])
efidir_is_mac = 1; efidir_is_mac = 1;
if (!efidir_is_mac && grub_strcmp (fs->name, "fat") != 0) if (!efidir_is_mac && grub_strcmp (fs->name, "fat") != 0)
{
if (force)
grub_util_warn (_("%s doesn't look like an EFI partition, system may not boot"), efidir);
else
grub_util_error (_("%s doesn't look like an EFI partition"), efidir); grub_util_error (_("%s doesn't look like an EFI partition"), efidir);
}
/* The EFI specification requires that an EFI System Partition must /* The EFI specification requires that an EFI System Partition must
contain an "EFI" subdirectory, and that OS loaders are stored in contain an "EFI" subdirectory, and that OS loaders are stored in