VM setup
Setting up a virtual machine (VM) on Unraid is a flexible way to run full operating systems - such as Windows, Linux, or other platforms - alongside your containers and native apps. Whether you want to test new software, run legacy applications, host a desktop environment, or utilize hardware passthrough for gaming or creative work, Unraid’s VM Manager makes the process approachable for all skill levels.
Unraid 7.x brings significant enhancements to virtual machines (VMs), including:
- VM clones and snapshots
- User-created VM templates
- Inline XML editing/view
- Advanced GPU sharing and passthrough features
Check out the VM manager features section for more details.
If you haven’t done so already, please review the Overview & system prep instruction to ensure your hardware and shares are ready for virtualization.
Creating your own virtual machines
With your system prepared and preferences set, you can create a new virtual machine (VM) using the WebGUI.
- Confirm your
isos
anddomains
shares are configured and accessible. Learn more about share management here. - Upload your operating system installation ISO and, for Windows VMs, the latest VirtIO drivers ISO to the
isos
share. - Decide whether you will use GPU passthrough or VNC for graphics.
To create a basic VM:
- Click Add VM from the Virtual Machines page.
- Set the Template to Custom, or select a predefined OS template for common distributions.
- Enter a Name and, optionally, a Description for your VM.
- Toggle Autostart if you want the VM to start automatically with the array.
- Select the Operating System type. This will also adjust the VM icon.
- Assign CPU cores to the VM. You can assign up to the number of physical cores available on your host.
- Specify the Initial Memory (RAM) for the VM. Refer to your guest OS documentation for recommended values.
- Choose the OS Install ISO from your isos share.
- Configure the Primary vDisk (location, size, and type).
- Select a Graphics Card:
- Assign a Sound Card (optional, but required for HDMI audio via GPU).
- Assign USB Devices as needed.
- Devices must be attached before starting the VM (USB hot-plugging is not supported).
- The Unraid USB flash device is not available for assignment.
- Click Create VM. The VM will start automatically unless you uncheck Start VM after creation.
User VM templates
Unraid 7.1+ introduces user VM templates, making saving and reusing your custom VM configurations easy. User templates streamline VM deployment and ensure consistency across setups.
To create a user template:
- Edit the VM you want to template.
- Select Create/Modify template and enter a name.
- Your template will now be available in the user templates area on the Add VM screen.
To use a user template:
- On the VMs page, click add VM and select your template from the user templates section.
Import/export:
- Hover over a user template and click the arrow to export it to your server or download it.
- On another Unraid system, use Import from file or Upload to add the template.
New in Unraid 7.x: VM Manager
Unraid 7.x introduces a range of powerful enhancements to the VM Manager, streamlining the process of running and managing virtual machines. These features cater to beginners and advanced users, making deploying, customizing, and optimizing your VMs simpler.
- Save time with VM clones, snapshots, and reusable templates
- Fine-tune performance and compatibility with advanced passthrough and storage options
- Enjoy improved visibility and control with usage stats and inline
XML
editing
Workflow enhancements
- VM clones & snapshots: Duplicate VMs or quickly save/restore their state for testing or backup.
- User VM templates: Save your custom VM configurations and deploy new VMs with just a few clicks.
- Inline XML view/edit: Instantly view or copy the
XML
generated by the WebGUI; switch toXML
mode for advanced edits. - Autostart disable: Choose which VMs start automatically with your array.
- VM usage statistics: Track resource usage per VM directly from the dashboard.
Advanced hardware & storage options
- PCI multifunction/other: Assign complex PCI devices or groups for advanced passthrough scenarios.
- QEMU command-line passthrough: Add custom QEMU arguments for expert-level VM tuning.
- Storage override: Specify the storage location for each VM’s virtual disk.
- SSD flag & unmap: Optimize vDisk performance for SSDs and enable discard/unmap support.
SR-IOV
for Intel iGPU: Share integrated Intel graphics across multiple VMs.- VM name validation for ZFS: Prevent the use of unsupported characters in VM names for ZFS pools.
Enhanced graphics and GPU sharing
VirGL
&QXL
virtual GPUs: Share Intel/AMD GPUs among multiple Linux VMs or utilizeQXL
for multi-screen/memory options.- CPU pinning optional: Allow Unraid to manage CPU allocation automatically or manually pin cores as needed.
More advanced features
- View all graphics cards and VM-assigned IP addresses in the VM tab
- Support for QEMU ppc64 target and
qemu:override
- Hypervclock support for Windows VMs
- "Migratable" on/off for the emulated CPU
- Timer/offset configuration options
- No keymap/nogpu options available for specific use cases
- Improved VM icon selection and editing
- Warnings when assigning the primary GPU as passthrough (may require
vBIOS
) - Boot Unraid VMs into GUI mode with the
QXL
video driver - Various fixes for path and icon issues in
XML
view
Using virtual GPUs and GPU sharing
Unraid now supports advanced GPU sharing via VirGL
and QXL
for Linux VMs (and some Nvidia GPUs with the Nouveau
driver).
- To use
VirGL
: set Graphics Card to Virtual and VM console video driver to VirtIO(3D). - To use
QXL
: set Graphics Card to Virtual and VM console video driver toQXL
(best). VirGL
does not output to a physical monitor and is not compatible with Windows VMs or standard Nvidia plugins.QXL
supports multi-screen and configurable video memory.