Fedora Fam, i installed fedora silverblue in a sata drive, and i have windows installed in a nvme drive. Im using fedora as main drive, so is the first on boot order
The OS
Both Os are encrypted (fedora with luks and windows with the standard encryption), both are in UEFI, and both are under secure boot.
Grub
I was looking to make fedora grub recognize windows, for convenience. but fedora didnt find the windows drive, tried running commands like os-prober, lsblk, but the drive dont show
The Problem
I dont know why sometimes when i change Os , something appears to broke, i got some weird blue screen recovery boot when turning on laptop, sometimes when i choose fedora under bios, i got dell system check kicking. Every time i restart fedora to update (silverblue), bios boot on windows, even fedora being the first.
Like appears that is something wrong. And im worring about not having a reliable computer that could corrupt any time
More likely it is just a failure of the various software components to cooperate over booting, not some more serious hardware or software issue that would corrupt things.
Some of it sounds like the consequences of the Windows fast startup feature, which should be turned off for dual boot systems. See a discussion of it here:
So we can have a better idea of the partitions we need to talk about.
I’m not clear on the symptoms you currently have?
You can boot Windows from the BIOS menu?
You can boot Fedora from the BIOS menu? (Or only from the installer USB?)
The setup of grub should only have needed to see the Microsoft directory in the EFI partition to setup Windows dual boot. It should not have needed to see the Windows C: partition. Because of encryption Linux can’t understand that the Windows C: partition is that, but it should be able to see the partition exists.
That kind of statement is confusing when you just say it rather than show the full output from lsblk (which I would prefer with all the extra columns of info you get if you copy/paste/execute the command I suggested above).
I understand why that second picture had to be a picture, not a text block. But in future if people here ask for things like the output of lsblk please copy/paste from the terminal to a text block in your reply, rather than posting a picture. There should be a button that look like </> when composing a reply. That button is used to create a preformatted text block for pasting into while retaining on-screen formatting.
You seem to be correct that your windows drive is not reported at all by lsblk. I should have read your original post more carefully:
There should be a BIOS option to change the nvme from whatever mode it is in to AHCI mode. That is needed for GRUB to see the drive. All BIOS’s I’ve tried that on warn that making that switch after Windows was installed will trash Windows. In my own (two different systems now) experience that hasn’t been true. Windows remained fine across that switch. But someone in this forum reported the opposite: Windows boot manager needed to be repaired after switching to AHCI mode.
For safety, I created a Windows recovery USB before making that switch. If the switch to AHCI mode had broken Windows boot manager, it could then be repaired easily from that USB.
I’m still not clear on what the conflict is over the BIOS boot data nor what Windows or Linux thing you might do to fix that. Switching the nvme to AHCI mode so grub can boot Windows might be a step toward understanding or fixing that or it might not.
If you do switch to AHCI and it doesn’t trash the Windows boot manager great. But if it does, then BEFORE trying the Windows recovery USB, I suggest booting Linux and verifying that the switch to AHCI caused lsblk to report sane information for the nvme. If it did, then the Windows recovery USB is near certain to fix the boot. But if the nvme doesn’t have a sane partition table in lsblk (after the BIOS switch to AHCI) then Windows recovery likely would do more harm than good. In that situation probably the best thing to do is switch the BIOS back out of AHCI without trying the recovery. That likely gets you back where you were. An alternate path would be to back up everything, switch to AHCI, then reinstall Windows. But all that is just in case the switch to AHCI doesn’t make the nvme look sane in lsblk
most likely: the switch to AHCI is problem free
less likely: the switch breaks the Windows boot manager, but makes lsblk see the nvme correctly. Easily fixed with windows recovery usb.
even less likely: The switch makes Linux see a bad partition table on the nvme. Windows recovery would likely do more harm than good. Switching back to RAID mode may undo the harm.
In most cases the problem may be caused by the bios set to recognize the drives as RAID and fedora may not be able to see the device that way. In most threads in the past switching it to AHCI usually fixed that problem.
There is always a risk that one may not be able to boot windows after the switch so you should have recovery media available to repair windows if needed. There also is a risk that you might need to recover fedora boot after doing the windows repair.
Lastly, if windows is uefi boot on one drive (NVME) and fedora is uefi boot on another drive (SSD) but fedora could not see the nvme drive during installation there is always the possibility that fedora does not load the proper drivers to support nvme and thus more may need to be done to allow fedora to configure booting of windows with your setup.
When I did that for my Win 11 laptop, it needed a 32GB or larger USB (I had first tried 16GB because most of my not-currently-in-use USB sticks are old).
I recently installed Fedora on a USB stick (normal install, not ISO) on a system that had no nvme and another time on a system that had nvme hidden by BIOS RAID. In both cases when booted into a system with AHCI nvme, it handled that nvme with no problem and no need to install any new drivers.
Of course, the /boot/efi/EFI/grub2/grub.cfg file won’t include the section needed to boot Windows because grub was installed before the nvme was visible.
There is a command (you could look up, or Jeff might tell you) in Linux to recreate that grub.cfg file based on current conditions. I don’t happen to recall that command and always just hand edit that file for better control, as I recently described in
Anyway, once the lsblk view of the nvme is good, you are very near having it all solved.
Thank you for the reminder as I overlooked that above.
Once windows booting has been repaired and able to boot fedora again the fix for grub to add windows to the boot menu would be relatively simple. sudo grub2-mkconfig -o /boot/grub2/grub.cfg followed by a reboot should handle that.
what should i do now ? run just that command: /boot/efi/EFI/grub2/grub.cfg, or need the sudo os-prober first ?
another 2 things :
the grub is hidden by default, you know a easy way to unhidden it (i need to hold shift to it appears)?
Even doing the AHCI, after clicking fedora on bios , still getting the dell system analysys and then i press esc and get the blue screen image that i posted before, and then i need to click “continue boot” to fedora kicks in
I don’t know what that one is. I think all the others are pretty much what you would expect for an OEM install of Windows.
I think the command Jeff suggested will do the job. It can’t hurt to try it.
The permissions on the contents of /boot/ and its subdirectories have permissions set to root access only and if you change those permissions, various automatic actions (I’m not sure exactly which) will change them back.
Where does holding shift do that? (I’d like to learn more myself). I’m using KDE, so things are different vs. the default gnome.
In a terminal using tab autocomplete, I can’t get autocomplete to work there. I assume you were supposed to copy/paste the full command Jeff gave you, not type it youself with help from autocomplete.
In KDE’s file browser (Dolphin) you put admin: in front of the initial / to browse areas limited to root access so I could type admin:/boot in the address bar and then click down the tree to look in those directories.
That is disappointing, but not very surprising. I don’t yet understand what is happening with the automatic edits to the BIOS boot data that are bothering your BIOS. My hope was that once you start booting Windows indirectly through grub, rather than directly through the BIOS, that problem would go away. But that is still more a hope than a prediction.
That problem still sounds like the consequences of having Windows fast startup enabled. But you said that is not enabled. I hope we are talking about the same thing there.
I expect the problem is part of secure boot. I don’t have much experience with that. I turned it off for my wife’s Zenbook laptop because it had issues I didn’t understand.
I expect you don’t want to turn secure boot off (and if you did want to, you need to turn bitlocker off first). But with secure boot on, that problem is hard for me to help you diagnose.
Looks like @computersavvy is a active man here in the community found another topic that him help a person with the hidden grub by default, i run that command as him said and it works
sudo grub2-editenv - unset menu_auto_hide
Where does holding shift do that? (I’d like to learn more myself). I’m using KDE, so things are different vs. the default gnome.
holding shift before boot makes grub appears, idk in kde, but fedora gnome, grub is hidden by default
My hope was that once you start booting Windows indirectly through grub, rather than directly through the BIOS, that problem would go away. But that is still more a hope than a prediction.
you are right bro, now that grub handles windows, i think that weird blue screen will not show anymore, at least i reboot here 6 times between windows and fedora and it didnt happen (its a big win), the first time that i boot on windows i have to put a gigant bitlocker password, hope that i dont need to do that anymore rsrsrsrs
Just one last thing that is bothering me and is not related to the situation today, idk if you use a laptop with external monitor(s), i use with the lid close and it stays enclosured under my desk with many cables connected, when i boot the grub dont show on the external monitors, only on the internal laptop monitor, so if i want to change OS now, or rollback ostree, i need to take laptop off disconected all the cables and open the lid to choose, after that video on external monitors kicks in. Do you know any configuration that could make grub appears on external monitor ? gonna put jeff on that too @computersavvy
And thanks for all guys, helped a lot, that is the best linux community so far
I had completely misunderstood what you were saying about grub being hidden. I don’t know why I misunderstood. What you said was clear. Sorry for the useless answer to that. Now that I understand what you meant, of course I knew about shift in that situation.
Good thing you found Jeff’s earlier answer to your question that I failed to understand.
Frequently.
I would certainly expect that behavior.
I really really wish I knew the answer to that one. I don’t ever have that same laptop closed issue. But I do have many situations of multiple monitors in which the monitor the BIOS tells grub to use is very much not the monitor that I want grub to use. I’ll be watching to see if you get a good answer (likely a new thread would be needed for any chance at a good answer). But, unfortunately, I’d bet against it.
I agree, open a new thread for that issue specifically. I sometimes see similar behavior with my desktop with one monitor (primary) using hdmi and another using DP, yet booting often uses the secondary monitor and not the primary. Unsure why and it has not bothered me enough to ask for help with that.
My laptop is the same as yours, though I seldom have the lid closed so the grub menu appearing there has never been an issue for me.
Maybe a work-around would be to position the laptop so you could open the lid without all the cable connections issues.