Running Windows 10 on Linux using KVM with VGA Passthrough

This tutorial explains how to install and run Windows 10 on Linux using GPU passthrough and VFIO drivers to achieve near-native performance – for gaming, photo or video editing, and other graphics and CPU intensive tasks. It also lists the common pitfalls and possible ways to further improve performance. Last not least it offers a comprehensive list of external resources and helpful links.

Latest update: February 5, 2021

The Need

You want to use Linux as your main operating system, but still need Windows for certain applications unavailable under Linux. You need top notch (3D) graphics performance under Windows for computer games, photo or video editing, etc. And you do not want to dual-boot into Linux or Windows. In that case read on.

Many modern CPUs have built-in features that improve the performance of virtual machines (VM), up to the point where virtualised systems are indistinguishable from non-virtualised systems. This allows us to create virtual machines on a Linux host platform without compromising performance of the (Windows) guest system.

For some benchmarks of my current system, see Windows 10 Virtual Machine Benchmarks Continue reading “Running Windows 10 on Linux using KVM with VGA Passthrough”

Glossary of Virtualization Terms

For those of you not (yet) familiar with VGA passthrough, here some common terms used in the how-to: Continue reading “Glossary of Virtualization Terms”

qemu-system-x86_64 -drive options

In an attempt to make the qemu -drive command line options more accessible, here is an extract from the qemu-system-x86_64 man page. You can get the complete man page by entering the following in a terminal window:
man qemu-system-x86_64

The options below are valid for qemu-system-x86_64 version 2.5.0. Please refer to the qemu documentation at – look for the version you got and select the corresponding sub-folder. You find the latest documentation (qemu 3.1.50) here. Continue reading “qemu-system-x86_64 -drive options”

Define a network bridge using Ubuntu’s / Linux Mint’s Network Manager application

I’m regularly passing large amounts of data between my Windows VM and my Linux host. To avoid bottlenecks, I use a virtual network bridge that creates a 10 GBit link between the guest and the host, enough to challenge the fastest SSD on the market.

When running Ubuntu 18.04 or Linux Mint 19.1, Network Manager offers a convenient way to configure a network bridge.

Here is how you set up a virtual network bridge for connecting a Virtual Machine to the Linux Host. Please note that this will not work with a wireless network connection, at least not without some modifications: Continue reading “Define a network bridge using Ubuntu’s / Linux Mint’s Network Manager application”