As stated in the title I cannot boot EndevourOS after I have installed it. When trying to boot, after I enter the decryption password, I get the following message:
error: file '/@/boot/grub/x86_64-efi/normal.mod' not found.
Entering rescue mode...
My installation is encrypted BTRFS. I have generally followed this guide - BTRFSonLUKS – Verbose version - to install EndeavourOS, but with one major difference: I created a custom btrfs subvolume layout in /usr/share/calamares/modules/mount prior to running the installer. And I believe it most likely causes the problem, but I don’t know how exactly and what to do to fix it.
Here is my installation steps:
Edit /usr/share/calamares/modules/mount with custom btrfs subvolume layout
Changed the default lzo compression in /usr/share/calamares/modules/fstab.conf to no compression
Run the installer, and install everything (except boot/efi ofcourse) onto one btrfs encrypted partition.
After installation mounted the newly installed system and changed fsck in fstab from 1 to 0 for all btrfs subvolumes.
Created and configured the swap file for hibernation according to the guide.
Mounted all subvolumes and boot/efi filesystem, chrooted into this, and run
sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo mkinitcpio -p linux
Here is the fstab file from the installed system (you can see my subvolume layout here which I copied from OpenSUSE):
At the end of the installation guide that I follow you need to mount newly installed system, chroot into it, and update grub and generate updated kernel images.
When I do the latter with
sudo mkinitcpio -p linux
I get several warning messages, which might be relevant here. You can see the full output of this command here:
I’ll be grateful for any suggestions on how to fix this problem.
Yes, I followed the verbose method. But as I stated in my post, I didn’t follow it exactly. The major difference is that I configured a custom btrfs subvolume layout prior to running the installer.
Sorry, didn’t catch that but I think @2000 is the expert so hopefully he sees your post and can help you out. I do have one installation done with the copy & paste method currently. I used to have 4 set up. Hope you can wait for some help as i don’t feel i can offer you much in that regard.
The only thing i can say is if you did manual partitioning you may have missed setting the /boot flag? You have to set the efi partition to /boot/efi and set the flag to /boot.
I didn’t forget /boot flag. I have several systems, including Windows, using this boot partition. I remember that it is actually checked by default when I click edit to mount the boot partition in the installer.
There is also root flag available when I create the main partition, but I figured that it is probably not needed, so I didn’t check that for my main partition.
I was just looking at the error thinking maybe the flag isn’t set because that happens a lot when setting the partitions. If you are using an existing efi partition you still have to click on edit and set the correct partition as /boot/efi/ and flag as /boot without formatting it.
error: file '/@/boot/grub/x86_64-efi/normal.mod' not found
You may be right and @2000 will know right away as he really knows this inside & out. I only follow his tutorial with the copy & paste method which i have done both with Luks encryption and without. I haven’t had any issues and if i did I would be asking him for help because i really have limited experience with Btrfs setup. Sorry i can’t be more helpful.
Edit: Welcome to the forum. Once you get this up and running I know you will be pleased with EndeavourOS.
Grub is not installed. Use the live iso to look in the /boot folder in your installed partition. Most easiest is to reinstall and carefully check what you tick. The internet is full of this problem.
Yes, I checked. The file that error message says is missing is actually there. /boot/grub/x86-64-efi is its own subvolume though, but it should be mounted correctly there.
what for it is a subvolune on its own? if /boot is already one?..
i just see /boot is no subvol so it could he grub is not able to see it if it is not on the same volume as /boot ?
and again what vor a subvol for a subfolder of grub?
/boot is not a subvolume neither a partition. /boot/efi is a separate partition.
/boot/grub/x86_64-efi is a subvolume. Why? To exclude it from snapshots. I copied the default subvolume layout that OpenSUSE uses. And they give some reasoning (which I don’t remember) to exclude this folder from snapshotting.
But I configured subvolumes to be mounted in fstab file, which you can find in messages above. So /@x86-64-efi subvolume, where needed files are installed, should be mounted to /boot/grub/x86_64-efi.
Yes, he also wants to replicate OpenSUSE subvolume layout. There are some suggestions that thread links to, I’ll read them and see if they can be helpful for me. Thank you!