Update from this post from the other day: What to know before Dual Booting Windows + Linux?
TLDR: I got it working, started learning, tried to fix a grub issue and borked the whole system.
So after considering all the advice, I went and disabled/prepped/backed up, and started the process. I managed to get Fedora KDE installed on another partition and everything was looking ok. I installed some programs, started learning for a few hours, but there was one small issue. The grub
configuration from the video didn’t really work. Windows wasn’t booting by default, and when I tried to do the GRUB_SAVEDEFAULT=true
to have it boot the last OS, it also didn’t work. When booting windows, a message would flash by saying '/EFI/fedora/grubenv'
not found.
Looking more into it, the video says to use sudo grub2-mkconfig -o boot/efi/EFI/fedora/grub.cfg
but I think the correct one now is grub2-mkconfig -o /boot/grub2/grub.cfg
? I found this thread, but I couldn’t run the first command because it gave a conflict error, and I think there were two versions of grub2 installed?
So anyways, I tried running the setup again, thought it was ok and did a reboot to test… and got hit with a black screen with minimal BASH like line editing is supported
.
At this point I’m a little worried and lost, thinking maybe I wasn’t ready to try this, and trying to get it back the way it was. I found this guide, but I get stuck trying to mount the EFI partition.
Any tips on where to go from here? Right now I plugged in the USB I used earlier, booted Fedora from it, and opened the terminal. Past that I’m a bit lost on how to fix grub.
Lesson I also learned when I started out with Linux… don’t fuck with grub unless you really understand what you’re doing! Borking grub is a right of passage imo.
I’m not sure how to fix your issue (I gave up on dual booting and just have windows in a virtual machine, so Windows doesn’t mess up grub).
I always keep backups of the working grub config in case I need to restore. Just boot into a version of Linux on a usb key and copy the working config.
oh yes, did it multiple times… Now I’m using MX Linux, if I break something, I boot on the USB disk and click on the “repair boot”, and tada! it works again. But yeah I always keep a backup of my EFI in case of too.
Grub is still better than LILO :)
I’ll have to give this another try tomorrow when I’m more awake. I probably should have just asked here when I had grub issues in the first place.
Just boot into a version of Linux on a usb key and copy the working config.
So I guess this is what the guides are saying, but I seem to get stuck on the installation step with this error
grub2-install: error: this utility cannot be used for EFI platforms because it does not support UEFI Secure Boot
. Hopefully I understand it better once i’m more awake. Thank you though!You need to turn off secure boot in your bios maybe
Turning off secure boot in bios did the trick for me when I setup Mint with Windows 11.
Most relatable Linux title ever
And people said Linus’ experience wasn’t representative of non-experienced users trying out Linux.
It’s character building though.
In addition to
GRUB_SAVEDEFAULT
you also need to setGRUB_DEFAULT=saved
.You should probably follow these instructions from the Fedora Wiki: Reinstalling GRUB.
I wish you all the best. The way I avoid dealing with this on my own PC is I use separate physical drives. I unplug one, install OS, swap, install the other OS, and just use BIOS to choose which drive to boot from. I find that to be a lot less of a headache.
You could take a look at refind, if you’re on a efi system. Refind is a boot manager that can either chainload other Bootmanagers, kernels as well as eny efi bootloader entries. Even if grub is borked. You can probably set it up on a usb stick or even find a rescue distro that uses refind. It’s good as a failsafe if you can’t get grub to work.
Highly recommend this. It’s magic.
Also recommend, refind has saved my dual boot machines more times than I can count
Agreed, I’ve been using refind for about a year now and it hasn’t failed me.
I installed Windows on an isolated drive, connected another drive, installed Linux and refind.
running a quick refind-install in the terminal picked up the windows bootloader and all of the Linux kernels that I have installed.
I recently had GRUB issues which I managed to fix so I’m a little fresh in my mind. It’s 10pm here so I’ll be sleeping soon though.
Check the Arch wiki for how to fix GRUB, it has a lot of helpful tips: https://wiki.archlinux.org/title/GRUB
I put Mint onto a USB and then booted into the Live to be able to have full OS to fix GRUB, rather than using the rescue interface. So definitely do that if you have a spare PC you can use to put an image on a USB.
Here’s some other links I saved:
https://bbs.archlinux.org/viewtopic.php?id=283343
https://wiki.archlinux.org/title/GRUB
https://wiki.archlinux.org/title/EFI_system_partition#Mount_the_partition
https://superuser.com/questions/165116/mount-dev-proc-sys-in-a-chroot-environment
And I’ll post my commands I used to rebuild GRUB
mint@mint:/media/mint/a96b3354-70dd-45ed-8c6c-95171e9f1e82/boot/grub$ find . -name normal.mod
./x86_64-efi/normal.mod
mint@mint:/media/mint/a96b3354-70dd-45ed-8c6c-95171e9f1e82/boot/grub$ ls
mint@mint:/media/mint/a96b3354-70dd-45ed-8c6c-95171e9f1e82/boot/grub$ vi grub.cfg
mint@mint:/media/mint/a96b3354-70dd-45ed-8c6c-95171e9f1e82/boot/grub$ cd …/…
mint@mint:/media/mint/a96b3354-70dd-45ed-8c6c-95171e9f1e82$ sudo mount -o bind /dev dev
mint@mint:/media/mint/a96b3354-70dd-45ed-8c6c-95171e9f1e82$ sudo mount -o bind /proc proc
mint@mint:/media/mint/a96b3354-70dd-45ed-8c6c-95171e9f1e82$ chroot .
chroot: cannot change root directory to ‘.’: Operation not permitted
mint@mint:/media/mint/a96b3354-70dd-45ed-8c6c-95171e9f1e82$ sudo chroot .
[root@mint /]# find . -name grubx64.efi
[root@mint /]# sudo fdisk -l
sudo: unable to allocate pty: No such device
[root@mint /]# exit
mint@mint:/media/mint/a96b3354-70dd-45ed-8c6c-95171e9f1e82$ mount -o bind /dev/pts dev/pts
mount: /media/mint/a96b3354-70dd-45ed-8c6c-95171e9f1e82/dev/pts: must be superuser to use mount.
mint@mint:/media/mint/a96b3354-70dd-45ed-8c6c-95171e9f1e82$ sudo mount -o bind /dev/pts dev/pts
mint@mint:/media/mint/a96b3354-70dd-45ed-8c6c-95171e9f1e82$ sudo chroot .
[root@mint /]# sudo fdisk -l
[root@mint /]# lsblk
lsblk: failed to access sysfs directory: /sys/dev/block: No such file or directory
[root@mint /]# exit
exit
mint@mint:/media/mint/a96b3354-70dd-45ed-8c6c-95171e9f1e82$ sudo mount -t sysfs /sys /mnt/sys
mount: /mnt/sys: mount point does not exist.
mint@mint:/media/mint/a96b3354-70dd-45ed-8c6c-95171e9f1e82$ sudo mount -t sysfs /sys
mint@mint:/media/mint/a96b3354-70dd-45ed-8c6c-95171e9f1e82$ sudo mount -t sysfs /sys sys
mint@mint:/media/mint/a96b3354-70dd-45ed-8c6c-95171e9f1e82$ sudo chroot .
[root@mint /]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 2.6G 1 loop
sda 8:0 1 14.6T 0 disk
└─sda1 8:1 1 14.6T 0 part
sdb 8:16 0 476.9G 0 disk
└─sdb1 8:17 0 476.9G 0 part
sdc 8:32 1 232.9G 0 disk
├─sdc1 8:33 1 223.1G 0 part
└─sdc2 8:34 1 9.8G 0 part [SWAP]
sdd 8:48 1 14.6T 0 disk
└─sdd1 8:49 1 14.6T 0 part
sde 8:64 1 29.1G 0 disk
├─sde1 8:65 1 2.8G 0 part
├─sde2 8:66 1 4.1M 0 part
└─sde3 8:67 1 26.4G 0 part
nvme0n1 259:0 0 931.5G 0 disk
├─nvme0n1p1 259:1 0 500M 0 part
├─nvme0n1p2 259:2 0 2G 0 part
└─nvme0n1p3 259:3 0 929G 0 part /
[root@mint /]# fdisk -l
[root@mint /]# mount /dev/nvme0n1p1 /efi
[root@mint /]# grub-install --target=x86_64-efi --efi-directory=efi --bootloader-id=GRUB
Installing for x86_64-efi platform.
Installation finished. No error reported.
So for a step by step,
I booted into Mint and opened a terminal and cd to my OS drive.
I checked my grub folder:
mint@mint:/media/mint/a96b3354-70dd-45ed-8c6c-95171e9f1e82/boot/grub$ ls
fonts grub.cfg grub.cfg.broke grubenv locale themes x86_64-efi
made an edit with vi (irrelevant here)
went back to / on my OS drive
mounted the various partitions needed, that’s all the mount -o bind commands, dev, proc, dev/pts, sys
then chroot to my OS drive so that I’m working inside my Arch install not the Mint install
then I mount the efi and grub install
[root@mint /]# mount /dev/nvme0n1p1 /efi
[root@mint /]# grub-install --target=x86_64-efi --efi-directory=efi --bootloader-id=GRUB
This is the reason I really like the distros that everyone shits all over for being “just pre-installed software, custom configs, and themes” like mint or Garuda or zorin… Almost all of them come out of the box with a graphical interface for managing grub settings (and most other parts of the OS) so you don’t have to faff with getting command line just right, you just select the thing you want from a drop down box and it works.
I’ll probably get shit all over myself for saying this though, lol.
Every time someone says experienced users should use a more difficult to use distribution I die a little inside - I happily use Mint, have done for years, why make my life more difficult?
Honestly, if you’re new to linux, the best way to recover from borked GRUB is to reinstall linux. You can boot from a live CD, mount positions, chroot, and fix it, but I found that more difficult than reinstall until I had a bunch of experience.
Right, and while in the install process, and the installer detects there is another os in your drive, “tell” the installer (there will be the option to do this) that you want both systems and choose the order of prefered booting. It is the simpler way for a new user.
I have been using linux since 2000 year and at firts had to learn how to configure lilo to get my cdrom working. When distros changed to grub i quit learning that stuff. Used my time learning other things, like R or chempaint.
No one should begin tinkering with grub and other sensitive parts of your system, begin with the command line and system tools first.
More specific questions might be better than my mess above:
The guide I mentioned above seems to be the guide a few other forums reference. Is there a boot repair tool for Fedora KDE Plasma?
Alternatively, I am able to make it to the last step of the regular guide, where I need to run
sudo grub-install --boot-directory=/mnt/boot --bootloader-id=ubuntu --target=x86_64-efi --efi-directory=/mnt/boot/efi
I get a
sudo: grub-install: command not found
message. Since I’m on Fedora and not Ubuntu, what would be the correct command for me, assuming that’s the reason. I didn’t think it would work, but I tried just swapping ‘fedora’ for ‘ubuntu’ and got the same error
edit: Got a little further by using grub2 instead:
sudo grub2-install --boot-directory=/mnt/boot --bootloader-id=ubuntu --target=x86_64-efi --efi-directory=/mnt/boot/efi
, but got a new error:grub2-install: error: /usr/lib/grub/x86_64-efi/modinfo.sh doesn’t exist
edit: Got a little further by running
sudo dnf install grub2-efi-x64-modules
. Now when I run that command, error isgrub2-install: error: this utility cannot be used for EFI platforms because it does not support UEFI Secure Boot.
secure boot is definitely off, so I’m stuck again
Did you try: sudo update-grub
It’s been years since I dual booted. If you want Windows to be default I’m struggling to think of what could be gained by dual booting over just running your Linux system in a vm in Windows.
If you’re like me you’ll want to dual boot because two games you play often enough are Windows only (easy anti cheat). That and of course I use one or two software as daily driver that are Windows only
Me, yesterday:
Welcome to dual booting with Windows! Best advice I can give is try to keep Windows away from your Linux drive as it doesn’t like to share. A 2nd drive for your Linux install can save a ton of headache (I went so far as to put Windows on my old PC when I upgraded).