Linux, AMD Ryzen 3900X, X570, NVIDIA GTX 1060, AMD 5700XT, Looking Glass, PCI Passthrough and Windows 10

In the former two parts we’ve prepared everything that we are now able to install Windows 10.

I used virt-manager to create the Windows 10 VM. Here are a few screenshots and comments how I installed Windows 10. So start virt-manager. Click File menu and New Virtual Machine. This will get you this screen:

Choose Local install media and click Forward. In the next screen browse for the Windows 10 ISO file we downloaded already in one of the former parts and click Forward.

In the next windows set your desired memory size and CPU count. If you want use Windows for gaming I would recommend at least 8 Gbyte (8192 Mbyte) but it’s up to you. As my AMD Ryzen 3900X has 12 cores I assign half of them to Windows:

Next we need some disk storage for our Windows VM. As already mentioned in part 1 I’ll dedicate one of my two NVMe drives solely to Windows for performance reasons. So click + on the lower left to add a new storage pool:

Give the storage pool a name, select disk: Physical Disk Device as Type. This basically passes the disk “as is” to Windows (raw device). Therefore I insert the device path in Source Path field. It’s also possible to use the /dev/disk/by-id/... path of course.

If you click Finish you should see the new storage pool on the left side. Now we create a Volume that is as big as the storage pool. Click on + on the right side of the Volumes label:

The volume name should be the name of the device + p1 (for partition 1). So my device is called nvme1n1 and if we add p1 we get nvme1n1p1. Somehow virt-manager insisted on this convention… For Max Capacity and Allocation I used the whole size of the disk:

Selecting the new volume and pressing Choose Volume brings us to the next window:

We choose Select or create custom storage and choose the volume we just created:

Finally enter a name for your VM. Important: Select Customize configuration before install! Since I’m using a network bridge I also change the Network selection, select Specify shared device name and entered my Bridge name which is br0 in my case:

This brings us to the overview what is configured so far. Important: In Firmware choose the UEFI BIOS. (Hint: If that is grayed out maybe you hit this bug: https://bugs.archlinux.org/task/64175).

Make sure that you select Copy host CPU configuration in CPUs:

In SATA Disk 1 I also already changed the Disk bus to VirtIO for max. disk performance. We’ll add the required driver during Windows installation:

In NIC ... (your ID might be different) I again choose Specify shared device name and also enter br0 for Bridge name. Also change Device model to virtio for max network performance. We’ll install this driver after Windows is installed:

At the lower left corner click Add hardware and add a Storage device. The Device type is CDROM device. Add the virtio-win-0.1.172.iso (you may have a newer version). This is important as it contains the virtio drivers:

Now you can press Begin Installation on the upper left corner. This will bring you into the UEFI shell. Just type exit if you land there if the command prompt appears. Select the Boot Manager entry:

The first entry UEFI QEMU DVD-ROM QM00003 in my case is the Windows 10 CDROM (or better the Windows 10 ISO we mounted). Choose it and press “enter”:

This starts the usual Windows 10 installation procedure:

Yes, we want to install - well ok, I was forced by dark forces to install it :D :

Now Windows has problems detecting the hard disk. Since I changed the Disk bus for SATA Disk 1 to VirtIO above we need the driver accordingly now. As we mounted the driver CD also we can open it now and select the amd64/w10 folder:

Select the first entry in the next screen:

Now it’s possible to setup the disk. Click New. I just used the whole space:

Windows will create a few additional partitions. Just leave it as is:

Now installation is starting:

If the installation is done Windows will reboot:

It takes a little bit:

Choose your region:

Choose your keyboard layout:

Network won’t work at this time as the network VirtIO driver is missing. Just click I don't have internet on the lower left. The driver will be installed later:

Click Continue with limited setup on the lower left:

I always create a admin user at first and if everything is running I create a separate “normal” user for daily use with limited permissions:

Now Windows is finalizing the installation:

When Windows is up it’s time to setup the missing driver. Search for Device Manager and open it:

In Other devices you see the devices that are not configured because of missing drivers:

First right click on Ethernet Controller and select Update driver:

Choose Browser my computer for driver software:

Select the CDROM with the drivers again. Make sure that Include subfolders is selected and click Next:

Install the Red Hat VirtIO Ethernet Adapter:

The network was automatically configured via DHCP:

Right click the next PCI Device and choose Update driver:

Again choose the CDROM with the drivers. This will setup the VirtIO Balloon Driver. This allows to resize RAM dynamically:

And the same for the last device:

This will install the VirtIO Serial Driver:

And finally the first and only time I use Internet Explorer is to download Firefox :D :

Now shutdown the VM. Next time we finally setup PCIe passthrough for the Nvidia GPU.