Dual boot with Windows

I have 2 drives, my main one with Garuda Linux and i now want to install Windows on my second one.
The problem i have is when i try to install windows on it it says "Windows cannot be installed in GPT partition style"
How to solve that?
(I have data on that disk, so i created a partition in NTFS format.)
My Bios says it is in Legacy+Uefi mode.

Kernel: 5.16.11-zen1-1-zen x86_64 bits: 64 compiler: gcc v: 11.2.0
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=040abae5-a66a-4e4e-96eb-be857e61b87b rw [email protected]
quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0
systemd.unified_cgroup_hierarchy=0 loglevel=3
Desktop: KDE Plasma 5.24.2 tk: Qt 5.15.2 info: latte-dock wm: kwin_x11
vt: 1 dm: SDDM Distro: Garuda Linux base: Arch Linux
Type: Desktop Mobo: Micro-Star model: B450M PRO-VDH MAX (MS-7A38) v: 8.0
serial: <superuser required> UEFI-[Legacy]: American Megatrends v: B.40
date: 11/07/2019
Info: model: AMD Ryzen 5 3600X bits: 64 type: MT MCP arch: Zen 2
family: 0x17 (23) model-id: 0x71 (113) stepping: 0 microcode: 0x8701013
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: 2x16 MiB
Speed (MHz): avg: 3994 high: 4363 min/max: 2200/4409 boost: enabled
scaling: driver: acpi-cpufreq governor: performance cores: 1: 3598 2: 3599
3: 3600 4: 3824 5: 3964 6: 4190 7: 4343 8: 4363 9: 4306 10: 4278 11: 3595
12: 4279 bogomips: 91209
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Type: itlb_multihit status: Not affected
Type: l1tf status: Not affected
Type: mds status: Not affected
Type: meltdown status: Not affected
Type: spec_store_bypass
mitigation: Speculative Store Bypass disabled via prctl
Type: spectre_v1
mitigation: usercopy/swapgs barriers and __user pointer sanitization
Type: spectre_v2 mitigation: Full AMD retpoline, IBPB: conditional,
STIBP: conditional, RSB filling
Type: srbds status: Not affected
Type: tsx_async_abort status: Not affected
Device-1: AMD Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT]
vendor: Tul driver: amdgpu v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
ports: active: DP-1,HDMI-A-1 empty: DP-2,DP-3 bus-ID: 2b:00.0
chip-ID: 1002:731f class-ID: 0300
Display: x11 server: X.Org v: compositor: kwin_x11 driver: X:
loaded: amdgpu,ati unloaded: modesetting,radeon alternate: fbdev,vesa
gpu: amdgpu display-ID: :0 screens: 1
Screen-1: 0 s-res: 4480x1440 s-dpi: 96 s-size: 1185x381mm (46.7x15.0")
s-diag: 1245mm (49")
Monitor-1: DisplayPort-0 mapped: DP-1 pos: right model: Asus VP228
serial: <filter> built: 2015 res: 1920x1080 hz: 60 dpi: 102 gamma: 1.2
size: 476x268mm (18.7x10.6") diag: 546mm (21.5") ratio: 16:9 modes:
max: 1920x1080 min: 720x400
Monitor-2: HDMI-A-0 mapped: HDMI-A-1 pos: primary,left
model: BenQ GL2706PQ serial: <filter> built: 2016 res: 2560x1440 hz: 60
dpi: 109 gamma: 1.2 size: 597x336mm (23.5x13.2") diag: 685mm (27")
ratio: 16:9 modes: max: 2560x1440 min: 640x480
OpenGL: renderer: AMD Radeon RX 5600 XT (NAVI10 DRM 3.44.0
5.16.11-zen1-1-zen LLVM 13.0.1)
v: 4.6 Mesa 21.3.7 direct render: Yes
Device-1: AMD Navi 10 HDMI Audio driver: snd_hda_intel v: kernel pcie:
gen: 4 speed: 16 GT/s lanes: 16 bus-ID: 2b:00.1 chip-ID: 1002:ab38
class-ID: 0403
Device-2: AMD Starship/Matisse HD Audio vendor: Micro-Star MSI
driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
bus-ID: 2d:00.4 chip-ID: 1022:1487 class-ID: 0403
Device-3: C-Media CM108 Audio Controller type: USB
driver: hid-generic,snd-usb-audio,usbhid bus-ID: 3-3:4 chip-ID: 0d8c:013c
class-ID: 0300
Sound Server-1: ALSA v: k5.16.11-zen1-1-zen running: yes
Sound Server-2: PulseAudio v: 15.0 running: no
Sound Server-3: PipeWire v: 0.3.47 running: yes
Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
vendor: Micro-Star MSI driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s
lanes: 1 port: f000 bus-ID: 25:00.0 chip-ID: 10ec:8168 class-ID: 0200
IF: enp37s0 state: down mac: <filter>
Device-2: Realtek RTL8811AU 802.11a/b/g/n/ac WLAN Adapter type: USB
driver: rtl88XXau bus-ID: 1-3:2 chip-ID: 0bda:a811 class-ID: 0000
serial: <filter>
IF: wlp3s0f0u3 state: up mac: <filter>
IF-ID-1: anbox0 state: down mac: <filter>
IF-ID-2: enp3s0f0u5 state: unknown speed: -1 duplex: half mac: <filter>
IF-ID-3: virbr0 state: down mac: <filter>
Device-1: Spreadtrum W_K120 type: USB driver: rndis_host v: kernel
bus-ID: 1-5:3 chip-ID: 1782:5d21 class-ID: 0a00 serial: <filter>
Report: bt-service: enabled,stopped note: tool can't run
Local Storage: total: 3.21 TiB used: 639.18 GiB (19.4%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/sda maj-min: 8:0 vendor: Toshiba model: DT01ACA300
size: 2.73 TiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
type: HDD rpm: 7200 serial: <filter> rev: ABB0 scheme: GPT
ID-2: /dev/sdb maj-min: 8:16 vendor: Samsung model: SSD 750 EVO 500GB
size: 465.76 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
type: SSD serial: <filter> rev: 1B6Q scheme: MBR
ID-3: /dev/sdc maj-min: 8:32 type: USB vendor: Lexar
model: USB Flash Drive size: 29.82 GiB block-size: physical: 512 B
logical: 512 B type: SSD serial: <filter> rev: 1100 scheme: MBR
SMART Message: Unknown USB bridge. Flash drive/Unsupported enclosure?
ID-1: / raw-size: 465.76 GiB size: 465.76 GiB (100.00%)
used: 176.02 GiB (37.8%) fs: btrfs dev: /dev/sdb1 maj-min: 8:17
ID-2: /home raw-size: 465.76 GiB size: 465.76 GiB (100.00%)
used: 176.02 GiB (37.8%) fs: btrfs dev: /dev/sdb1 maj-min: 8:17
ID-3: /var/log raw-size: 465.76 GiB size: 465.76 GiB (100.00%)
used: 176.02 GiB (37.8%) fs: btrfs dev: /dev/sdb1 maj-min: 8:17
ID-4: /var/tmp raw-size: 465.76 GiB size: 465.76 GiB (100.00%)
used: 176.02 GiB (37.8%) fs: btrfs dev: /dev/sdb1 maj-min: 8:17
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
ID-1: swap-1 type: zram size: 15.63 GiB used: 0 KiB (0.0%) priority: 100
dev: /dev/zram0
System Temperatures: cpu: N/A mobo: N/A gpu: amdgpu temp: 58.0 C
mem: 60.0 C
Fan Speeds (RPM): N/A gpu: amdgpu fan: 1312
Processes: 406 Uptime: 3m wakeups: 0 Memory: 15.63 GiB
used: 3.24 GiB (20.7%) Init: systemd v: 250 tool: systemctl Compilers:
gcc: 11.2.0 clang: 13.0.1 Packages: 2144 apt: 1 pacman: 2143 lib: 478
Shell: fish v: 3.3.1 default: Bash v: 5.1.16 running-in: konsole
inxi: 3.3.13
Garuda (2.5.5-1):
System install date:     2022-01-14
Last full system update: 2022-02-26
Is partially upgraded:   No
Relevant software:       NetworkManager
Windows dual boot:       <superuser required>
Snapshots:               Snapper
Failed units:            bluetooth-autoconnect.service systemd-oomd.socket

This isn't really an appropriate question for this forum because it sounds like you need help installing Windows.

The short answer is you need to turn of legacy boot mode in your BIOS. Legacy boot helps enable booting into an OS that uses MBR instead of GPT. When you boot in legacy mode Windows thinks it should be looking for an MBR, it sees a GPT and it fails.


I'm not really sure how advanced you are as a Linux user.

Dual-booting with Windows is a complexity that I never recommend for any Linux Newbie to Intermediate user to do. Microsoft's entire empire is built upon on Windows being the only ruler of your PC.

Windows is developed as the sole OS for the PC platform, and it does not have friendly terms with Linux at all. This is clearly evident that it tries to overwrite the boot process with its own every update (every second Tuesday of the month).

You may continue installing Windows using the MBR format and dual-boot with Garuda Linux that way. However, that temporary truce will end the moment Windows update schedule for the month comes.

It is a perpetual cycle of fighting Windows to behave, and no user deserves that treatment.


I tried that but when i do that, i cant start Garuda Linux anymore. Cause when i activate Uefi, i cannot use anything besides my ventoy usb stick to boot from

That is not my experience, i once had a dual boot with windows, and never had a problem with that.

1 Like

Dual booting requires Windows to be installed first, then Linux second.

Windows does not respect Grub, and will overwrite it with its own loader.

Again, it is a complexity that even advanced Linux users are challenged with. If you are new with Linux, I recommend you just run Windows inside a virtual machine under Garuda Linux.


I tried that. But i cant seem to get single GPU passthrough to work, and i mainly want to use windows as dualboot cause i want to play anti cheat games, and i heard that even with a VM anti cheat doesnt like that

1 Like

And you are here having to ask the community to help you with the complexity you entered into. Again, Garuda developers does not support dual-booting support forum threads. You are on your own, the community can throw you suggestions but YMMV. And in this case, you hit a brick wall.


In this case since they are using two separate disks, each disk will have to have its own EFI partition anyway. Normally I would say installing Windows first is a must, as you have said, but in this case it doesn't matter.

Your Garuda might be a little messed up from getting installed in legacy mode. I guess I'm not completely sure how to undo the damage. You can try chrooting into it from the live session with your Ventoy stick and try to reinstall grub, like this: Grub fails after update - #3 by librewish

EDIT: Make sure you turn off legacy boot before you try that.

For what it's worth, the dual boot guide on this forum worked great for my dual hard drive dual boot setup. On top of that guide, you should probably remember to perform the UEFI changes recommended in the Garuda installation instructions.

after i chrooted in it and typed the "sudo grub-install /dev/sda" command it says that it doesnt look like an EFI partition

I believe that instruction is specifically applicable to systems that are installed on legacy BIOS (as opposed to UEFI booted in legacy mode).

Skip down to the next part:

if its installed on efi

first mount the efi partition ie fat32 partition
from inside the chroot

sudo mount /dev/sdxy /boot/efi


sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=garuda --recheck

then update the grub

sudo update-grub

exit the chroot with


That has a similar outcome /boot/efi doesnt look like an EFI partition and that /boot/efi folder didnt even exist. I created one with mkdir

Make sure you are mounting the correct partition. The EFI partition is not the partition your Garuda install is on. If you aren't sure, run lsblk -f. The EFI partition will be formatted as FAT32.

i cant find it.

     squash 4.0                                                    0   100% /run/miso/sfs/livefs
     squash 4.0                                                    0   100% /run/miso/sfs/mhwdfs
     squash 4.0                                                    0   100% /run/miso/sfs/desktopfs
     squash 4.0                                                    0   100% /run/miso/sfs/rootfs
│    btrfs              5165058d-07cd-4c50-ada1-f2a53c6d00bc                
     ntfs         w     5B73E14F63AFD471                                    
     btrfs              040abae5-a66a-4e4e-96eb-be857e61b87b                
│    exfat  1.0   Ventoy
│                       794E-7E61                                           
│ └─ventoy
│    iso966 Jolie GARUDA_XFCE_SOARING_
│                       2021-08-09-10-52-37-00                     0   100% /run/miso/bootmnt
     vfat   FAT16 VTOYEFI

Hmm, I see what you mean. I've changed my advice, I think you should:

  • Forget the Windows installation for the moment, reformat the drive to btrfs.
  • Back up your Garuda install to the newly-minted and empty btrfs drive using rsync or similar
  • Reinstall Garuda
  • Restore from backup
  • Format the "Windows" drive again (or don't, Windows will probably do it for you) and proceed with the Windows installation.

can you tell me how to use rsync to backup my system? :sweat_smile: (and restore it afterwards)

Here you go: rsync - ArchWiki

The most important piece to back up will be anything in your user folder. That will include any files you have saved in your documents or downloads folders, as well as most customized settings you have saved for KDE or your browser or whatever.

Your system files, it's up to you if you want to back it up or not but if you start fresh you will have to reinstall whatever packages you are using. Not a big deal, but something to keep in mind.

The Arch Wiki example for a full system backup is this command run as root:

rsync -aAXHv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / */path/to/backup*

If you read through the article it explains the logic behind excluding those specific folders from the back up, plus mentions a few others you may wish to exclude.

To restore, you reverse the source (*/path/to/backup* becomes the source) and destination (/ becomes the destination).

Now that I think of it, I would fully update before you take the backup, and then also update the fresh installation before restoring the backup.

This isn't supported by officials, and You have to select mode=UEFI in rufus or whatever tool you are using for creating bootable usb

1 Like

Enough of a Windows primer. Not a Garuda problem. Topic closed.

EDIT: Thread reclassified at request of forum helper since it demonstrates the basic knowledge of MBR vs. GPT and the errors that may occur when not handled properly.

Topic is still closed as it has been adequately rehashed in past forum threads.