Install SteamOS into already-created unallocated space on your SSD without wiping your existing Windows install.
Latest GUI build:
[!IMPORTANT] You must shrink your Windows partition yourself in Windows before booting the SteamOS recovery image. This tool does not resize partitions. It creates the SteamOS partition set inside prepared unallocated space and performs the install there.
Valve’s recovery image assumes it owns the whole disk. That is fine for a clean install, but wasteful if Windows is already set up and you only want to install SteamOS into free space you prepared ahead of time.
This project provides two ways to do that:
run.sh backend flow if you want to execute the installer manuallyesp, efi-A, efi-B, rootfs-A, rootfs-B, var-A, var-B, and homeDefault backend values:
TARGET_DISK=/dev/nvme0n1ESP_SIZE=256MEFI_SIZE=64MROOT_SIZE=11GVAR_SIZE=1GDo these in Windows before booting SteamOS recovery:
Settings > Privacy & Security > Device Encryption and turn it off. Wait for decryption to fully finish.Disk Management, shrink C:, and leave the new space as unallocated. Do not create a filesystem there.Control Panel > Power Options > Choose what the power buttons do, unlock the protected settings, and uncheck Turn on fast startup.Reference: - Arch Wiki: UTC in Microsoft Windows
Administrator Command Prompt command:
bat
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f
[!IMPORTANT] After applying the Windows UTC change, make sure the actual system time is correct before starting recovery. It is worth forcing Windows to resync the clock before rebooting. Change the time manually, then set it back correctly, or otherwise trigger a time resync, and verify the BIOS/system clock is correct before booting SteamOS recovery.
This is the recommended way to use the project.
steamos-installer-wizard build from the repository releases page.Properties, go to Permissions tab, and allow it to be executed as a program.steamos-installer-wizard file to run the wizard.Use this if you do not want to use the GUI, or if you want to simply run the installer script on its own (not really recomended tho).
bash
git clone https://github.com/Josh5/steamos_dual_boot_installer_patch
cd steamos_dual_boot_installer_patch
sudo ./run.sh
or if you want to run it in a single line:
bash
wget -O /tmp/run.sh https://raw.githubusercontent.com/Josh5/steamos_dual_boot_installer_patch/refs/heads/master/run.sh && sudo bash /tmp/run.sh
The script flow assumes you already know which disk and free-space region you want to use. It also will assume you are targeting the first disk.
https://youtu.be/8_6u0za39JA
https://www.youtube.com/watch?v=sVW2MKR5cNk
https://www.youtube.com/watch?v=pd76H_FATT4
Environment variables you can pass to run.sh:
TARGET_DISK (default /dev/nvme0n1)ESP_SIZE (default 256M)EFI_SIZE (default 64M)ROOT_SIZE (default 11G)VAR_SIZE (default 1G)Example:
sudo TARGET_DISK=/dev/nvme1n1 ROOT_SIZE=15G ./run.sh
[!WARNING] This is not an official Valve workflow. Use it at your own risk.
Created by Josh5 to save everyone from wasting a day reinstalling Windows just to try SteamOS next to it.
$ claude mcp add steamos_dual_boot_installer_patch \
-- python -m otcore.mcp_server <graph>