Adriel's Lab > Homelab > Triple-Boot Runbook
[ glyph ]
Triple-Boot Runbook
Windows, CachyOS, and Gentoo, one laptop, none of them stepping on each other.
Aero 15 laptop · nvme0n1 931GB (CachyOS) · nvme1n1 466GB (Gentoo, untouched)
The goal was Lightroom on Windows without giving up either Linux install. The real risk in a
Windows-alongside-Linux setup isn’t the install itself — it’s Windows Setup quietly
taking over the EFI boot entry that another OS depends on. Two phases, in order.
Phase 1 — make room on the CachyOS drive
-
Shrink the btrfs partition from GParted Live
nvme0n1p2 goes from 931GiB down to 625,664 MiB (~611GiB), freeing 320GiB
for Windows. 214GiB was in use at the time, against GParted’s practical shrink floor of
about 230GiB — close enough to plan around, not close enough to skip a backup first.
931GB → 611GB · 320GB freed · live-boot only, never shrink a mounted root
-
Verify the two Linux installs are already independent
Before touching anything: confirm CachyOS’s GRUB lives entirely on its
own EFI System Partition (
\EFI\CACHYOS\GRUBX64.EFI), with no dependency on the
Gentoo drive. That independence is what makes the next phase safe.
per-drive ESP · no cross-drive bootloader dependency
-
The one hard rule
Do not touch the ESP, do not touch the Gentoo drive, and leave zero free
space preceding the CachyOS partition — shrink from the end only.
ESP untouched · Gentoo untouched · shrink from the tail only
Phase 2 — install Windows without losing Gentoo
-
Physically remove the Gentoo drive first
The actual hazard: Windows Setup will happily write its bootloader to
whichever drive it feels like, including hijacking an entry that belongs to another OS. Pulling
the Gentoo M.2 out of the laptop for the duration of the Windows install removes the option
entirely — the safest fix available.
the single non-negotiable step
-
An unattended answer file for the parts that don’t need a decision
An
autounattend.xml strips telemetry and default bloatware,
sets the hardware clock to UTC (so it doesn’t fight with Linux over local-vs-UTC time),
and disables hibernation — a hibernated Windows can corrupt a btrfs partition it has no
business touching if the two ever share a drive.
UTC clock · hibernation off · bloat stripped at install time
-
Shared photo library over NTFS
Lightroom needs a library Windows can write to directly, and Windows
can’t read btrfs — so the working library lives on the new NTFS partition, not on
the Linux side.
NTFS for the shared library · btrfs stays Linux-only
-
Put the Gentoo drive back and verify all three
Reinstall the drive, boot into the firmware boot menu, and confirm all three
operating systems appear as independent entries before trusting the setup day-to-day.
3 OSes · 3 independent boot entries · verified, not assumed
Result: Windows 11, CachyOS, and Gentoo on one laptop, each on
its own storage, none of them able to break another’s bootloader.