You are not logged in.
I was installing Arch as a secondary operating system with Windows 10. Installation had proceeded smoothly with my 100 MB EFI partition mounted to /mnt/boot. I went to run
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUBwhich returned cannot open directory '/boot/grub/x86_64-efi' and that the directory did not exist. I attempted to use
mkdir /boot/grub/x86_64-efi'to create the directory myself, which resulted in an error message saying there was no space available. I had used arch-chroot to leave the ISO installer. Do I need to expand my Windows EFI partition or is there another solution. Thank you for the help.
Offline
Sounds like you didn't yet chroot in. You need to pass the actual ESP so in this instance you would have to pass /mnt/boot but you really should be chrooted and in your actual system when executing this and your ESP should be mounted on /boot. In doubt post the output of
lsblk -fLast edited by V1del (2020-05-26 20:32:00)
Offline
I went through the entire process again and made sure I ran
arch-chroot /mntThe same error persisted. Running lsblk showed I had 5 partitions, 2 of which were default Windows ones, and the others were the EFI, my main Windows partition, and the new arch partition. The arch partition has its mountpoint as / and the EFI partition has its mountpoint as /boot.
Offline
I attempted to use
mkdir /boot/grub/x86_64-efito create the directory myself, which resulted in an error message saying there was no space available.
You're mounting the EFI directory as /boot, which IIRC will force GRUB to store boot files (vmlinuz, initramfs, ucode, etc) into the already-small EFI partition. These boot files take about 70 MB in my installation.
I'm assuming you're sharing this partition with Windows, so it's quite possible 100MB is too small. (I don't have windows so can't check this)
If you don't need a separate /boot partition, my suggestion is to just create an /efi partition, then mount it as your efi-directory during GRUB installation:
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUBLast edited by kermit63 (2020-05-27 02:18:52)
Never argue with an idiot, they will drag you down to their level and then beat you with experience.
It is better to light a candle than curse the darkness.
A journey of a thousand miles begins with a single step.
Offline
To clarify, do you mean to create an /efi directory under /mnt or /boot like /mnt/efi or /mnt/boot/efi and install GRUB there or create an entirely new partition just for the EFI installation. I tried creating an /efi directory for mounting instead of just putting it in /boot and I got a different error
Cannot open file /efi/EFI/arch/grubx64.efi : No such file or directory.
Offline
create a /mnt/efi directory while booted into arch install medium and mount the existing windows efi partition, just before arch-chroot. This will then become your /efi partition once chrooted.
I suggest you delete the contents of /efi/EFI/arch first before redoing GRUB installation to remove remnants of previous failed attempts.
If you still get the same error, it could be you're doing something wrong with the basic installation, particularly the mounting of partitions before arch-chroot. It would be easier to diagnose if you provide detailed steps on how you performed the installation. My hunch is you're mixing up /boot and /efi.
Never argue with an idiot, they will drag you down to their level and then beat you with experience.
It is better to light a candle than curse the darkness.
A journey of a thousand miles begins with a single step.
Offline
Creating the /mnt/efi directory was what I attempted in my last reply and led to
Cannot open file /efi/EFI/arch/grubx64.efi : No such file or directory
I suggest you delete the contents of /efi/EFI/arch first before redoing GRUB installation to remove remnants of previous failed attempts.
I have been wiping the partition between each attempt to remove any remnants from previous installs.
It would be easier to diagnose if you provide detailed steps on how you performed the installation. My hunch is you're mixing up /boot and /efi.
My installation order is
Internet and Mirrorlist
Partitioning - /dev/nvme0n1p5 is formatted with mkfs.ext4 and mounted under /mnt and /dev/nvme0n1p2 was mounted under /mnt/efi
I pacstrap base, linux, linux-firmware, and nano
I generate and save the fstab file, then arch-chroot /mnt
Create a 2GB swapfile, turn it on, and add it to fstab
Set up locale, hostname and the hosts file
Install grub, efibootmgr, osprober, ntfs-3g, mtools, dosfstools, dialog, various network packages, base-devel, and linux-headers
Run
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB - where I'm stuck.
Offline
I re-flashed my install media from the April Arch iso to the May Arch iso and ran setup again after using Windows partition manager to wipe the partition, following the previous steps. In the install iso environment, I mounted nvme0n1p2 to /mnt/efi which resulted in the error
error: cannot copy '/boot/grub/x86_64-efi/core.efi' to '/efi/EFI/GRUB/grubx64.efi': No space left on device. Offline