How to dual boot windows 11 after garuda

Hi, so i am in need of some assistance, as how to dual boot windows 11 with an already installed Garuda system, prefferably in some step for step format. since i am a bit confused and new to this.

I have installed Garuda already.
I will link some topics i already visisted.

https://wiki.archlinux.org/title/Dual_boot_with_Windows#Windows_UEFI_vs_BIOS_limitations

It seems i use EUFI bootloader.

garuda-inxi
System:
Kernel: 6.11.3-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 14.2.1
clocksource: tsc avail: acpi_pm
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=34819b7f-d663-441b-bdcc-f1157c3768e0 rw rootflags=subvol=@
quiet loglevel=3 ibt=off
Desktop: KDE Plasma v: 6.2.1 tk: Qt v: N/A info: frameworks v: 6.7.0
wm: kwin_x11 vt: 2 dm: SDDM Distro: Garuda base: Arch Linux
Machine:
Type: Desktop Mobo: Gigabyte model: B660M DS3H DDR4 v: x.x
serial: <superuser required> uuid: <superuser required> UEFI: American
Megatrends LLC. v: F6 date: 08/08/2022
CPU:
Info: model: 12th Gen Intel Core i3-12100F bits: 64 type: MT MCP
arch: Alder Lake gen: core 12 level: v3 note: check built: 2021+
process: Intel 7 (10nm ESF) family: 6 model-id: 0x97 (151) stepping: 5
microcode: 0x36
Topology: cpus: 1x dies: 1 clusters: 4 cores: 4 threads: 8 tpc: 2
smt: enabled cache: L1: 320 KiB desc: d-4x48 KiB; i-4x32 KiB L2: 5 MiB
desc: 4x1.2 MiB L3: 12 MiB desc: 1x12 MiB
Speed (MHz): avg: 800 min/max: 800/4300 scaling: driver: intel_pstate
governor: powersave cores: 1: 800 2: 800 3: 800 4: 800 5: 800 6: 800 7: 800
8: 800 bogomips: 52838
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Vulnerabilities: <filter>
Graphics:
Device-1: Advanced Micro Devices [AMD/ATI] Navi 22 [Radeon RX 6700/6700
XT/6750 XT / 6800M/6850M XT] vendor: Gigabyte 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-2 empty: DP-1,
HDMI-A-1, HDMI-A-2, Writeback-1 bus-ID: 03:00.0 chip-ID: 1002:73df
class-ID: 0300
Display: x11 server: X.Org v: 21.1.13 with: Xwayland v: 24.1.3
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: 3440x1440 s-dpi: 96 s-size: 910x381mm (35.83x15.00")
s-diag: 987mm (38.84")
Monitor-1: DP-2 mapped: DisplayPort-1 model: MSI MAG342CQR
serial: <filter> built: 2021 res: 3440x1440 dpi: 110 gamma: 1.2
size: 797x333mm (31.38x13.11") diag: 864mm (34") modes: max: 3440x1440
min: 720x400
API: EGL v: 1.5 hw: drv: amd radeonsi platforms: device: 0 drv: radeonsi
device: 1 drv: swrast gbm: drv: kms_swrast surfaceless: drv: radeonsi x11:
drv: radeonsi inactive: wayland
API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 24.2.4-arch1.1
glx-v: 1.4 direct-render: yes renderer: AMD Radeon RX 6700 XT (radeonsi
navi22 LLVM 18.1.8 DRM 3.59 6.11.3-zen1-1-zen) device-ID: 1002:73df
memory: 11.72 GiB unified: no
API: Vulkan v: 1.3.295 layers: 7 device: 0 type: discrete-gpu name: AMD
Radeon RX 6700 XT (RADV NAVI22) driver: mesa radv v: 24.2.4-arch1.1
device-ID: 1002:73df surfaces: xcb,xlib device: 1 type: cpu name: llvmpipe
(LLVM 18.1.8 256 bits) driver: mesa llvmpipe v: 24.2.4-arch1.1 (LLVM
18.1.8) device-ID: 10005:0000 surfaces: xcb,xlib
Audio:
Device-1: Intel Alder Lake-S HD Audio vendor: Gigabyte driver: snd_hda_intel
v: kernel alternate: snd_soc_avs,snd_sof_pci_intel_tgl bus-ID: 00:1f.3
chip-ID: 8086:7ad0 class-ID: 0403
Device-2: Advanced Micro Devices [AMD/ATI] Navi 21/23 HDMI/DP Audio
driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
bus-ID: 03:00.1 chip-ID: 1002:ab28 class-ID: 0403
API: ALSA v: k6.11.3-zen1-1-zen status: kernel-api with: aoss
type: oss-emulator tools: N/A
Server-1: PipeWire v: 1.2.5 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 RTL8125 2.5GbE vendor: Gigabyte driver: r8169 v: kernel
pcie: gen: 2 speed: 5 GT/s lanes: 1 port: 3000 bus-ID: 06:00.0
chip-ID: 10ec:8125 class-ID: 0200
IF: enp6s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
Info: services: NetworkManager, smbd, sshd, systemd-timesyncd,
wpa_supplicant
Drives:
Local Storage: total: 931.51 GiB used: 712.14 GiB (76.4%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Western Digital
model: WD Blue SN570 1TB size: 931.51 GiB block-size: physical: 512 B
logical: 512 B speed: 31.6 Gb/s lanes: 4 tech: SSD serial: <filter>
fw-rev: 234110WD temp: 33.9 C scheme: GPT
Partition:
ID-1: / raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
used: 712.14 GiB (76.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: 584 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: 712.14 GiB (76.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: 712.14 GiB (76.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: 712.14 GiB (76.5%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
ID-1: swap-1 type: zram size: 15.46 GiB used: 0 KiB (0.0%) priority: 100
comp: zstd avail: lzo,lzo-rle,lz4,lz4hc,842 max-streams: 8 dev: /dev/zram0
Sensors:
System Temperatures: cpu: 34.0 C mobo: 31.0 C gpu: amdgpu temp: 53.0 C
mem: 46.0 C
Fan Speeds (rpm): N/A gpu: amdgpu fan: 986
Info:
Memory: total: 16 GiB available: 15.46 GiB used: 5.79 GiB (37.5%)
Processes: 319 Power: uptime: 37m states: freeze,mem,disk suspend: deep
avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
suspend, test_resume image: 6.17 GiB services: org_kde_powerdevil,
power-profiles-daemon, upowerd Init: systemd v: 256 default: graphical
tool: systemctl
Packages: 1823 pm: pacman pkgs: 1822 libs: 521 tools: aura,
gnome-software, octopi, pamac, paru pm: rpm pkgs: 1 Compilers: gcc: 14.2.1
Shell: garuda-inxi default: fish v: 3.7.1 running-in: konsole inxi: 3.3.36
Garuda (2.6.26-1):
System install date:     2024-07-22
Last full system update: 2024-10-16
Is partially upgraded:   No
Relevant software:       snapper NetworkManager dracut
Windows dual boot:       Probably (Run as root to verify)
Failed units:

It seems i need to do this:


    If you want to dual-boot with Windows (this is unsupported)! :warning:
    Make sure you install Windows first. This is technically optional if you have a UEFI system and know your way around changing the default bootloader, but installing Windows first is the easier way.
    Make sure to select “install alongside” in the partitioning step in the installer.

If you install M$ as second OS, you must later repair the grub part with the live ISO via chroot.

Just search in the forum, it’s explained often.

Using on one drive is possible, repair just grub.

lsblk -f | grep 'nvme|NAME'
NAME        FSTYPE FSVER LABEL       UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
nvme0n1                                                                                  
├─nvme0n1p1 vfat   FAT32 SYSTEM_DRV  94BA-ECE1                             223,9M    13% /boot/efi
├─nvme0n1p2                                                                              
├─nvme0n1p3 ntfs         Windows-SSD A2A8BB95A8BB6707                       77,6G    40% /run/media/sgs/Windows-SSD
├─nvme0n1p4 ntfs         WINRE_DRV   B8F6BC25F6BBE234                                    
├─nvme0n1p5 btrfs        KDE         fc62cc44-07ab-497b-ac89-15704c290993   62,9G    82% /var/log
├─nvme0n1p6 btrfs        Sway        164f2dfe-ce11-4d5f-aa4c-ce24aa6cdd6a   33,1G    32% /mnt/nvme0n1p6
├─nvme0n1p7 btrfs        i3wm        21e02e96-0ed6-4629-9a39-85ffee7a4359  186,7G    38% /run/media/sgs/i3wm
└─nvme0n1p8 btrfs        Hyprland    b147dd48-f302-484d-80b0-661e7ff40a76   54,2G    56% /run/media/sgs/Hyprland

If something goes wrong, and you can’t help your self,
we wrote before, dual-boot with Windows is unsupported :warning:

((Dual Booting Windows 11 with Garuda Linux - #3 by SGS))

So if i understand correctly, i create a partition for windows, but what do i do then?
By the way i should still have windows 11 from before i switched to Linux and i still see ‘windows’ in the boot menu sequence.

And after i manage to install windows, do i follow this to fix the GRUB?

If you see it, you can boot from there (grub menu) if not just try in terminal

sudo update-grub

Check the log if M$ is included.

But I think its all fine for you.

All right, so i do this after i created a partition for it, correct?
This is what i got after i used sudo update-grub, i do not see any windows stuff.

Generating grub configuration file ...
Found theme: /usr/share/grub/themes/garuda-dr460nized/theme.txt
Found linux image: /boot/vmlinuz-linux-zen
Found initrd image: /boot/initramfs-linux-zen.img
Found fallback initrd image(s) in /boot:  initramfs-linux-zen-fallback.img
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Adding boot menu entry for UEFI Firmware Settings ...
Detecting snapshots ...
Found snapshot: 2024-10-17 14:11:33 | @/.snapshots/188/snapshot | post | bind cachyos-ananicy-rules-git discover electron32 eza github-cli gptfdi |
Found snapshot: 2024-10-17 14:11:28 | @/.snapshots/187/snapshot | pre  | /usr/bin/pamac-daemon                                                    |
Found snapshot: 2024-10-17 14:11:12 | @/.snapshots/186/snapshot | post | archlinux-keyring                                                        |
Found snapshot: 2024-10-17 14:11:08 | @/.snapshots/185/snapshot | pre  | /usr/bin/pamac-daemon                                                    |
Found snapshot: 2024-10-16 10:37:18 | @/.snapshots/184/snapshot | post | shotcut                                                                  |
Found snapshot: 2024-10-16 10:37:17 | @/.snapshots/183/snapshot | pre  | /usr/bin/pamac-daemon                                                    |
Found snapshot: 2024-10-16 07:37:07 | @/.snapshots/182/snapshot | post | ladspa movit qt6-charts shotcut swh-plugins                              |
Found snapshot: 2024-10-16 07:37:05 | @/.snapshots/181/snapshot | pre  | /usr/bin/pamac-daemon                                                    |
Found snapshot: 2024-10-16 03:15:57 | @/.snapshots/180/snapshot | post | ada attica baloo bluedevil bluez-qt breeze breeze-icons cachyos-ananicy- |
Found snapshot: 2024-10-16 03:15:22 | @/.snapshots/179/snapshot | pre  | /usr/bin/pamac-daemon                                                    |
Found 10 snapshot(s)
Unmount /tmp/grub-btrfs.hkxAC3TCVC .. Success
Found memtest86+ image: /boot/memtest86+/memtest.bin
/usr/bin/grub-probe: warning: unknown device type nvme0n1.
done

Also. do i need to follow that chroot post i shared after?

Post command and log from terminal

lsblk -f 
efibootmgr

BTW, we dont feed by spoon or step by step guide, dual boot is not supported by Garuda LInux. :slight_smile:

It is explained how to do in Forums and the WWW.

1 Like
lsblk -f
efibootmgr
NAME        FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda
zram0                                                                              [SWAP]
nvme0n1
├─nvme0n1p1 vfat   FAT32       A8D9-DF01                             298,8M     0% /boot/efi
└─nvme0n1p2 btrfs              34819b7f-d663-441b-bdcc-f1157c3768e0  219,4G    76% /var/log
/var/tmp
/var/cache
/home
/root
/srv
/
BootCurrent: 0002
Timeout: 1 seconds
BootOrder: 0002,0000,0003
Boot0000* Windows Boot Manager  HD(1,GPT,4c5d187a-2d56-48f9-9876-e584e1541060,0x800,0x32000)/\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI57494e444f5753000100000088000000780000004200430044004f0042004a004500430054003d007b00390064006500610038003600320063002d0035006300640064002d0034006500370030002d0061006300630031002d006600330032006200330034003400640034003700390035007d00000031000100000010000000040000007fff0400
Boot0002* Garuda        HD(1,GPT,1c2c6fe4-2278-493f-b038-cb378bac87d9,0x1000,0x96000)/\EFI\GARUDA\GRUBX64.EFI
Boot0003* UEFI OS       HD(1,GPT,1c2c6fe4-2278-493f-b038-cb378bac87d9,0x1000,0x96000)/\EFI\BOOT\BOOTX64.EFI0000424f

I dont want to be spoon fed, but i am just trying to get it to work, i find it hard to understand.

Not to be rude, but that is why we do not recommend dual booting with Windows for our users. Only those proficient with Linux should dual boot, as breakages will inevitably ocurr with the boot loaders in a dual boot scenario. Unless you know how to handle these repeated boot failures yourself, you really shouldn’t be dual booting. Expecting us to hold your hand and provide a step by step guided solution is hardly fair. Would you expect free technical support from Windows if you broke your Windows installation by installing Linux?

2 Likes

All right, that is fair enough, i thought the linux OS not showing in boot loader was something you just had to fix one time and be done with, also, if you use 2 seperate SSD’s, these issues you mentioned will still come up?

Far less likely, but still possible.

I use an SSD hotswap rack to juggle OS’s, but I only have one OS at a time fully inserted into the rack.

4 Likes

When doing DB I recommend
1st install windows make the partition size w/e you want.

  1. make sure you go an shut off secure boot an all the other things you. before shutting of secure boot make sure Bitlocker is shut off. As during install it can be set to auto enable. Also make sure the things in power settings in control panel are off as well.

  2. Then change its partition size in window. (note better if two drivers if not things may break over time)

  3. After you shrink windows on the free space make a formatted empty partition in like exfat or something just so its easy to spot later.

  4. Next install garuda when the installer gets to the partition section click replace partition.

  5. Then click the non windows one you made as exfat or w/e format.

  6. Then install an you are good to go.

Remember windows updates can break things so if anything shut them off an just update the windows defender. Yes if you don’t know what your in for it can be less safe but. Just avoid sketchy sites if you can. If you just use windows for games this way is fine.

You might also want to disable updates in Windows 11 if you don’t want windows to mess with your efi boot entries.

Also disable fast startup in Windows 11.

1 Like

Off topic, but which solution do you use for hot swapping SSDs? I thought about doing that with an Icy dock PCIe NVMe adapter but wasn’t sure how it would perform compared to directly connected NVMe.

I just use standard SSD’s in a 6 bay Icy Dock. I have two 6 bay Icy Docks in two different computers using the same model of MOBO’s. Thay way I can easily swap drives/OS’s seamlessly between both computers.

I don’t require the highest performance for my simple computing needs, so I don’t bother with using NVMe drives. So sorry, but I can’t help you with any insight into how performant that type of setup would be.

2 Likes

No worries thanks for your answer. I have been thinking of building a second PC like you have, but have one be my main performance PC and the other an Icy dock setup like you have which I can use to mess around with different configurations and distros without worrying about my main PC.

Sorry to derail the topic so much. Only thing I have to offer on the dual boot setup in question is that I have always had an easier time time getting dual-booting to work by installing Windows first due to it not playing well with other operating systems. I know its not ideal but could you backup your /home folder, any config files you want in /etc to a external USB? Then do a reinstall with Windows first followed by Garuda?

Well you do not need to install Windows FIRST and then Garuda. I would say if you have an existing Garuda installation, then:

  1. Open up KDE partition manager.
  2. Select the Garuda EFI system partiton and right click on it.
  3. Click on Properties in the context menu.
  4. When the menu appears, untick the boot option in the flags section and click on OK/Apply (dont worry this wont do any harm)
  5. Boot up a Linux USB and resize the Garuda partition to leave space for Windows, you may skip this if you already have space for Windows install.
  6. Reboot into Windows USB and during install select custom install which allows you to partition, make sure you DO NOT partition or resize any linux partition from within Windows. Without messing with anything, just select the empty space you have for the Windows install and complete installation.
  7. Reboot into BIOS and re-order the boot entry putting Garuda at top. If Windows deletes your entries(which it shouldn’t) then you may have to do a manual boot in Garuda which isn’t all tough.
  8. Boot into Garuda.
  9. Enable OS_PROBER in grub if it isn’t enabled and run sudo update-grub in the terminal.
  10. Done !

Now you can check to see if Windows appears in the grub menu at boot. Windows 11 has a habit of sometimes deleting other boot entries so I recommend you to install Win X Lite 11 or Windows 11 Ghost Spectre instead of vanilla Windows 11. These versions are far more stable and have updates disabled by default, you may still need to disable fast startup in these custom versions. These versions also have performance improvements which are far better than vanilla Windows.

I used Win X Lite quite a lot so from personal experience no privacy issues or malicious experience for me.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.