1

I had to install Windows 10. Because I was having difficulty with the install, I unplugged the first two of my drives (which had Fedora data). So with only one hard drive plugged in, I was able to get Windows successfully installed.

Now, I have plugged all of my drives in. I'm able to get Windows to boot up properly, but Fedora is no longer booting up.

This is the error when I select Fedora from the grub:

error: no such device: 3b9c12dc-6ed0-4e2f-a28b-3e0931ccfea2

error: file'/vmlinuz-4.13.9-300.fc27.x86_64' not found.

error: you need to load the kernel first.

So, I googled around and found this question, but to be honest, I didn't really understand the answer completely. Either way, I pressed c for the grub command line. When I type in ls on the command line, I see this:

(lvm/fedora_hdd-swap) (lvm/fedora_sdd-root) (lvm/fedora_sdd-home) (hd0) (hd0,gpt4) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1) (hd1) (hd1,gpt12) (hd1,gpt11) (hd2) (hd3) (hd3,gpt4) (hd3,gpt3) (hd3,gpt2) (hd3,gpt1)

Now, when I type in ls (lvm/fedora_hdd-root)/, I do see all the necessary linux files such as /boot, /etc, etc. So my files are safe and sound, I just need to configure the grub properly, I'm assuming?

When I go back to the grub, and type e to edit the Fedora listing, I see this:

getparams 'Fedora (4.13.9-300.fc27.x86_64) 27 (Workstation Edition)
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_gpt
    insmod ext2
    set root='hd0,gpt2'
    if [ x$feature_platform_search_hint = xy ]; then
        search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=achi0,gpt2 3b9c12dc-6ed0-4e2f-a28b-3e0931ccfea2
    else
        search --no-floppy --fs-uuid --set=root 3b9c12dc-6ed0-4e2f-a28b-3e0931ccfea2
    fi  

I think based on what I see in the grub command line, I'm supposed to edit the listing accordingly.

2

GRUB does not really care about your Linux root partition; only the Linux kernel cares about that. What GRUB wants to find is the partition that contains the /boot filesystem. For various reasons GRUB calls it the "GRUB root filesystem".

The kernel pathname in the error message error: file '/vmlinuz-4.13.9-300.fc27.x86_64' not found did not have /boot prefixed to it. That tells me your /boot was probably a separate filesystem, and the set root='hd0,gpt2' line in the GRUB configuration for booting Fedora tells me that it used to be the second partition on some GPT-partitioned disk at some point in time.

If you type ls (lvm/fedora_hdd-root)/boot/, you'll probably find it is just an empty directory. It serves as the mount point for the actual /boot filesystem.

There is also the filesystem UUID, but the error message error: no such device: 3b9c12dc-6ed0-4e2f-a28b-3e0931ccfea2 indicates it cannot be found.

My guess is that in the best case, the drive detection order may have changed, and what used to be hd0,gpt2 could now be hd3,gpt2.

In the worst case, your /boot partition actually was on the disk you installed Windows 10 to, and the Windows installation overwrote that partition. But a /boot partition is relatively easy to replace: you'll need to boot into rescue mode from a Fedora installation media, using the boot menu option Troubleshooting -> Rescue a Fedora system, or the inst.rescue boot option.

Once the rescue mode has started up, it should offer you a command prompt. If all goes well, your Fedora system should already be mounted for you under /mnt/sysimage. So first use a chroot /mnt/sysimage command, so you won't have to prefix /mnt/sysimage to all the pathnames, and you will be able to use the normal package management tools.

Now you can either create a new /boot partition and mount it, or - since your GRUB can apparently read LVM logical volumes - just reinstall the contents that should be in the /boot filesystem into the /boot directory of your root filesystem.

Since you apparently are using an UEFI-based system (as all your partitions are GPT type), that means just creating an empty directory at /boot/efi if it does not already exist (to act as a mount point for the EFI System Partition, or ESP), running mount /boot/efi, verifying that the settings in /etc/default/grub match the current configuration, and re-installing the latest kernel package using rpm --reinstall.

The kernel package contains the /vmlinuz-* file, and the package installation process will automatically create an appropriate initramfs file for it. Once that is done, all the essential files that must be in /boot should now be recovered. The kernel package reinstallation process should even update the actual GRUB configuration file for you.

Note that GRUB has two configuration files: the simplified one in /etc/default/grub, and the auto-generated actual configuration file, which is located in /boot/efi/EFI/fedora/grub.cfg on UEFI systems. If you update the former after re-installing the kernel package, you can manually trigger the update of the latter file with this command:

grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
  • Thanks for the reply. So before I installed Windows, I had two drives (ssd and hdd). I used both of them for fedora. Then for Windows, I bought a separate drive, unplugged the other two drives, and then installed Windows. So as far as Windows is concerned, it does not know about the other two drives at all. This leads me to believe that the /boot partition was not overwritten by Windows as was stated in your worst case scenario. Keeping that in mind, before I even try the boot rescue mode, should I try replacing set root='hd0,gpt2' with other partitions (trial and error)? Is that safe? – gjvatsalya Aug 25 '18 at 1:07
  • Anything you in GRUB by pressing e to edit the current boot configuration will be non-persistent, and so will be safe: if you get it wrong, just reboot and try again. If you find the correct setting, remember it and either make the same change to /boot/efi/EFI/fedora/grub.cfg manually, or use grub2-mkconfig to generate a new configuration. – telcoM Aug 25 '18 at 4:22

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.