Recovering windows after trying to dual boot

I have used windows for a long time, so tried to install Garuda on my second drive. I booted to Garuda, and started setting up as much as I could, but then decided to shut down and attempt to boot to windows to try and fix some problems I was having. When I turned my computer on again though, I went to the BIOS, and there was no windows bootable drive. I still have access to Garuda without a wifi connection, so o checked in partition manager, and my whole windows drive is still fine, but I can’t boot to it from the bios.

Post garuda-inxi output, like the template you deleted describes please.

1 Like

I’ll get back to you on that after I type it all out.

This is what I got

Kernel: 6.5.9-zen2-1-zen arch: x86_64 bits: 64 compiler: gcc v: 13.2.1
clocksource: tsc available: hpet,acpi_pm
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=75c88a16-964a-4172-861e-2ec3a9ee7566 rw rootflags=subvol=@
quiet loglevel=3 ibt=off
Desktop: KDE Plasma v: 5.27.9 tk: Qt v: 5.15.11 wm: kwin_x11 vt: 2
dm: SDDM Distro: Garuda Linux base: Arch Linux
Machine:
Type: Desktop System: ASUS product: N/A v: N/A serial: <superuser required>
Mobo: ASUSTeK model: PRIME B450M-A II v: Rev X.0x
serial: <superuser required> UEFI: American Megatrends v: 4002
date: 02/24/2023
CPU:
Info: model: AMD Ryzen 5 5600 bits: 64 type: MT MCP arch: Zen 3+ gen: 4
level: v3 note: check built: 2022 process: TSMC n6 (7nm) family: 0x19 (25)
model-id: 0x21 (33) stepping: 2 microcode: 0xA20120A
Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache:
L1: 384 KiB desc: d-6x32 KiB; i-6x32 KiB L2: 3 MiB desc: 6x512 KiB
L3: 32 MiB desc: 1x32 MiB
Speed (MHz): avg: 3553 high: 4145 min/max: 2200/4467 boost: enabled
scaling: driver: acpi-cpufreq governor: performance cores: 1: 3500 2: 3500
3: 3500 4: 3500 5: 3500 6: 3500 7: 3500 8: 3500 9: 3500 10: 3500 11: 3500
12: 4145 bogomips: 83993
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Vulnerabilities: <filter>
Graphics:
Device-1: NVIDIA GA104 [GeForce RTX 3060 Ti Lite Hash Rate]
vendor: eVga.com. driver: nvidia v: 535.113.01 alternate: nouveau,nvidia_drm
non-free: 535.xx+ status: current (as of 2023-09) arch: Ampere code: GAxxx
process: TSMC n7 (7nm) built: 2020-23 pcie: gen: 2 speed: 5 GT/s lanes: 16
link-max: gen: 4 speed: 16 GT/s bus-ID: 09:00.0 chip-ID: 10de:2489
class-ID: 0300
Display: x11 server: X.Org v: 21.1.9 with: Xwayland v: 23.2.2
compositor: kwin_x11 driver: X: loaded: modesetting,nvidia
alternate: fbdev,nouveau,nv,vesa gpu: nvidia display-ID: :0 screens: 1
Screen-1: 0 s-res: 3200x1080 s-dpi: 92 s-size: 883x301mm (34.76x11.85")
s-diag: 933mm (36.73")
Monitor-1: DP-0 pos: primary,left res: 1920x1080 dpi: 81
size: 600x330mm (23.62x12.99") diag: 685mm (26.96") modes: N/A
Monitor-2: HDMI-0 pos: right res: 1280x1024 hz: 60 dpi: 86
size: 376x301mm (14.8x11.85") diag: 482mm (18.96") modes: N/A
Monitor-3: None-1-1 size-res: N/A modes: N/A
API: EGL v: 1.5 hw: drv: nvidia platforms: gbm: drv: nvidia
API: OpenGL v: 4.6.0 vendor: nvidia v: 535.113.01 glx-v: 1.4
direct-render: yes renderer: NVIDIA GeForce RTX 3060 Ti/PCIe/SSE2
memory: 7.81 GiB
API: Vulkan v: 1.3.269 layers: 11 device: 0 type: discrete-gpu name: NVIDIA
GeForce RTX 3060 Ti driver: nvidia v: 535.113.01 device-ID: 10de:2489
surfaces: xcb,xlib
Audio:
Device-1: NVIDIA GA104 High Definition Audio vendor: eVga.com.
driver: snd_hda_intel v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16
link-max: gen: 4 speed: 16 GT/s bus-ID: 09:00.1 chip-ID: 10de:228b
class-ID: 0403
Device-2: AMD Starship/Matisse HD Audio vendor: ASUSTeK
driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
bus-ID: 0b:00.4 chip-ID: 1022:1487 class-ID: 0403
API: ALSA v: k6.5.9-zen2-1-zen status: kernel-api with: aoss
type: oss-emulator tools: N/A
Server-1: PipeWire v: 0.3.83 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
vendor: ASUSTeK PRIME B450M-A driver: r8169 v: kernel pcie: gen: 1
speed: 2.5 GT/s lanes: 1 port: f000 bus-ID: 08:00.0 chip-ID: 10ec:8168
class-ID: 0200
IF: enp8s0 state: down mac: <filter>
Bluetooth:
Device-1: Cambridge Silicon Radio Bluetooth Dongle (HCI mode) driver: btusb
v: 0.8 type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 3-4:4
chip-ID: 0a12:0001 class-ID: e001
Report: btmgmt ID: hci0 rfk-id: 0 state: up address: <filter> bt-v: 4.0
lmp-v: 6 status: discoverable: no pairing: no class-ID: 7c0104
Drives:
Local Storage: total: 3.17 TiB used: 12.07 GiB (0.4%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Kingston model: SNV2S2000G
size: 1.82 TiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s
lanes: 4 tech: SSD serial: <filter> fw-rev: SBM02103 temp: 26.9 C
scheme: GPT
ID-2: /dev/sda maj-min: 8:0 vendor: Seagate model: ST31000528AS
size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 3.0 Gb/s
tech: HDD rpm: 7200 serial: <filter> fw-rev: CC46 scheme: GPT
ID-3: /dev/sdb maj-min: 8:16 vendor: TeamGroup model: T-FORCE 480GB
size: 447.13 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
tech: SSD serial: <filter> fw-rev: 9A0 scheme: GPT
Partition:
ID-1: / raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
used: 12.07 GiB (1.3%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
used: 576 KiB (0.2%) fs: vfat dev: /dev/sda1 maj-min: 8:1
ID-3: /home raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
used: 12.07 GiB (1.3%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
ID-4: /var/log raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
used: 12.07 GiB (1.3%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
ID-5: /var/tmp raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
used: 12.07 GiB (1.3%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
ID-1: swap-1 type: zram size: 31.22 GiB used: 0 KiB (0.0%) priority: 100
comp: zstd avail: lzo,lzo-rle,lz4,lz4hc,842 max-streams: 12 dev: /dev/zram0
Sensors:
System Temperatures: cpu: 39.0 C mobo: N/A gpu: nvidia temp: 41 C
Fan Speeds (rpm): N/A gpu: nvidia fan: 0%
Info:
Processes: 262 Uptime: 16m wakeups: 0 Memory: total: 32 GiB
available: 31.22 GiB used: 1.94 GiB (6.2%) Init: systemd v: 254
default: graphical tool: systemctl Compilers: gcc: 13.2.1 Packages:
pm: pacman pkgs: 1772 libs: 516 tools: octopi,paru Shell: fish v: 3.6.1
running-in: konsole inxi: 3.3.30
Garuda (2.6.17-1):
System install date:     2023-12-27
Last full system update: 2023-12-27
Is partially upgraded:   No
Relevant software:       snapper NetworkManager dracut nvidia-dkms
Windows dual boot:       No/Undetected
Failed units:~~~

Thank you. It’s much better than a “it doesn’t work” post. :smiley:

Now we know you have Nvidia and please note there have been noted Nvidia problems lately–search the forum :mag:

I don’t run Nvidia, but any number of other forum members do.

But, just off-hand–I would guess GRUB isn’t detecting Windows. The package os-prober should be installed & configured to detect Windows on boot. os-prober may need a flag changed. I run a slightly different OS, so some things may be a bit different.

1 Like

os-prober-btrfs to guarantee that other OS’s are picked up. os-prober has a tendency not to pick up other OS’s when the file system is BTRFS, so one needs to install os-prober-btrfs.

1 Like

Looks like os-prober-btrfs is already installed. Not sure what I should be doing next.

Search. Don’t rely on others.

I tried searching, which is why I’m stuck trying to get you to help.

Welcome to the Garuda forums! :_garuda_:
Have you checked whether GRUB_DISABLE_OS_PROBER=false is commented out in your /etc/default/grub? It’s disabled (commented out) by default.

1 Like

I don’t think this issue is related to os-prober. See here:

The issue is not that Windows is missing from the Grub menu (which is what os-prober does), it is that Windows is missing from the BIOS boot menu.

One possible cause for this would be if Windows is installed in legacy/BIOS mode, but Garuda is installed in UEFI mode. Let’s take a look and see if the Windows installation has an EFI partition:

sudo parted -l
2 Likes

This is the result of that command. the first drive is where I have Garuda installed, second drive is an empty one, third drive is where I have Windows installed.

Model: ATA ST31000528AS (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  Flags
1      2097kB  317MB   315MB   fat32              boot, esp
2      317MB   1000GB  1000GB  btrfs        root


Model: ATA T-FORCE 480GB (scsi)
Disk /dev/sdb: 480GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start  End  Size  File system  Name  Flags


Model: KINGSTON SNV2S2000G (nvme)
Disk /dev/nvme0n1: 2000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name                          Flags
1      1049kB  17.8MB  16.8MB               Microsoft reserved partition  msftres, no_automount
2      17.8MB  1948GB  1948GB  ntfs         Basic data partition          msftdata


Model: Unknown (unknown)
Disk /dev/zram0: 33.5GB
Sector size (logical/physical): 4096B/4096B
Partition Table: loop
Disk Flags:

Number  Start  End     Size    File system     Flags
1      0.00B  33.5GB  33.5GB  linux-swap(v1)

The Windows installation doesn’t have an EFI partition.

This is what it would look like if it did:

Number  Start   End     Size    File system  Name                          Flags
 1      1049kB  106MB   105MB   fat32        EFI system partition          boot, esp, no_automount
 2      106MB   123MB   16.8MB               Microsoft reserved partition  msftres, no_automount
 3      123MB   85.3GB  85.2GB  ntfs         Basic data partition          msftdata

There are a couple possible explanations for that, but the most likely is that Windows was installed in legacy/BIOS compatibility mode. If your BIOS has a CSM setting, or a “UEFI-only” mode, you may need to enable it to boot to the one and disable it to boot to the other.

Did you have to change any BIOS settings to get Garuda installed?

1 Like

I didn’t have to change anything in the BIOS to install Garuda, but I will try messing with the CSM setting.

I enable CSM, which gives me the option to boot from my drive that has windows installed, but forcing it to boot from that drive gives me the error “Reboot and select proper boot device or insert boot media in selected boot device and press a key”. I’m still able to boot to Garuda as normal though.

Update: forcing UEFI only gets rid of the option for my Windows drive, and forcing legacy only gets rid of the option for booting to Garuda.

Yes, that’s what I’m trying to say. UEFI and legacy/BIOS installations have incompatible boot routines. Typically you can spare yourself some grief by installing everything with one or the other, so you don’t have to hack around in the BIOS every time you want to switch OS’s.

Garuda can be installed in legacy/BIOS mode, but the trick is the installation media needs to be formatted intentionally to do that (the ISO detects if it is a UEFI or BIOS installation based on the boot media’s format). Ventoy supports both, so an easy way to do it would be to format your USB stick with Ventoy but choose the BIOS compatibility installation, then throw the Garuda ISO on there and reinstall.

When you force legacy mode does Windows boot, or are you still getting that error message?

1 Like

Forcing legacy gives me the same error message.

If your BIOS has an option for re-arranging the boot order of the devices, try setting the Windows device back on top and see if you get a different result.

My only option as a boot device when I force legacy is my Windows device, so the result is the same.

The setting to set the order of the boot devices is something else. It’s normally pretty easy to find, so if you don’t see it you probably don’t have it.

It’s possible the Windows boot file has been damaged. Actually, something kind of similar happened just a couple days ago in this thread: Garuda renamed my hard drive in UEFI after install and now can't boot it - #28 by flamming_python. In that topic, after running the installer in UEFI mode the boot file on the BIOS-mode Windows disk was damaged.

The solution ended up being to use Hiren’s Boot to get a live “rescue media” environment, then run some of the repair tools to restore the boot file.

1 Like

Thanks, I’ll try this out tomorrow. Would it maybe work to just use the windows repair tool from a bootable USB?