Skip to main content

đŸ–Ĩī¸ Create the First VM

MOS supports running full virtual machines (VMs) using KVM/QEMU.
This guide walks you through creating and configuring your first VM.

Navigate to:

VMs

VM Overview


➕ Creating a VM​

Click the three-dot menu (⋮) in the bottom right corner and select + Create VM.

VM Action Button


âš™ī¸ Basic Configuration​

VM Menu VM Menu

đŸˇī¸ Name​

The unique name for your VM as it appears in the overview.

Best practices:

  • Use short, descriptive names
  • Avoid spaces and special characters

🧠 Memory Size (GB)​

Defines how much RAM is allocated to the VM.

Use the slider to set the desired memory size in GB.

[!NOTE] Only allocate as much memory as the VM actually needs to avoid starving the host system.


📌 Core Pinning​

Allows pinning vCPUs to specific physical CPU cores.

[!TIP] Useful for performance-critical VMs to reduce CPU scheduling overhead.


đŸ–Ĩī¸ Machine Type​

Defines the emulated machine architecture.

OptionDescription
q35Modern PCIe-based machine (recommended)
pcLegacy i440FX machine

đŸ”ĸ Version​

Defines the version of the selected machine type.

Example: q35 (default)


🔧 BIOS Type​

Defines the firmware used to boot the VM.

OptionDescription
ovmfUEFI firmware (recommended for modern OS)
seabiosLegacy BIOS

[!NOTE] Use ovmf for Windows 11 and modern Linux distributions that require UEFI.


💾 Disks​

Click + Add Disk to add a virtual disk to the VM.

VM Disk Menu

Disk Configuration Fields​

FieldDescription
📁 SourcePath to the disk image file (e.g. /mnt/main/vms/Test/vdisk1.qcow2)
📏 SizeSize of the virtual disk
🚌 BusController type used for the disk
đŸ—„ī¸ FormatDisk image format
đŸ”ĸ Boot OrderBoot priority (lower = higher priority)

🚌 Disk Bus Options​

VM Disk Bus

BusDescription
virtioBest performance (recommended for Linux)
sataGood compatibility
usbUSB-attached disk
scsiSCSI controller
ideLegacy, slowest option

đŸ—„ī¸ Disk Format Options​

VM Disk Format

FormatDescription
qcow2Supports snapshots, thin provisioning (recommended)
rawMaximum performance, no snapshot support

đŸ’ŋ CD-ROM​

Click + Add CD-ROM to attach an ISO image as a virtual optical drive.

VM CD ROM

CD-ROM Configuration Fields​

FieldDescription
📁 SourcePath to the ISO file
🚌 BusController type for the CD-ROM
đŸ”ĸ Boot OrderBoot priority

🚌 CD-ROM Bus Options​

VM CD ROM Format

Available options: virtio, sata (default), usb, scsi, ide

[!TIP] Use sata for best OS installer compatibility.


đŸĒŸ VirtIO Drivers​

For Windows VMs, VirtIO drivers are required to use virtio disks and network adapters.

Select the VirtIO ISO from the dropdown to attach the driver disk.

[!NOTE] The VirtIO ISO must be downloaded and placed on the system beforehand. It provides drivers for disk controllers, network adapters, and more inside Windows VMs.

VirtIO Drivers


🌐 Network Adapter​

Click + Add Adapter to add a virtual network interface.

Create Network Adapter

Network Configuration Fields​

FieldDescription
🔗 TypeNetwork connection type
📡 SourceNetwork bridge or interface to connect to
🖧 ModelVirtual NIC model
🔑 MAC AddressOptional static MAC address

🔗 Network Type Options​

TypeDescription
bridgeConnects VM to a host bridge (most common)
macvtapDirect connection via macvtap interface
networkUses a libvirt virtual network

📡 Network Source Options​

SourceDescription
br0Physical network bridge (for real network access)
virbr0Virtual NAT bridge (isolated network)

🖧 Network Model Options​

ModelDescription
virtioBest performance (recommended)
e1000Intel Gigabit emulation, good compatibility
rtl8139Legacy, broadest compatibility

đŸ–ŧī¸ Graphics​

Defines how the VM's display is accessed remotely.

Graphics Configuration Fields​

FieldDescription
đŸ–Ĩī¸ TypeRemote display protocol
âŒ¨ī¸ KeymapKeyboard layout used inside the VM
🔌 PortPort for remote display connection (leave empty for auto)
👂 ListenIP address to listen on (0.0.0.0 = all interfaces)

đŸ–Ĩī¸ Graphics Type Options​

TypeDescription
vncBasic remote display (default, widely supported)
spiceAdvanced protocol with better performance and USB redirection
noneNo graphical output

âŒ¨ī¸ Keymap Options​

Select the keyboard layout that matches your physical keyboard:

en-us, en-gb, de, de-ch, fr, fr-be, and more.


🔌 Host Devices​

Click + Add Host Device to pass through a physical PCI device directly to the VM.

Create Host Device

[!WARNING] PCI passthrough gives the VM exclusive access to the device. The host will no longer be able to use it while the VM is running.

Common use cases:

  • 🎮 GPU passthrough for gaming VMs
  • 🌐 Dedicated network card passthrough
  • 💾 NVMe/storage controller passthrough

🔌 USB Devices​

Click + Add USB Device to pass through a connected USB device to the VM.

Select the USB device from the dropdown — all currently connected USB devices are listed.

Create USB Device

Examples of passthrough devices:

  • đŸ”ĩ Bluetooth adapters
  • 💾 USB flash drives
  • đŸ–ąī¸ Input devices

[!NOTE] USB passthrough requires the device to be physically connected to the host at VM start time.


✅ Finalizing the VM​

Once all settings are configured, click Create to create the VM.

The new VM will appear in the VMs overview with a stopped state.

VM Overview


📋 VM Overview Columns​

ColumnDescription
đŸˇī¸ NameVM name and current state
📝 DescriptionOptional description
📊 CPU LoadLive CPU usage while running
💾 DisksAttached disk and ISO paths
🔌 PortVNC/SPICE port for remote access
â–ļī¸ AutostartWhether the VM starts automatically on boot
â„šī¸ InfoAdditional VM information

✅ Summary​

To create your first VM, follow these steps:

  1. đŸˇī¸ Set a Name and configure Memory
  2. đŸ–Ĩī¸ Choose Machine Type and BIOS Type
  3. 💾 Add a Disk and select format + bus type
  4. đŸ’ŋ Add a CD-ROM with the OS installer ISO
  5. đŸĒŸ (Windows only) Attach the VirtIO ISO
  6. 🌐 Add a Network Adapter
  7. đŸ–ŧī¸ Configure Graphics for remote access
  8. 🔌 (Optional) Add Host Devices or USB Devices
  9. 🚀 Click Create — your VM is ready!

Parts of this documentation were created with the assistance of AI tools. All AI-generated content has undergone review, but it may still contain inaccuracies, omissions, or outdated information.