linwin

Windows 10 alongside Ubuntu, Linux Mint or Debian, without a USB drive

Ubuntu, Linux Mint and Debian install by default with an ext4 root and the GRUB boot loader. linwin supports this setup; the only thing to check is the available space.

1. Check the space

ext4 cannot be shrunk while Linux is running, so linwin uses the disk's unallocated space. Check what is available:

linwin check

The “unallocated space” line shows the maximum possible Windows size. If it is too small, boot once into a live system (for example the Ubuntu install stick, with GParted) to shrink the Linux partition, then run linwin again: it will use the freed space. In this mode linwin does not modify any existing partition.

2. Install linwin

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

Missing tools (wimtools, cabextract, dosfstools, efibootmgr) are installed automatically with apt. The graphical interface works on Ubuntu 24.04+ and Debian 13+ (packages python3-gi gir1.2-gtk-4.0 gir1.2-adw-1); otherwise the command line does exactly the same.

3. Install Windows

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

4. The GRUB menu

Ubuntu hides the GRUB menu when it only knows one system. After installation, linwin adds a Windows entry to GRUB (/etc/grub.d/35_linwin_windows), shows the menu again (5 seconds) and regenerates the configuration with update-grub. Ubuntu stays the default.

Wi-Fi in Windows

Recent laptops often have an Intel AX2xx, MediaTek MT79xx or Realtek RTL8852 Wi-Fi card that Windows 10 does not know. linwin adds the Microsoft Update Catalog driver for every network card, so Windows is online on first boot.

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