X-Git-Url: https://git.proxmox.com/?p=pve-docs.git;a=blobdiff_plain;f=qm.adoc;h=0a1dfa6e23af2e0d0e676ea3ce92495514fd9344;hp=e114439127b169139aaacf5d076a641e71cb8556;hb=cc15d2c5bfae1c6d54ec37ecd28fcc05ed9ef248;hpb=8861c7ad88d0824be362dc4f598703947e227cad diff --git a/qm.adoc b/qm.adoc index e114439..0a1dfa6 100644 --- a/qm.adoc +++ b/qm.adoc @@ -117,11 +117,34 @@ OS Settings [thumbnail="screenshot/gui-create-vm-os.png"] -When creating a VM, setting the proper Operating System(OS) allows {pve} to -optimize some low level parameters. For instance Windows OS expect the BIOS -clock to use the local time, while Unix based OS expect the BIOS clock to have -the UTC time. +When creating a virtual machine (VM), setting the proper Operating System(OS) +allows {pve} to optimize some low level parameters. For instance Windows OS +expect the BIOS clock to use the local time, while Unix based OS expect the +BIOS clock to have the UTC time. +[[qm_system_settings]] +System Settings +~~~~~~~~~~~~~~~ + +On VM creation you can change some basic system components of the new VM. You +can specify which xref:qm_display[display type] you want to use. +[thumbnail="screenshot/gui-create-vm-system.png"] +Additionally, the xref:qm_hard_disk[SCSI controller] can be changed. +If you plan to install the QEMU Guest Agent, or if your selected ISO image +already ships and installs it automatically, you may want to tick the 'Qemu +Agent' box, which lets {pve} know that it can use its features to show some +more information, and complete some actions (for example, shutdown or +snapshots) more intelligently. + +{pve} allows to boot VMs with different firmware and machine types, namely +xref:qm_bios_and_uefi[SeaBIOS and OVMF]. In most cases you want to switch from +the default SeabBIOS to OVMF only if you plan to use +xref:qm_pci_passthrough[PCIe pass through]. A VMs 'Machine Type' defines the +hardware layout of the VM's virtual motherboard. You can choose between the +default https://en.wikipedia.org/wiki/Intel_440FX[Intel 440FX] or the +https://ark.intel.com/content/www/us/en/ark/products/31918/intel-82q35-graphics-and-memory-controller.html[Q35] +chipset, which also provides a virtual PCIe bus, and thus may be desired if +one want's to pass through PCIe hardware. [[qm_hard_disk]] Hard Disk @@ -198,10 +221,10 @@ set and a _TRIM_-enabled guest OS footnote:[TRIM, UNMAP, and discard https://en.wikipedia.org/wiki/Trim_%28computing%29], when the VM's filesystem marks blocks as unused after deleting files, the controller will relay this information to the storage, which will then shrink the disk image accordingly. -For the guest to be able to issue _TRIM_ commands, you must either use a -*VirtIO SCSI* (or *VirtIO SCSI Single*) controller or set the *SSD emulation* -option on the drive. Note that *Discard* is not supported on *VirtIO Block* -drives. +For the guest to be able to issue _TRIM_ commands, you must enable the *Discard* +option on the drive. Some guest operating systems may also require the +*SSD Emulation* flag to be set. Note that *Discard* on *VirtIO Block* drives is +only supported on guests using Linux Kernel 5.0 or higher. If you would like a drive to be presented to the guest as a solid-state drive rather than a rotational hard disk, you can set the *SSD emulation* option on @@ -676,8 +699,12 @@ BIOS and UEFI ~~~~~~~~~~~~~ In order to properly emulate a computer, QEMU needs to use a firmware. -By default QEMU uses *SeaBIOS* for this, which is an open-source, x86 BIOS -implementation. SeaBIOS is a good choice for most standard setups. +Which, on common PCs often known as BIOS or (U)EFI, is executed as one of the +first steps when booting a VM. It is responsible for doing basic hardware +initialization and for providing an interface to the firmware and hardware for +the operating system. By default QEMU uses *SeaBIOS* for this, which is an +open-source, x86 BIOS implementation. SeaBIOS is a good choice for most +standard setups. There are, however, some scenarios in which a BIOS is not a good firmware to boot from, e.g. if you want to do VGA passthrough. footnote:[Alex Williamson has a very good blog entry about this. @@ -717,11 +744,37 @@ To add such a device, you can use `qm`: Where the size is in MiB. The file will be located under `/dev/shm/pve-shm-$name` (the default name is the vmid). +NOTE: Currently the device will get deleted as soon as any VM using it got +shutdown or stopped. Open connections will still persist, but new connections +to the exact same device cannot be made anymore. + A use case for such a device is the Looking Glass footnote:[Looking Glass: https://looking-glass.hostfission.com/] project, which enables high performance, low-latency display mirroring between host and guest. +[[qm_audio_device]] +Audio Device +~~~~~~~~~~~~ + +To add an audio device run the following command: + +---- +qm set -audio0 device= +---- + +Supported audio devices are: + +* `ich9-intel-hda`: Intel HD Audio Controller, emulates ICH9 +* `intel-hda`: Intel HD Audio Controller, emulates ICH6 +* `AC97`: Audio Codec '97, useful for older operating systems like Windows XP + +NOTE: The audio device works only in combination with SPICE. Remote protocols +like Microsoft's RDP have options to play sound. To use the physical audio +device of the host use device passthrough (see +xref:qm_pci_passthrough[PCI Passthrough] and +xref:qm_usb_passthrough[USB Passthrough]). + [[qm_startup_and_shutdown]] Automatic Start and Shutdown of Virtual Machines ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -1050,7 +1103,7 @@ include::qm-pci-passthrough.adoc[] endif::wiki[] Hookscripts -~~~~~~~~~~~ +----------- You can add a hook script to VMs with the config property `hookscript`.