Free up space by removing Steam, Proton, and gaming-related packages.
# 1. Remove meta packages first (to avoid dependency errors)
sudo pacman -Rns cachyos-gaming-meta cachyos-gaming-applications
# 2. Remove Steam and all gaming packages
sudo pacman -Rns steam mangohud lib32-mangohud gamemode lib32-gamemode \
gamescope protontricks protonup-qt proton-cachyos-slr umu-launcher steam-devices
# 3. Remove ALL Steam data (games, Proton prefixes, configs, symlinks)
rm -rf ~/.local/share/Steam
rm -rf ~/.steam
# 4. Remove Mesa shader caches
rm -rf ~/.cache/mesa_shader_cache
rm -rf ~/.cache/mesa_shader_cache_dbNote:
pacman -Rnsmay warn about packages not being installed — that's fine, skip those.
Detected:
| Partition | Size | Type | Mount |
|---|---|---|---|
/dev/nvme0n1p1 |
300 MB | vfat (EFI) | /boot/efi |
/dev/nvme0n1p2 |
476.6 GB | btrfs | / (subvol @) |
- Drive: Samsung MZVLB512HBJQ (476.9 GB NVMe)
- Bootloader: GRUB (
/EFI/cachyos/grubx64.efi) - Btrfs subvolumes:
@(root),@home,@root,@srv,@cache,@tmp,@log
Boot from a CachyOS or Arch live USB — you cannot resize a mounted filesystem.
GParted supports btrfs shrink and handles both filesystem + partition resize in one operation.
- Boot into live USB
- Install GParted if not available:
sudo pacman -S gparted - Open GParted, select
/dev/nvme0n1 - Right-click
/dev/nvme0n1p2→ Resize/Move - Shrink it by ~100 GiB (drag the handle or type the new size)
- Click Apply
Warning: There are reported cases of btrfs corruption after GParted resize. Do NOT combine move + resize in a single operation — only resize. Back up important data before proceeding.
# 1. Mount the filesystem (any subvolume works for resize)
sudo mount -o subvolid=5 /dev/nvme0n1p2 /mnt
# 2. Check available space — you need at least 100 GiB free
sudo btrfs filesystem usage /mnt
# 3. Shrink filesystem with safety margin (110G instead of 100G)
sudo btrfs filesystem resize -110G /mnt
# 4. Verify new size
sudo btrfs filesystem usage /mnt
# 5. Unmount
sudo umount /mnt
# 6. Note the exact start sector of partition 2
sudo fdisk -l /dev/nvme0n1
# 7. Shrink partition by 100G using fdisk
# - Delete partition 2
# - Recreate with SAME start sector, but 100G less size
# - Do NOT remove the btrfs signature when prompted
sudo fdisk /dev/nvme0n1
# 8. Remount and expand filesystem to fill new partition
sudo mount -o subvolid=5 /dev/nvme0n1p2 /mnt
sudo btrfs filesystem resize max /mnt
# 9. Final verification
sudo btrfs filesystem usage /mnt
sudo umount /mntThe safety margin (shrink filesystem by 110G, partition by 100G, then
resize max) ensures the partition boundary never cuts into the filesystem.
- Get the Windows LTSC ISO
- Flash with Ventoy — just copy the ISO to the Ventoy USB drive
- Create TPM/Secure Boot bypass config on the Ventoy USB:
// ventoy/ventoy.json
{
"control": [
{ "VTOY_WIN11_BYPASS_CHECK": "1" }
]
}This bypasses TPM, Secure Boot, CPU, and RAM checks during Windows 11 installation.
Confirmed: UEFI (/sys/firmware/efi exists). Windows must be installed in UEFI mode (not Legacy/CSM).
- Boot from the Windows USB
- Choose Custom install
- Select the unallocated space — do NOT touch Linux partitions
- Windows will automatically create MSR (~16 MB) + Recovery (~500 MB) + Primary (C:) partitions in that space — this is normal
- Complete the installation
Your existing 300 MB EFI partition will be reused by Windows. It will add
EFI/Microsoft/alongside the existingEFI/cachyos/— GRUB files are NOT deleted. Windows will change the UEFI boot order to boot itself first.
Run all from an elevated (admin) command prompt:
# Disable hibernation + fast startup (saves 6-13 GB)
powercfg /h off
# Fix clock skew between Windows and Linux
# (Windows uses local time, Linux uses UTC — causes clock jump on OS switch)
reg add "HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /t REG_DWORD /d 1 /f
# Disable automatic repair (can interfere with dual-boot)
bcdedit /set {current} recoveryenabled noWindows will set itself as the default boot entry, bypassing GRUB. Boot back into CachyOS via live USB, then:
# Mount all btrfs subvolumes
sudo mount -o subvol=/@,noatime,compress=zstd /dev/nvme0n1p2 /mnt
sudo mount -o subvol=/@home,noatime,compress=zstd /dev/nvme0n1p2 /mnt/home
sudo mount -o subvol=/@root,noatime,compress=zstd /dev/nvme0n1p2 /mnt/root
sudo mount -o subvol=/@srv,noatime,compress=zstd /dev/nvme0n1p2 /mnt/srv
sudo mount -o subvol=/@cache,noatime,compress=zstd /dev/nvme0n1p2 /mnt/var/cache
sudo mount -o subvol=/@tmp,noatime,compress=zstd /dev/nvme0n1p2 /mnt/var/tmp
sudo mount -o subvol=/@log,noatime,compress=zstd /dev/nvme0n1p2 /mnt/var/log
sudo mount /dev/nvme0n1p1 /mnt/boot/efi
sudo arch-chroot /mnt
# Install ntfs-3g so os-prober can detect Windows
pacman -S ntfs-3g
# Uncomment os-prober in GRUB config
sed -i 's/#GRUB_DISABLE_OS_PROBER=false/GRUB_DISABLE_OS_PROBER=false/' /etc/default/grub
# Reinstall GRUB
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=cachyos
# Regenerate GRUB config (should now detect Windows)
grub-mkconfig -o /boot/grub/grub.cfg
# Verify boot entries
efibootmgr
exit
sudo umount -R /mnt
sudo rebootAlternative: CachyOS live ISO includes
cachy-chrootwhich auto-mounts everything from fstab. Runsudo cachy-chrootinstead of the manual mount steps above.
After reboot, GRUB should show both CachyOS and Windows. Pick either at boot.
Windows 11 LTSC is based on 24H2, which has been reported to delete the GRUB EFI boot entry on every boot. If this happens:
- Use BIOS boot menu (F12/F2) to select CachyOS manually
- Re-run
efibootmgrfrom CachyOS to re-add the entry - Consider switching to systemd-boot (CachyOS supports it) — reported to survive 24H2 reboots better than GRUB
A 2024 Windows security update broke Linux booting on some dual-boot systems with "Security Policy Violation" errors. This was fixed in May 2025 patches — make sure your LTSC install is up to date.
| Component | Size |
|---|---|
| Windows 11 LTSC clean install | ~30 GB |
| Pagefile | ~4-8 GB |
| The Crew Motorfest | ~42 GB |
| Total | ~76 GB |
100 GB partition gives comfortable room.