Switch linux installation(s) from legacy bios to UEFI without re-installing?
by mgerson from LinuxQuestions.org on (#5QTQG)
Desktop computer: Asus M23BF - about 5 years old with UEFI bios. It came with Windows 10 installed and over time I have added a number of different linux distributions as a multi-boot. I am by no means a linux expert and much of the time I am following suggestions from the various linux forums such as this one to enter commands into a terminal, without fully understanding what I'm doing. Usually, it all works out OK, but once in a while I end up really screwing up, bricking my system, and have to re-install a lot of stuff from scratch. I have a 1 TB SSD with many partions, on which I install all my operating systems. I also have a 2 TB internal HDD, formatted as NTSF so that I can access it from either Windows or Linux, on which I keep most of my data files, although Music files, Video files, Timeshift snapshots, and some others are on external HDDs that are always connected. And I keep most of my data automatically backed up on various cloud drives, so I have never had to worry about serious data loss, even when I completely destroy a full operating system installation.
Until a couple of months ago, I had everything running smoothly. I only use Windows 10 very occasionally when I need to run something that I can't run on Linux for one reason or another. (E.g., I have a 10-year old Canon Canoscan scanner for which there is no Linux driver and which I still want to use occasionally.) But I do need to be able to use Windows every once in a while. My two main Linux installations are OpenSuse Tumbleweed and Manjaro (both KDE) and I also have three other linux installations that I occasionally play with although they aren't very important. I had a Manjaro grub2 menu from which I could boot into any of the linux installations or Windows 10. I also had an Opensuse grub 2 menu with the same choices. I could switch between these two menus by going into the UEFI bios on boot and changing the boot priority. That was all good until I made some mistakes when playing around with my Manjaro installation and found that everything had crashed. In trying to figure out what had happened and how I might be able to rescue my system I did things that made matters worse. I finally was able to get back into Opensuse and Manjaro but not Windows, either from the Opensuse grub menu (the only one I have left) or directly from the UEFI bios screen. I finally reinstalled Windows from a recovery USB drive I had made some years ago. Then I tried to update the grub menu. The updating process using Os Prober picks up all the Linux installations but will never pick up Windows 10. I can get into Windows 10 my entering the UEFI Bios screen and booting it from there, but I would like to get it into Grub menu.
From doing searches on various forums and reading advice given to others with a similar problem, I learned that this kind of problem occurs when Windows 10 is installed with UEFI but Linux installations are installed with legacy bios. I hadn't realized that there was this possibility or Linux being installed as legacy bios rather than UEFI. After I learned how to check whether a linux installation is legacy or UEFI I found that that was exacly the situation I have. I don't know how my Linux installations - at least my Manjaro and OpenSuse installations - got turned into legacy BIOS installations, but it seems that they have. It seems that one solutions woult be to re-install them from scratch, making sure to install them as UEFI. Then, I gather, when I set up a new Grub2 menu from one of these UEFI installations, it will indeed pick up the UEFI Windows 10 installation and all should be well. But I have spent many hours installing software and tweaking the Manjaro and Opensuse installations to suit me, and I really would rather not have to do that all over again from scratch.
I have read things that seem to indicate that it is possible to turn a legacy bios linux installation into a UEFI installation without actually having to reinstall everything from scratch, but I haven't found clear full step-by-step instructions on how to do that.
So... my questions are:
1. I it possible to change a linux installation from legacy bios to UEFI without reinstalling everything?
2. If this is possible, can anyone either provide me with clear step-by-step instructions on how to do that or point me to some instructions that are already available on the internet?
3. Will I have to switch each of the linux distubutions over to UEFI, or is it sufficient to just switch one over and set up a grub2 menu with that one?
I'm sorry this post is so long. I will be very grateful for any help anyone can provide.
Until a couple of months ago, I had everything running smoothly. I only use Windows 10 very occasionally when I need to run something that I can't run on Linux for one reason or another. (E.g., I have a 10-year old Canon Canoscan scanner for which there is no Linux driver and which I still want to use occasionally.) But I do need to be able to use Windows every once in a while. My two main Linux installations are OpenSuse Tumbleweed and Manjaro (both KDE) and I also have three other linux installations that I occasionally play with although they aren't very important. I had a Manjaro grub2 menu from which I could boot into any of the linux installations or Windows 10. I also had an Opensuse grub 2 menu with the same choices. I could switch between these two menus by going into the UEFI bios on boot and changing the boot priority. That was all good until I made some mistakes when playing around with my Manjaro installation and found that everything had crashed. In trying to figure out what had happened and how I might be able to rescue my system I did things that made matters worse. I finally was able to get back into Opensuse and Manjaro but not Windows, either from the Opensuse grub menu (the only one I have left) or directly from the UEFI bios screen. I finally reinstalled Windows from a recovery USB drive I had made some years ago. Then I tried to update the grub menu. The updating process using Os Prober picks up all the Linux installations but will never pick up Windows 10. I can get into Windows 10 my entering the UEFI Bios screen and booting it from there, but I would like to get it into Grub menu.
From doing searches on various forums and reading advice given to others with a similar problem, I learned that this kind of problem occurs when Windows 10 is installed with UEFI but Linux installations are installed with legacy bios. I hadn't realized that there was this possibility or Linux being installed as legacy bios rather than UEFI. After I learned how to check whether a linux installation is legacy or UEFI I found that that was exacly the situation I have. I don't know how my Linux installations - at least my Manjaro and OpenSuse installations - got turned into legacy BIOS installations, but it seems that they have. It seems that one solutions woult be to re-install them from scratch, making sure to install them as UEFI. Then, I gather, when I set up a new Grub2 menu from one of these UEFI installations, it will indeed pick up the UEFI Windows 10 installation and all should be well. But I have spent many hours installing software and tweaking the Manjaro and Opensuse installations to suit me, and I really would rather not have to do that all over again from scratch.
I have read things that seem to indicate that it is possible to turn a legacy bios linux installation into a UEFI installation without actually having to reinstall everything from scratch, but I haven't found clear full step-by-step instructions on how to do that.
So... my questions are:
1. I it possible to change a linux installation from legacy bios to UEFI without reinstalling everything?
2. If this is possible, can anyone either provide me with clear step-by-step instructions on how to do that or point me to some instructions that are already available on the internet?
3. Will I have to switch each of the linux distubutions over to UEFI, or is it sufficient to just switch one over and set up a grub2 menu with that one?
I'm sorry this post is so long. I will be very grateful for any help anyone can provide.