So few days ago I needed a fresh windows install for some games on my laptop. I used arch linux for months before this and had no problems. But after installing windows only thing that got reckognized as bootable was windows.

I followed instructions from few tutorials (and the install tutorial that I watched few months ago while installing arch) but nothing seem to work.

Untill this moment I tried to remount and install new grub following this tutorial: https://youtu.be/C3D_qzw94v8

Basically he made /mnt and /mnt2 for windows and mounted them to EFI partitions but when he ran grub makeconfig he got output like: "found linux image,..., found windows image" , but when I ran makeconfig I only get the "found windows image, done".

In this whole process I might have mixed everything up because I tried to configure it in 2 in the morning.

Reinstalling linux is really not an option because I wouldnt like to configure and install everything again and I havr important documents on it.

Because I really don't know what info can help someone to assist me I will attach something that I consider helpful.

Here is the output of df,lsblk, fdisk https://ibb.co/1MYjyYd

Here is the folder structure of /mnt and /mnt/boot https://ibb.co/BZ7zSyh

Fstab: https://ibb.co/6s6vCg1

  • There seem to be two EFI System partitions, do you know if it was like this before or did you create it while rescueing? And am I right that you partitioned a SSD with one chunk for Windows and another for Linux? Did you use a /boot-partition before that is now gone? Did the partition scheme change with the rescue?
    – motzmann
    Sep 29 '20 at 18:48
  • Yes, you are correct two EFI partitions, one for windows(auto generated) and the other one is manually created with 512MB. They were both present before, only exception would be that linux partition had less MB for it. Yes I am partitioning 1 NVME SSD samsung drive approx 50% windows 50% linux (that was the initial plan). I didn't use a boot partition so I had only EFI partition and /mnt . Everything except partition size changed, other stayed the same.
    – stiMULAnt
    Sep 29 '20 at 18:54
  • Basically the EFI partition receives the loader to start Grub, which in turn shows the menu to chose one of the installations. Grub normally resides in /boot and supports being the fat32 EFI system partition as well as mounting the EFI system partition under /boot/efi. Only you know how this supposed to work. If you found out you can use grub-install with appropriate --efi-directory parameter. Find grub.cfg under /boot and the efi-stuff.
    – motzmann
    Sep 29 '20 at 19:19
  • Thanks for the advice, you cleared it out for me. Main problem was that my boot folder was partly empty, linux inages were missing but efi and grub folders were still there. That probably happend after I was experimenting with grub install in diferent directories. At the end I mounted my linux partition on the already existing Windows EFI partition and then I managed to boot into arch. One last thing that I did, if someon3 encounter this problem, is that I deleted the fstab folder because arch wouldnt boot. Im guessing the problems were old windows UUID because I was getting timeouts.
    – stiMULAnt
    Sep 30 '20 at 8:46

After the comments made the starting point clear:

First part: your fstab suggests that mounting happens based on so called UUIDs. In case partitions were re-created these change. Double check with shell command blkid or lsblk -o PATH,UUID,LABEL. If the UUIDs for certain partitions changed, write them into fstab. (Deleting it and re-running something distribution-specific or utilities re-creating leaves this answer's scope.)

It is unlikely that your /boot-folder is a FAT32-partition and contains the plain EFI resources. Your partition schema doesn't show something like this.

Thus second and more important: check your Linux' /boot folder, which ought to be on your Linux partition. In turn (one of) the EFI-partition(s) must be mounted into this /boot-folder as /boot/efi, so that Grub can copy the necessary loader in there. (grub install command takes --efi-directory as a parameter, there are defaults like /boot/efi as well as the EFI-partition carrying /boot itself. The latter works but it is not recommended as it exposes some OS' features to others and FAT32 isn't that reliable.)

Grub normally detects the content of /boot based on vmlinuz/kernel-images as well as ramdisks. For all other tricks like booting other OSes it looks up foreign partition's content. (This also includes USB disks attached while grub install.)

I personally prefer a separate /boot-partition, so it is not necessary after early userspace mount and therefore can be left out from fstab. This also avoids accidential overwriting of configs in there, e.g. Grub. Nevertheless it needs to be mounted (manually) when upgrading/ installing new kernel images.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.