Windows 8 guest best practices: Difference between revisions

From Proxmox VE
Jump to navigation Jump to search
No edit summary
(update with latest install practices)
 
(6 intermediate revisions by one other user not shown)
Line 1: Line 1:
==Introduction==
==Introduction==


This is a set of best practices to follow when installing a Windows 8 guest on a Proxmox VE server 2.x (2.3 at time of writing). Right now it's a work in progress but hopefully soon it will be a comprehensive and reliable document. Please feel free to add to it, even if just to pose a potential best practice.
This is a set of best practices to follow when installing a Windows 8.1 guest on a Proxmox VE server 6.x. Right now it's a work in progress.  


==Install==
{{WinX-install-steps|osversion=8.1|osgroup=8.x/2012/2012r2|driverdir=w8.1}}
 
===Prepare===
* ​After clicking "Create VM" enter a Name: for your vm, select your Resource Pool (if you have one) and click Next
* Select Microsoft Windows 8/2012 in the OS tab and click Next.
* Select an ISO Image: for Windows 8 in the CD/DVD tab and click Next.
* Select Bus/Device: VIRTIO, Storage: "your preferred storage" and Cache: Write back in the Hard Disk tab and click Next.
* Select number of Sockets and cores (the default of 1 is mostly sufficient) in the CPU tab and click Next.
* Select Automatically allocate memory and set the Maximum memory to a number you may require in the memory tab and click Next.
* Select Model: VirtIO (paravirtualized) in the Network tab and click Next
* Click finish and go to the Hardware tab of your newly created VM and click Add -> CD/DVD drive
* Select Storage:local and ISO image: virtio-win-x.x.iso and click create.
 
===Launch Windows install===
* Start your newly created virtual machine using the "Start" link in the upper right.
* wait until the vm icon has turned white before you login using the "Console" link in the upper right. (NOTE: Sometimes the java console does not start at the first attempt. Please click refresh/reload in this case)​​
 
* Start the server install with "Install Now" and click next and select "Custom (advanced)"
* If you do not see "Drive 0 / Unallocated Space" click Load driver, browse to CD named CDROM and select folder WIN8\AMD64 and confirm. Select all three offered drivers (by pressing the CTRL button) "Red Hat VirtIO SCSI controller, Redhat VirtIO NIC and Red Hat Balloon driver" and click next.
* Install Windows to "Drive 0 / Unallocated Space"
* Wait until Windows is installed and select a Password for the local Administrator account and login to Windows.
 
===Install additional VirtIO drivers===
If you don´t got all virtio drivers selected on install, you can install them also later.
* Start Explorer, Go to CDROM, copy folder WIN8\AMD64 to C:\Program Files\ and rename AMD64 to C:\Program Files\VirtIO
* open Device Manager and right click on Other Devices -> Ethernet Controller and select update driver software
* select "Browse my computer" select folder "C:\Program Files\VirtIO" and click "Install" for Red Hat VirtIO Ethernet Adapter.
* again in Device Manager right click on Other Devices -> PCI Device and select update driver software
* again "Browse my computer" select folder "C:\Program Files\VirtIO" and click "Install" for VirtIO Balloon Driver.
 
For more information and configuration about ballooning, see [[Dynamic Memory Management]]


==further info==
==further info==
Line 55: Line 25:


[[Category: HOWTO]]
[[Category: HOWTO]]
[[Category: Qemu/KVM]]

Latest revision as of 14:09, 7 November 2019

Introduction

This is a set of best practices to follow when installing a Windows 8.1 guest on a Proxmox VE server 6.x. Right now it's a work in progress.


Install

Prepare

