Hello,
I’m uncertain if this is the right community for this but…
I recently bought an SSD to run Linux on it and have my old SSD still with Windows (see my previous post for more info). My laptop only has one slot for SSD so I bought a USB-C hub which included an SSD slot. I switched the old SSD to the USB-C Hub but now windows won’t boot. In the boot loader it does seem to recognise a Windows boot but when I do so it says there was a problem finding the device.
Any thoughts as to what might be causing this?
I’m using a Dell G15 laptop
If your drivers are UEFI, you can just use your BIOS boot menu to boot windows. You can fix the bootloaders if you want, but this is the answer to your base question.
As far as I know you need to install Linux after Windows and then select the disk where you want to get GRUB installed, then GRUB will give you the option to boot the desired OS, if you use BIOS/UEFI to directly boot the OS it will not work.
The order doesn’t matter
Used to be that way years ago when I swapped to Linux. I didn’t use windows anymore I don’t know how dual boot works nowadays.
This issue is related to grub, i switched to refind and then to systemd bootloader so I don’t remember the fix.
reFind is superior in this use case, as it will detect and boot any EFI media, even hot plugged.
You can boot Linux via USB but you cannot boot Windows that way. It’s a Windows problem with no solution.
Rule 1
Which rule tells you to shut up?
This likely is a Windows issue, but it seems they weren’t sure of that when they posted the question. Let’s just help them out
It’s a grub issue , try better ones
Try disabling fast boot in the UEFI. It might be that only the first disk is initialized so when GRUB tries to boot from the second it doesn’t find it.
Just run two copies of arch.
just a random guess…Windows boot entry probably expects to find drive via internal identifiers and now it is via a hub the hub might alter how drive is seen
I recommend you shrink the windows partition on the internal drive and install Linux in the then empty space. The extra disk you have can be used as and extra disk or you can create mount points for /home and other directories.
Microsoft does not recognize other operating systems as “equals” (WSL is not Linux being week. It’s making Linux a puppet controlled by Windows) and therefore they design everything Windows as it was the only OS in the world. Therefore keeping Windows will often require some extra acrobatics from you.
The problem seems to come from Windows. However, what you can do is open a terminal then type :
sudo os-prober
sudo grub-mkconfig -o /boot/grub/grub.cfg
Try to reboot and see what happens. If it doesn’t fix anything, then it might be that your Windows SSD should be mounted directly on the motherboard or, at the very least, on a USB-C port.
Sometimes, what happens is that the hub needs a driver which isn’t loaded by the DOS kernel by default. And since it isn’t loaded, Windows can’t recognise the hub so the hard drive containing itself can’t be found.
If that solution works, maybe you should swap your windows and your linux SSDs, see if the linux kernel can figure out the hub at boot.
Windows can’t boot from usb
Ugly workaround: boot Linux then boot windows in a vm doing drive pass through