- New GUI is in progress here (private repo)
Setup a Windows VM on Linux in under 100 seconds with just one command, with Virtualization enabled (see how-to)
It is possible to invent a single machine which can be used to compute any computable sequence.
~ Alan Turing, 1936
-
Download Windows 10 or Windows 11, along with VirtIO Drivers (Stable)
-
Place the ISOs in either
~/WindowsVM/
or/var/lib/libvirt/images/
. -
Rename the ISOs as shown below:
- Windows 10/11 ISO β
win.iso
- VirtIO Drivers β
virtio-win.iso
- Windows 10/11 ISO β
UPDATE: Windows 11 has been tested and works just as well, and the support will be added soon!
- Enter the command shown below in the terminal.
bash <(wget -qO- https://git.io/JOeOs)
Here is the Script
Step by Step Guide - Click Me!
π₯ Host System Requirements:
- Ubuntu 18.04 or newer
- Fedora 30 or newer
- Arch (Read this Guide by LinuxHint for permissions and User Group setting)
- 4 CPU Threads (2 Multi-Threaded Cores at minimum)
- 8 GiB Memory (more = better)
- 40+ GiB of Free Storage typically (SSD Recommened)
Linux Kernel 5.4 LTS or newer is recommended
Default specs of the VM
CPU: 4 vCPUs Allocated
GPU: VirtIO or VFIO GPU Passthrough - ArchWiki or Single-GPU-Passthrough
Memory: Total 6 GiB, 1 GiB Allocated initially
Storage Drive: 1 TB VirtIO Disk (Dynamically Allocated)
DVD Drive: Windows ISO
Other Drives: VirtIO Drivers ISO, Essential Tools ISO (to optimize VM performance)
Network Card: VirtIO (Recommended Disabled until debloated)
π Check KVM Compatibility
- Checks if
AMD-V
orVT-d
/VT-x
is supported on your AMD/Intel CPU. - Checks if kvm is enabled using
virt-host-validate
.
π Install required packages
- Updates repositories (Debian and Fedora only) and installs required packages.
# Debian
sudo apt update -q && sudo apt install -y qemu qemu-kvm libvirt-bin libvirt-daemon libvirt-clients bridge-utils virt-manager
# Fedora
sudo dnf -y install qemu-kvm libvirt bridge-utils virt-install virt-manager
# Arch
sudo pacman -S --noconfirm qemu libvirt bridge-utils edk2-ovmf vde2 ebtables dnsmasq openbsd-netcat virt-manager
π Enable Libvirt Service & Virtual Networking
Executes the following commands only if systemd is present and running.
# Libvirt service and socket
sudo systemctl enable --now libvirtd
# Virtlogd
sudo systemctl enable --now virtlogd
# Virtual Networking
sudo virsh net-autostart default
sudo virsh net-start default
π Locate ISOs
- Checks if
win10.iso
andvirtio-win.iso
exist in ~/WindowsVM or /var/lib/libvirt/images - Uses
rsync
to copy the ISOs to /var/lib/libvirt/images ($HOME subdirectories might cause permission issues)
π Selecting a VM Profile
Ideal for Gaming, Content Creation and other heavy duty applications.
Adobe Creative Cloud
3d Printing Software: CHITUBOX
360 Photo/Video Software: VeeR Editor
Part | Specification |
---|---|
CPU | 6 vCPU |
Memory | 8 GiB |
Storage | 1 TiB |
Ideal for Office 365, and some light Photoshop.
Part | Specification |
---|---|
CPU | 4 vCPU |
Memory | 6 GiB |
Storage | 1 TiB |
Ideal for basic stuff that requires Windows.
Printer Software, CNC Application
Tax Software in Banks
Part | Specification |
---|---|
CPU | 2 vCPU |
Memory | 4 GiB |
Storage | 1 TiB |
Ideal for DRM/Anticheat Programs like Valorant, Rainbow Six: Siege
Part | Specification |
---|---|
CPU | 4 vCPU |
Memory | 8 GiB |
Storage | 1 TiB |
π Reload KVM Kernel Modules
If kvm
is enabled correctly, then executes the following commands depending upon the CPU.
# AMD
sudo modprobe -r kvm_amd kvm # safely unloads the modules
sudo modprobe kvm # enables kvm first
sudo modprobe kvm_amd nested=1 # then kvm_amd module with nested enabled
# INTEL
sudo modprobe -r kvm_intel kvm # safely unloads the modules
sudo modprobe kvm # enables kvm first
sudo modprobe kvm_intel nested= # then kvm_intel module with nested enabled
-
Looking Glass by Wendell from Level1Techs
-
Single GPU Passthrough:
-
NVIDIA GPU Passthrough:
-
Intel iGPU Passthrough - Lan Tian
Stuff changes all the time, and I can only do so much.
If you want to help, THANK YOU, that will be wonderful! π
This project is aimed at making a Windows VM for gaming/content creation, paired with WinApps to make it easier for people to switch to Linux while still being able to use their Adobe CC apps, MS Office, Play Games etc.
Here's a list of things that will make this project way better!
Now that NVIDIA has enabled GPU Passthrough for Windows based Virtual Machines (no more Code 43!), this project will also include easy setup and configuration for passing through NVIDIA GPUs in KVM and interfacing Windows apps from linux via WinApps.
Till then, read Arch Wiki - PCI Passthrough and this.
- The Entire r/VFIO Community!
- Wendell from Level1Techs
- SomeOrdinaryGamers - For Video guide
- Zeptic - For Stealth VM stuff
- joeknock90 (and everyone mentioned in their repository) - For Single GPU Passthrough Central Point
- More Credits...