To obtain a good level of performance, we will install the Windows VirtIO Drivers during the Windows installation.

  • Create a new VM, select "Microsoft Windows 8.x/2012/2012r2" as Guest OS and enable the "Qemu Agent" in the System tab. Continue and mount your Windows 8.1 ISO in the CDROM drive
  • For your virtual hard disk select "SCSI" as bus with "VirtIO SCSI" as controller. Set "Write back" as cache option for best performance (the "No cache" default is safer, but slower) and tick "Discard" to optimally use disk space (TRIM).
  • Configure your memory settings as needed, continue and set "VirtIO (paravirtualized)" as network device, finish your VM creation.
  • For the VirtIO drivers, upload the driver ISO (use the stable VirtIO ISO, download it from here) to your storage, create a new CDROM drive (use "Add -> CD/DVD drive" in the hardware tab) with Bus "IDE" and number 0. Load the Virtio Drivers ISO in the new virtual CDROM drive.
  • Now your ready to start the VM, just follow the Windows installer.
  • Note for Older Version of Windows like Windows-2012 (use the stable older version of VirtIO ISO - virtio-win-0.1.189.iso, download it from here)

Launch Windows install

  • After starting your VM launch the noVNC console
  • Follow the installer steps until you reach the installation type selection where you need to select "Custom (advanced)"
  • Now click "Load driver" to install the VirtIO drivers for hard disk and the network.
    • Hard disk: Browse to the CD drive where you mounted the VirtIO driver and select folder "vioscsi\w8.1\amd64" and confirm. Select the "Red Hat VirtIO SCSI pass-through controller" and click next to install it. Now you should see your drive.
    • Network: Repeat the steps from above (click again "Load driver", etc.) and select the folder "NetKVM\w8.1\amd64", confirm it and select "Redhat VirtIO Ethernet Adapter" and click next.
    • Memory Ballooning: Again, repeat the steps but this time select the "Balloon\w8.1\amd64" folder, then the "VirtIO Balloon Driver" and install it by clicking next. With these three drivers you should be good covered to run a fast virtualized Windows 8.1 system.
  • Choose the drive and continue the Windows installer steps.

HINT: There is a video showing the process for a Windows Server 2016 installation which is the same as for Windows 8.1.

Install Guest Agent and Services

Guest Agent

If you enabled the Qemu Agent option for the VM the mouse pointer will probably be off after the first boot.

To remedy this install the "Qemu Guest Agent". The installer is located on the driver CD under guest-agent\qemu-ga-x86_64.msi.

Drivers and Services

VirtIO guest tools installer

The easiest way to install missing drivers and services is to use the provided MSI installer. It is available on the driver CD since version "virtio-win-0.1.173-2".

Run the "virtio-win-gt-x64.msi" file located directly on the CD. If you do not plan to use SPICE you can deselect the "Qxl" and "Spice" features. Restart the VM after the installer is done.

After all this the RAM usage and IP configuration should be shown correctly in the summary page of the VM.

For more information and configuration about ballooning, see Dynamic Memory Management

Check for missing drivers

See also: Paravirtualized Block Drivers for Windows
Unknown device in device manager
Make sure to include subfolders

Go to the Device Manager to see if there are any drivers missing. For any unknown device:

  • Right click an select "Update driver".
  • Select "Browse my computer for driver software".
  • Select the Driver CD. Make sure that "Include subfolders" is checked.
  • Once a driver has been found you might be prompted with a security warning asking if you "Would like to install this device software". Click "Install".

Installing WSL(g)

To run WSL (Windows Subsystem for Linux) you need to enable Nested Virtualization. Make sure to set your processor to 'host'; if you already set up your VM and did not select 'host' as processor, you can change it in the 'Hardware' section of your VM in the web interface.

Follow the official instructions.

If you are using a GPU via PCI(e) passthrough, you might need to add

args: -cpu host,kvm=off

to your config file at /etc/pve/qemu-server/<vm_id>.conf, see the vfio blog

further info

raw vs qcow2

Raw file format provides slightly better performance while qcow2 offers advanced features such as copy on write and Live_Snapshots. Since V2.3, qcow2 is the default format.

virtio drivers

Use virtio dirvers for best performance. More info: Paravirtualized Block Drivers for Windows

Make it really easy: Build your ISO with drivers already included: Windows guests - build ISOs including VirtIO drivers

latest iso with virtio drivers : https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/

see also

Windows 7 guest best practices