linwin

Install Windows 10 alongside Linux without a USB drive

The usual way to add Windows next to Linux needs a USB stick of at least 8 GB, a tool to write it (Rufus, Ventoy, WoeUSB…), a trip to the BIOS and manual partitioning. linwin does all of it from Linux, with no USB drive.

How it works: a partition replaces the USB stick

  1. Make room: linwin creates three partitions in unallocated disk space (or by shrinking a Btrfs root online): MSR, Windows and an 8 GB FAT32 partition called WINSETUP.
  2. Copy the installer: the Windows 10 ISO is copied to WINSETUP, which acts as the USB stick. Required drivers (Intel RST/VMD, Wi-Fi, Ethernet) and the unattended answers are added.
  3. Boot it once: a one-time UEFI entry (BootNext) starts the installer on the next reboot; afterwards the PC goes back to its normal boot order.
  4. Unattended install: the installer finds the Windows partition by its exact byte offset, writes only there, creates your account, then reboots into Linux.
  5. Finish: Linux becomes the default again, WINSETUP is removed and Windows is added to the GRUB, systemd-boot, Limine or rEFInd menu.

Requirements

Steps

git clone https://github.com/2Deathadder/linwin.git
cd linwin
sudo ./linwin install
linwin check

Then, in the linwin app or on the command line:

linwin plan --size 100G
sudo linwin prepare --size 100G
sudo linwin stage --iso ~/Downloads/Win10_22H2_English_x64v1.iso --edition Home --user me
sudo linwin boot
sudo reboot

Windows installs itself (20 to 40 minutes), then the PC returns to Linux, which completes the setup.

Changed your mind?

sudo linwin cancel removes Windows at any step, even after installation: boot entries, partitions, then the space is given back (to Linux after a shrink, as free space otherwise).

Compared with the usual methods

USB stick (Rufus, Ventoy…)linwin
USB driverequirednone
Partitioningmanualautomatic and verified
SSD (VMD) and Wi-Fi driversfind them yourselfadded automatically
Linux boot menuoften needs repairLinux stays default, Windows added
Undomanuallinwin cancel

linwin is free software (GPL-3.0) and works on all common distributions.