archinstall
archinstall copied to clipboard
Please support only EFI partition as FAT32 (allow /boot to be EXT4) : Updated, clarified
The Arch wiki says /efi has to be FAT32 and /boot can be EXT4 (if selecting /efi as the EFI partition.) But archinstall fails if you do that. Can you please add support for this.
I believe the root partition (/), which usually has the most storage, should be EXT4 for performance and reliability. However, both the boot partition (/boot) and the EFI partition (/boot/efi) should be FAT32 to ensure compatibility with UEFI systems.
It would be helpful if archinstall could enforce this configuration to prevent installation issues and align with UEFI standards. This could simplify the process for users.
I believe the root partition (/), which usually has the most storage, should be EXT4 for performance and reliability. However, both the boot partition (/boot) and the EFI partition (/boot/efi) should be FAT32 to ensure compatibility with UEFI systems.
It would be helpful if archinstall could enforce this configuration to prevent installation issues and align with UEFI standards. This could simplify the process for users.
Only the partition with EFI files has to be fat32, the boot partition is ext4 by default on Debian, Ubuntu and Fedora, it doesn't contain EFI files but does contain Grub or Systemd-boot files.
Hi,
I added a fix for this here. Not sure what the devs will think, but you can test it out in your env if you really want this: https://github.com/archlinux/archinstall/compare/master...g-ramirez:archinstall-grub-boot-efi-fix:master
Hi , the arch wiki has removed /boot/efi as a recommended EFI partition but does still recommend /efi .
https://wiki.archlinux.org/title/EFI_system_partition
https://wiki.archlinux.org/title/Partitioning
Having it as /efi means you don't have to have important files like the kernel on a fragile fat32 partition. Something Debian, Ubuntu, Fedora avoids.
But currently the archinstall script fails if you try to use /efi in this way.
Come to think of it, this may actually resolve your issue of using /efi as well, as I removed the need to specify the boot directory when using grub in a chroot environment, as this is necessary. I'll give it a go later, but feel free to test it if you'd like.
I have issues with this as well. It appears that the system will boot and most things work but if grub is anywhere but /boot commands depend on the grub prefix don't work. When I set up the esp region as fat32 and mount on /boot/efi or /efi the grub directory gets put there but the grub prefix is set to /boot/grub and any command that depends on grub prefix. i.e. grub-editenv list returns /boot/grub/grubenv not found, another example is grub-btrfs tries to find things in /boot/grub. So if you can look into this as well while addressing this issue I would appreciate it.
I have issues with this as well. It appears that the system will boot and most things work but if grub is anywhere but /boot commands depend on the grub prefix don't work. When I set up the esp region as fat32 and mount on /boot/efi or /efi the grub directory gets put there but the grub prefix is set to /boot/grub and any command that depends on grub prefix. i.e. grub-editenv list returns /boot/grub/grubenv not found, another example is grub-btrfs tries to find things in /boot/grub. So if you can look into this as well while addressing this issue I would appreciate it.
I thought if you force archinstall to use /efi as the esp only the efi files (like two files ending with an .efi suffix) are in /efi and Grub and the kernel is put in /boot or /boot/grub ?
I thought if you force archinstall to use /efi as the esp only the efi files (like two files ending with an .efi suffix) are in /efi and Grub and the kernel is put in /boot or /boot/grub ?
Not with the way it's currently setup. The installer basically runs
grub-install --target=x86_64-efi --efi-directory=/path/to/efi --boot-directory=/path/to/boot/partition --bootloader-id=GRUB --removable
I originally submitted a pull request for doing grub-install --target=x86_64-efi --efi-directory=/path/to/efi --bootloader-id=GRUB --removable
omitting --boot-directory, so that it's always /boot (which I believe is fine because this runs in a chroot environment after the base system is installed, so /boot is already present or mounted since arch puts kernels and initram disks in /boot regardless of if it's a separate partition). Doing so will result in a single .efi file in EFI/BOOT and grub configuration/data in /boot/grub. I wasn't sure if i should proceed with this approach as the bootloader spec also wants configuration in the EFI directory[1] but it gives more flexibility, e.g. /boot doesn't have to be fat32. I'll submit another PR as we can't use /efi with grub curently
[1] https://uapi-group.org/specifications/specs/boot_loader_specification/
Alright, from what I've been working on there are two issues: (1) Validation is preventing archinstall from specifying /efi (2) Grub's config files don't always go in /boot/grub
With validation removed (in the latest master iso), you can now specify /efi for your efi partition, and I believe this should work for you @michaeluk01. I'm still working on (2) @dabrown645 but it's a little more complex for certain cases, e.g. (EFI dir is /boot/efi) because the installer has logic to sort btrfs partitions in order, however when you have a separate /boot partition and are using /boot/efi, the installer mounts the root partition, followed by the EFI partition, but this is wrong because you should mount the root first, followed by /boot (if it exists) and finally /boot/efi. Can't guarantee a timeframe but i'll have more updates as I go
Thanks for work much appreciated