Dual-boot Windows 10 on seperate disk

Kernel: 6.1.7-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 12.2.1
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=1f167aae-c28a-42ea-a22c-819efdce3763 rw [email protected]
quiet quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0
loglevel=3 ibt=off
Desktop: KDE Plasma v: 5.26.5 tk: Qt v: 5.15.8 info: latte-dock
wm: kwin_x11 vt: 1 dm: SDDM Distro: Garuda Linux base: Arch Linux
Type: Desktop System: ASUS product: N/A v: N/A serial: <superuser required>
Mobo: ASUSTeK model: ROG STRIX X670E-E GAMING WIFI v: Rev 1.xx
serial: <superuser required> UEFI: American Megatrends v: 0514
date: 09/07/2022
Info: model: AMD Ryzen 7 7700X bits: 64 type: MT MCP arch: Zen 4 gen: 5
level: v4 note: check built: 2022 process: TSMC n5 (5nm) family: 0x19 (25)
model-id: 0x61 (97) stepping: 2 microcode: 0xA601201
Topology: cpus: 1x cores: 8 tpc: 2 threads: 16 smt: enabled cache:
L1: 512 KiB desc: d-8x32 KiB; i-8x32 KiB L2: 8 MiB desc: 8x1024 KiB
L3: 32 MiB desc: 1x32 MiB
Speed (MHz): avg: 4631 high: 5539 min/max: 3000/5572 boost: enabled
scaling: driver: acpi-cpufreq governor: performance cores: 1: 3167 2: 4500
3: 4238 4: 5532 5: 4500 6: 5532 7: 5530 8: 4410 9: 4500 10: 3172 11: 5539
12: 4500 13: 5478 14: 4500 15: 4500 16: 4500 bogomips: 143723
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Vulnerabilities: <filter>
Device-1: AMD Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] vendor: ASUSTeK
driver: amdgpu v: kernel arch: RDNA-2 code: Navi-2x process: TSMC n7 (7nm)
built: 2020-22 pcie: gen: 4 speed: 16 GT/s lanes: 16 ports:
active: DP-1,DP-2,DP-3 empty: HDMI-A-1 bus-ID: 03:00.0 chip-ID: 1002:73bf
class-ID: 0300
Display: x11 server: X.Org v: 21.1.6 with: Xwayland v: 22.1.7
compositor: kwin_x11 driver: X: loaded: amdgpu unloaded: modesetting,radeon
alternate: fbdev,vesa dri: radeonsi gpu: amdgpu display-ID: :0 screens: 1
Screen-1: 0 s-res: 5120x1080 s-dpi: 96 s-size: 1354x285mm (53.31x11.22")
s-diag: 1384mm (54.48")
Monitor-1: DP-1 mapped: DisplayPort-0 pos: bottom-l model: Sceptre J20
built: 2021 res: 1600x900 dpi: 93 gamma: 1.2 size: 435x237mm (17.13x9.33")
diag: 496mm (19.5") ratio: 16:9 modes: max: 1600x900 min: 720x400
Monitor-2: DP-2 mapped: DisplayPort-1 pos: bottom-r model: Sceptre J20
built: 2021 res: 1600x900 dpi: 93 gamma: 1.2 size: 435x237mm (17.13x9.33")
diag: 496mm (19.5") ratio: 16:9 modes: max: 1600x900 min: 720x400
Monitor-3: DP-3 mapped: DisplayPort-2 pos: primary,top-center
model: AOC 27G2G8 serial: <filter> built: 2021 res: 1920x1080 hz: 60 dpi: 82
gamma: 1.2 size: 598x336mm (23.54x13.23") diag: 686mm (27") ratio: 16:9
modes: max: 1920x1080 min: 720x400
API: OpenGL v: 4.6 Mesa 22.3.3 renderer: AMD Radeon RX 6800 XT (navi21
LLVM 15.0.7 DRM 3.49 6.1.7-zen1-1-zen) direct render: Yes
Device-1: AMD Navi 21/23 HDMI/DP Audio driver: snd_hda_intel v: kernel
bus-ID: 3-6:4 pcie: gen: 4 chip-ID: 0b05:1a52 class-ID: 0300 speed: 16 GT/s
lanes: 16 bus-ID: 03:00.1 chip-ID: 1002:ab28 class-ID: 0403
Device-2: ASUSTek USB Audio type: USB
driver: hid-generic,snd-usb-audio,usbhid
Sound API: ALSA v: k6.1.7-zen1-1-zen running: yes
Sound Server-1: PulseAudio v: 16.1 running: no
Sound Server-2: PipeWire v: 0.3.64 running: yes
Device-1: Intel Wi-Fi 6 AX210/AX211/AX411 160MHz driver: iwlwifi v: kernel
pcie: gen: 2 speed: 5 GT/s lanes: 1 bus-ID: 0b:00.0 chip-ID: 8086:2725
class-ID: 0280
IF: wlp11s0 state: up mac: <filter>
Device-2: Intel Ethernet I225-V vendor: ASUSTeK driver: igc v: kernel
pcie: gen: 2 speed: 5 GT/s lanes: 1 port: N/A bus-ID: 0c:00.0
chip-ID: 8086:15f3 class-ID: 0200
IF: enp12s0 state: down mac: <filter>
Device-1: Intel AX210 Bluetooth type: USB driver: btusb v: 0.8 bus-ID: 1-9:3
chip-ID: 8087:0032 class-ID: e001
Report: bt-adapter ID: hci0 rfk-id: 2 state: up address: <filter>
Local Storage: total: 1.39 TiB used: 246.7 GiB (17.3%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Western Digital
model: WD BLACK SN770 1TB size: 931.51 GiB block-size: physical: 512 B
logical: 512 B speed: 63.2 Gb/s lanes: 4 type: SSD serial: <filter>
rev: 731030WD temp: 49.9 C scheme: GPT
ID-2: /dev/sda maj-min: 8:0 vendor: Seagate model: ST500DM002-1SB10A
size: 465.76 GiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
type: HDD rpm: 7200 serial: <filter> rev: HPH3 scheme: GPT
ID-3: /dev/sdb maj-min: 8:16 type: USB vendor: SanDisk model: Cruzer Spark
size: 28.65 GiB block-size: physical: 512 B logical: 512 B type: N/A
serial: <filter> rev: 1.00 scheme: MBR
SMART Message: Unknown USB bridge. Flash drive/Unsupported enclosure?
ID-1: / raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
used: 246.7 GiB (26.5%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
used: 608 KiB (0.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
ID-3: /home raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
used: 246.7 GiB (26.5%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-4: /var/log raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
used: 246.7 GiB (26.5%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-5: /var/tmp raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
used: 246.7 GiB (26.5%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
ID-1: swap-1 type: zram size: 15.36 GiB used: 0 KiB (0.0%) priority: 100
dev: /dev/zram0
System Temperatures: cpu: 45.4 C mobo: N/A gpu: amdgpu temp: 55.0 C
mem: 54.0 C
Fan Speeds (RPM): N/A gpu: amdgpu fan: 0
Processes: 390 Uptime: 2m wakeups: 0 Memory: 15.36 GiB
used: 3.91 GiB (25.5%) Init: systemd v: 252 default: graphical
tool: systemctl Compilers: gcc: 12.2.1 clang: 15.0.7 Packages: pm: pacman
pkgs: 2073 libs: 575 tools: gnome-software,octopi,pamac,paru Shell: fish
v: 3.6.0 default: Bash v: 5.1.16 running-in: konsole inxi: 3.3.24
Garuda (2.6.14-1):
System install date:     2022-12-27
Last full system update: 2023-02-03
Is partially upgraded:   Yes
Relevant software:       snapper NetworkManager mkinitcpio
Windows dual boot:       No/Undetected
Failed units:

I dual-booted Windows 10 with Ubuntu on an old desktop (separate HDDs) and took the Windows drive out and put it into my current build. How can I modify the bootloader to recognize and boot into windows? On my old build it would boot into the windows boot manager, but I'm not certain if that's on the HDD or not. The HDD with windows on it is /dev/sda. Any help is appreciated.

Try mounting the EFI partition of the Windows disk and run sudo update-grub.

fdisk doesn't show an EFI partition. What I get is

Disk /dev/sda: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: ST500DM002-1SB10
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 69C07282-8D91-43AD-A8D0-5826126B4E4C

Device     Start       End   Sectors   Size Type
/dev/sda1   2048     34815     32768    16M Microsoft reserved
/dev/sda2  34816 976773119 976738304 465.7G Microsoft basic data

Is the Windows boot partition on the other device? It is not going to work without it.


i have a dual-OS system with 5 separate drives, win7 and Garuda.

you gotta have the windows disk device plugged into a sata socket or grub won't see it to add it to the boot menu.

Did you dual boot windows and your former linux distro on the same drive? Then Linux would dual boot using the microsoft efi partition.
It's actually better to dual boot using a separate drive for linux because windows updates would sometimes delete your GRUB menu on the efi partition. To do that manually create a 512Mb efi partition, mount it as /boot/efi and assign it the boot flag and then create a root partition, mount it as / and assign it with the root flag. Then the installer will create a grub menu on the efi partition. check if your windows drive is recognised with sudo update-grub.


It is on a separate drive. When I get time I'll check if the windows boot partition is actually installed on its own drive or if it's somewhere on the old PC.

The instructions I gave for installing Garuda linux for dual booting with Windows only apply if you have a UEFI based computer. Assuming you have a UEFI bios, be sure to install Garuda linux in UEFI mode. Check your Bios settings: Disable secure boot, enable UEFI mode. Make sure your linux drive is the first drive to boot from. If necessary you can change the boot order in the boot menu. Good luck! :smile: