Mass replace "StandaloneVM" with "standalone"

Also updates the "Standalones and HVM" page.

QubesOS/qubes-issues#1015
This commit is contained in:
Andrew David Wong 2021-06-18 02:29:28 -07:00
parent 63498a6c17
commit 2ae0ce9524
No known key found for this signature in database
GPG Key ID: 8CE137352A019A17
10 changed files with 48 additions and 49 deletions

View File

@ -21,7 +21,7 @@ This means that changes in the rest of the filesystem are lost when the app qube
bind-dirs provides a mechanism whereby files usually taken from the template can be persisted across reboots. bind-dirs provides a mechanism whereby files usually taken from the template can be persisted across reboots.
For example, in Whonix, [Tor's data dir `/var/lib/tor` has been made persistent in the TemplateBased ProxyVM sys-whonix](https://github.com/Whonix/qubes-whonix/blob/8438d13d75822e9ea800b9eb6024063f476636ff/usr/lib/qubes-bind-dirs.d/40_qubes-whonix.conf#L5) For example, in Whonix, [Tor's data dir `/var/lib/tor` has been made persistent in the TemplateBased ProxyVM sys-whonix](https://github.com/Whonix/qubes-whonix/blob/8438d13d75822e9ea800b9eb6024063f476636ff/usr/lib/qubes-bind-dirs.d/40_qubes-whonix.conf#L5)
In this way sys-whonix can benefit from the Tor anonymity feature 'persistent Tor entry guards' but does not have to be a StandaloneVM. In this way sys-whonix can benefit from the Tor anonymity feature 'persistent Tor entry guards' but does not have to be a standalone.
## How to use bind-dirs.sh? ## ## How to use bind-dirs.sh? ##

View File

@ -278,7 +278,7 @@ Booting to a kernel inside the template is not supported under `PVH`.
#### Distribution kernel #### Distribution kernel
Apply the following instruction in a Debian template or in a Debian StandaloneVM. Apply the following instruction in a Debian template or in a Debian standalone.
Using a distribution kernel package the initramfs and kernel modules should be handled automatically. Using a distribution kernel package the initramfs and kernel modules should be handled automatically.

View File

@ -1,26 +1,26 @@
--- ---
lang: en lang: en
layout: doc layout: doc
permalink: /doc/standalone-and-hvm/ permalink: /doc/standalones-and-hvm/
redirect_from: redirect_from:
- /doc/standalone-and-hvm/
- /doc/hvm/ - /doc/hvm/
- /doc/hvm-create/ - /doc/hvm-create/
- /en/doc/hvm-create/ - /en/doc/hvm-create/
- /doc/HvmCreate/ - /doc/HvmCreate/
- /wiki/HvmCreate/ - /wiki/HvmCreate/
ref: 130 ref: 130
title: StandaloneVMs and HVMs title: Standalones and HVMs
--- ---
A [standalone](/doc/glossary/#standalone) is a type of qube that is created by cloning a [template](/doc/templates/).
Unlike templates, however, standalones do not supply their root filesystems to other qubes.
Examples of situations in which standalones can be useful include:
A [StandaloneVM](/doc/glossary/#standalonevm) is a type of VM in Qubes that is created by cloning a [template](/doc/templates/). - Qubes used for development (dev environments often require a lot of specific packages and tools)
Unlike templates, however, StandaloneVMs do not supply their root filesystems to other VMs. - Qubes used for installing untrusted packages.
Examples of situations in which StandaloneVMs can be useful include:
- VMs used for development (dev environments often require a lot of specific packages and tools)
- VMs used for installing untrusted packages.
Normally, you install digitally signed software from Red Hat/Fedora repositories, and it's reasonable that such software has non malicious *installation* scripts (rpm pre/post scripts). Normally, you install digitally signed software from Red Hat/Fedora repositories, and it's reasonable that such software has non malicious *installation* scripts (rpm pre/post scripts).
However, when you would like to install some packages from less trusted sources, or unsigned, then using a dedicated (untrusted) standalone VM might be a better way. However, when you would like to install some packages from less trusted sources, or unsigned, then using a dedicated (untrusted) standalone might be a better way.
Meanwhile, a [Hardware-assisted Virtual Machine (HVM)](/doc/glossary/#hvm), also known as a "Fully-Virtualized Virtual Machine," utilizes the virtualization extensions of the host CPU. Meanwhile, a [Hardware-assisted Virtual Machine (HVM)](/doc/glossary/#hvm), also known as a "Fully-Virtualized Virtual Machine," utilizes the virtualization extensions of the host CPU.
These are typically contrasted with [Paravirtualized (PV)](/doc/glossary/#pv) VMs. These are typically contrasted with [Paravirtualized (PV)](/doc/glossary/#pv) VMs.
@ -31,15 +31,14 @@ You can also use HVMs to run "live" distros.
By default, every Qubes VM runs in [PVH](/doc/glossary/#pvhvm) mode (which has security advantages over both PV and HVM) except for those with attached PCI devices, which run in HVM mode. By default, every Qubes VM runs in [PVH](/doc/glossary/#pvhvm) mode (which has security advantages over both PV and HVM) except for those with attached PCI devices, which run in HVM mode.
See [here](https://blog.invisiblethings.org/2017/07/31/qubes-40-rc1.html) for a discussion of the switch from PV to HVM and [here](/news/2018/01/11/qsb-37/) for the announcement about the change to using PVH as default. See [here](https://blog.invisiblethings.org/2017/07/31/qubes-40-rc1.html) for a discussion of the switch from PV to HVM and [here](/news/2018/01/11/qsb-37/) for the announcement about the change to using PVH as default.
The StandaloneVM/template distinction and the HVM/PV/PVH distinctions are orthogonal. The standalone/template distinction and the HVM/PV/PVH distinctions are orthogonal.
The former is about root filesystem inheritance, whereas the latter is about the virtualization mode. The former is about root filesystem inheritance, whereas the latter is about the virtualization mode.
In practice, however, it is most common for StandaloneVMs to be HVMs and for HVMs to be StandaloneVMs. In practice, however, it is most common for standalones to be HVMs and for HVMs to be standalones.
In fact, this is so common that [StandaloneHVMs](/doc/glossary/#standalonehvm) are typically just called "HVMs."
Hence, this page covers both topics. Hence, this page covers both topics.
## Creating a StandaloneVM ## Creating a standalone
You can create a StandaloneVM in the Qube Manager by selecting the "Type" of "Standalone qube copied from a template" or "Empty standalone qube (install your own OS)." You can create a standalone in the Qube Manager by selecting the "Type" of "Standalone qube copied from a template" or "Empty standalone qube (install your own OS)."
Alternatively, from the dom0 command line: Alternatively, from the dom0 command line:
@ -47,7 +46,7 @@ Alternatively, from the dom0 command line:
qvm-create --class StandaloneVM --label <label> --property virt_mode=hvm <vmname> qvm-create --class StandaloneVM --label <label> --property virt_mode=hvm <vmname>
``` ```
(Note: Technically, `virt_mode=hvm` is not necessary for every StandaloneVM. (Note: Technically, `virt_mode=hvm` is not necessary for every standalone.
However, it makes sense if you want to use a kernel from within the VM.) However, it makes sense if you want to use a kernel from within the VM.)
## Creating an HVM ## Creating an HVM
@ -62,7 +61,7 @@ Also, make sure "Kernel" is set to `(none)` on the same tab.
## Command line: ## Command line:
Qubes are template-based by default so you must set the `--class StandaloneVM` option to create a StandaloneVM: Qubes are template-based by default so you must set the `--class StandaloneVM` option to create a standalone:
(name and label color are for illustration purposes). (name and label color are for illustration purposes).
~~~ ~~~
@ -130,7 +129,7 @@ There is [opt-in support](/doc/networking/#ipv6) for IPv6 forwarding.
## Using TemplateBasedHVMs ## Using TemplateBasedHVMs
Qubes allows HVMs to share a common root filesystem from a select template (see [TemplateHVM](/doc/glossary/#templatehvm) and [TemplateBasedHVM](/doc/glossary/#templatebasedhvm)). Qubes allows HVMs to share a common root filesystem from a select template.
This mode can be used for any HVM (e.g. FreeBSD running in a HVM). This mode can be used for any HVM (e.g. FreeBSD running in a HVM).
In order to create a TemplateHVM you use the following command, suitably adapted: In order to create a TemplateHVM you use the following command, suitably adapted:
@ -139,13 +138,13 @@ In order to create a TemplateHVM you use the following command, suitably adapted
qvm-create --class TemplateVM <qube> --property virt_mode=HVM --property kernel='' -l green qvm-create --class TemplateVM <qube> --property virt_mode=HVM --property kernel='' -l green
~~~ ~~~
Set memory as appropriate, and install the OS into this template in the same way you would install it into a normal HVM -- please see instructions on [this page](/doc/hvm-create/). Set memory as appropriate, and install the OS into this template in the same way you would install it into a normal HVM.
Generally you should install in to the first "system" disk. (Resize it as needed before starting installation.) Generally you should install in to the first "system" disk. (Resize it as needed before starting installation.)
You can then create a new qube using the new template. You can then create a new qube using the new template.
If you use this Template as it is, then any HVMs that use it will effectively be disposables - all file system changes will be wiped when the HVM is closed down. If you use this Template as it is, then any HVMs that use it will effectively be disposables - all file system changes will be wiped when the HVM is closed down.
Please see [this page](/doc/windows-appvms/) for specific advice on installing and using Windows-based Templates. Please see [this page](https://github.com/Qubes-Community/Contents/blob/master/docs/os/windows/windows-tools.md) for specific advice on installing and using Windows-based templates.
## Cloning HVMs ## Cloning HVMs
@ -207,7 +206,7 @@ drive : None
timezone : localtime timezone : localtime
~~~ ~~~
Note how the MAC addresses differ between those two otherwise identical VMs. Note how the MAC addresses differ between those two otherwise identical qubes.
The IP addresses assigned by Qubes will also be different of course to allow networking to function properly: The IP addresses assigned by Qubes will also be different of course to allow networking to function properly:
~~~ ~~~
@ -218,7 +217,7 @@ The IP addresses assigned by Qubes will also be different of course to allow net
/.../ /.../
~~~ ~~~
If for any reason you would like to make sure that the two VMs have the same MAC address, you can use `qvm-prefs` to set a fixed MAC address for the VM: If for any reason you would like to make sure that the two qubes have the same MAC address, you can use `qvm-prefs` to set a fixed MAC address for the qube:
~~~ ~~~
[joanna@dom0 ~]$ qvm-prefs my-new-vm-copy -s mac 00:16:3E:5E:6C:05 [joanna@dom0 ~]$ qvm-prefs my-new-vm-copy -s mac 00:16:3E:5E:6C:05
@ -249,10 +248,10 @@ timezone : localtime
## Assigning PCI devices to HVMs ## Assigning PCI devices to HVMs
HVM domains (including Windows VMs) can be [assigned PCI devices](/doc/assigning-devices/) just like normal app qubes. HVM domains (including Windows qubes) can be [assigned PCI devices](/doc/how-to-use-pci-devices/) just like normal app qubes.
E.g. one can assign one of the USB controllers to the Windows VM and should be able to use various devices that require Windows software, such as phones, electronic devices that are configured via FTDI, etc. E.g. one can assign one of the USB controllers to the Windows VM and should be able to use various devices that require Windows software, such as phones, electronic devices that are configured via FTDI, etc.
One problem at the moment however, is that after the whole system gets suspended into S3 sleep and subsequently resumed, some attached devices may stop working and should be restarted within the VM. One problem at the moment however, is that after the whole system gets suspended into S3 sleep and subsequently resumed, some attached devices may stop working and should be restarted within the qube.
This can be achieved under a Windows HVM by opening the Device Manager, selecting the actual device (such as a USB controller), 'Disabling' the device, and then 'Enabling' the device again. This can be achieved under a Windows HVM by opening the Device Manager, selecting the actual device (such as a USB controller), 'Disabling' the device, and then 'Enabling' the device again.
This is illustrated on the screenshot below: This is illustrated on the screenshot below:
@ -334,5 +333,5 @@ qemu-img -h | tail -n1
Other documents related to HVM: Other documents related to HVM:
- [Windows VMs](/doc/windows-vm/) - [Windows VMs](https://github.com/Qubes-Community/Contents/blob/master/docs/os/windows/windows-vm.md)
- [LinuxHVMTips](/doc/linux-hvm-tips/) - [Linux HVM Tips](https://github.com/Qubes-Community/Contents/blob/master/docs/os/linux-hvm-tips.md)

View File

@ -20,14 +20,14 @@ by following the procedure below.
## Upgrade all Template and Standalone VM(s) ## Upgrade all Template and Standalone VM(s)
By default, in Qubes R3.0, there is only one template. However, users are By default, in Qubes R3.0, there is only one template. However, users are
free to create more templates for special purposes, as well as StandaloneVMs. free to create more templates for special purposes, as well as standalones.
More information on using multiple templates, as well as StandaloneVMs, can be More information on using multiple templates, as well as standalones, can be
found [here](/doc/software-update-vm/). The steps described in this found [here](/doc/software-update-vm/). The steps described in this
section should be repeated in **all** the user's Template and Standalone VMs. section should be repeated in **all** the user's Template and Standalone VMs.
### Upgrade Fedora templates: ### Upgrade Fedora templates:
1. Open a terminal in the template (or StandaloneVM). (E.g., use Qubes VM 1. Open a terminal in the template (or standalone). (E.g., use Qubes VM
Manager's right-click menu, choose "Run Command in VM," and type Manager's right-click menu, choose "Run Command in VM," and type
`gnome-terminal` there.) `gnome-terminal` there.)
@ -47,7 +47,7 @@ section should be repeated in **all** the user's Template and Standalone VMs.
### Upgrade Debian (and Whonix) templates: ### Upgrade Debian (and Whonix) templates:
1. Open a terminal in the template (or StandaloneVM). (E.g., use Qubes VM 1. Open a terminal in the template (or standalone). (E.g., use Qubes VM
Manager's right-click menu, choose "Run Command in VM," and type Manager's right-click menu, choose "Run Command in VM," and type
`gnome-terminal` there.) `gnome-terminal` there.)

View File

@ -114,9 +114,9 @@ your favorite desktop environment and continue.
## Upgrade all Template and Standalone VM(s) ## Upgrade all Template and Standalone VM(s)
By default, in Qubes R3.1, there are few templates and no StandaloneVMs. By default, in Qubes R3.1, there are few templates and no standalones.
However, users are free to create StandaloneVMs More information on using However, users are free to create standalones More information on using
multiple templates, as well as StandaloneVMs, can be found multiple templates, as well as standalones, can be found
[here](/doc/software-update-vm/). The steps described in this section should be [here](/doc/software-update-vm/). The steps described in this section should be
repeated in **all** the user's Template and Standalone VMs. repeated in **all** the user's Template and Standalone VMs.
@ -127,7 +127,7 @@ repeated in **all** the user's Template and Standalone VMs.
In order to do that, please see the In order to do that, please see the
[Fedora 23 template upgrade instructions](/doc/templates/fedora/#upgrading). [Fedora 23 template upgrade instructions](/doc/templates/fedora/#upgrading).
1. Open a terminal in the template (or StandaloneVM). (E.g., use Qubes VM 1. Open a terminal in the template (or standalone). (E.g., use Qubes VM
Manager's right-click menu, choose "Run Command in VM," and type Manager's right-click menu, choose "Run Command in VM," and type
`gnome-terminal` there.) `gnome-terminal` there.)
@ -153,7 +153,7 @@ In order to do that, please see the
### Upgrade Debian (and Whonix) templates: ### Upgrade Debian (and Whonix) templates:
1. Open a terminal in the template (or StandaloneVM). (E.g., use Qubes VM 1. Open a terminal in the template (or standalone). (E.g., use Qubes VM
Manager's right-click menu, choose "Run Command in VM," and type Manager's right-click menu, choose "Run Command in VM," and type
`gnome-terminal` there.) `gnome-terminal` there.)

View File

@ -82,7 +82,7 @@ Restore from your backup
4. Go to **Qubes menu -> System Tools -> Qubes Manager** to start it. 4. Go to **Qubes menu -> System Tools -> Qubes Manager** to start it.
5. Follow the **Restoring from a Backup** section in the [Backup, Restoration, and Migration](/doc/backup-restore/) guide. 5. Follow the **Restoring from a Backup** section in the [Backup, Restoration, and Migration](/doc/backup-restore/) guide.
We recommend that you restore only your [app qubes](/doc/glossary/#app-qube) and [StandaloneVMs](/doc/glossary/#standalonevm) from R3.2. We recommend that you restore only your [app qubes](/doc/glossary/#app-qube) and [standalones](/doc/glossary/#standalone) from R3.2.
Using [templates](/doc/templates/) and [SystemVMs](/doc/glossary/#systemvm) from R3.2 is not fully supported (see [#3514](https://github.com/QubesOS/qubes-issues/issues/3514)). Using [templates](/doc/templates/) and [SystemVMs](/doc/glossary/#systemvm) from R3.2 is not fully supported (see [#3514](https://github.com/QubesOS/qubes-issues/issues/3514)).
Instead, we recommend using the templates that were created specifically for R4.0, which you can [customize](/doc/software-update-vm/) according to your needs. Instead, we recommend using the templates that were created specifically for R4.0, which you can [customize](/doc/software-update-vm/) according to your needs.
For the template OS versions supported in R4.0, see [Supported Versions](/doc/supported-versions/#templates). For the template OS versions supported in R4.0, see [Supported Versions](/doc/supported-versions/#templates).
@ -109,7 +109,7 @@ Both Qubes Manager and the `qvm-remove` tool will show you where a disposable te
Upgrade all Template and Standalone VM(s) Upgrade all Template and Standalone VM(s)
----------------------------------------- -----------------------------------------
We strongly recommend that you update **all** templates and StandaloneVMs before use so that you have the latest security patches from upstream distributions. We strongly recommend that you update **all** templates and standalones before use so that you have the latest security patches from upstream distributions.
In addition, if the default templates have reached EOL (end-of-life) by the time you install R4.0, we strongly recommend that you upgrade them before use. In addition, if the default templates have reached EOL (end-of-life) by the time you install R4.0, we strongly recommend that you upgrade them before use.
Please see [Supported Versions](/doc/supported-versions/) for information on supported OS versions and consult the guides below for specific upgrade instructions: Please see [Supported Versions](/doc/supported-versions/) for information on supported OS versions and consult the guides below for specific upgrade instructions:

View File

@ -81,13 +81,13 @@ Debian also has three Qubes VM testing repositories (where `*` denotes the Relea
To enable or disable any of these repos permanently, uncomment the corresponding `deb` line in `/etc/apt/sources.list.d/qubes-r*.list`. To enable or disable any of these repos permanently, uncomment the corresponding `deb` line in `/etc/apt/sources.list.d/qubes-r*.list`.
### StandaloneVMs ### Standalones
When you create a [StandaloneVM](/doc/standalone-and-hvm/) from a template, the StandaloneVM is a complete clone of the template, including the entire filesystem. When you create a [standalone](/doc/standalone-and-hvm/) from a template, the standalone is a complete clone of the template, including the entire filesystem.
After the moment of creation, the StandaloneVM is completely independent from the template. After the moment of creation, the standalone is completely independent from the template.
Therefore, it will not be updated when the template is updated. Therefore, it will not be updated when the template is updated.
Rather, it must be updated individually. Rather, it must be updated individually.
The process for installing and updating software in StandaloneVMs is the same as described above for templates. The process for installing and updating software in standalones is the same as described above for templates.
### RPMFusion for Fedora templates ### RPMFusion for Fedora templates

View File

@ -34,7 +34,7 @@ Fully updating your Qubes OS system means updating:
- [Dom0](/doc/how-to-install-software-in-dom0/) - [Dom0](/doc/how-to-install-software-in-dom0/)
- [templates](/doc/how-to-install-software/#updating-software-in-templates) - [templates](/doc/how-to-install-software/#updating-software-in-templates)
- [StandaloneVMs](/doc/how-to-install-software/#standalonevms) (if you have any) - [standalones](/doc/how-to-install-software/#standalones) (if you have any)
You can accomplish this using the **Qubes Update** tool. You can accomplish this using the **Qubes Update** tool.
@ -56,14 +56,14 @@ Even if no updates have been detected, you can use this tool to check for update
The above covers updating *within* a given operating system release. The above covers updating *within* a given operating system release.
Eventually, however, most operating system releases will reach [end-of-life (EOL)](https://fedoraproject.org/wiki/End_of_life), after which point they will no longer be supported. Eventually, however, most operating system releases will reach [end-of-life (EOL)](https://fedoraproject.org/wiki/End_of_life), after which point they will no longer be supported.
This applies to [Qubes OS itself](/doc/supported-versions/#qubes-os) as well as operating systems used for templates and StandaloneVMs, such as [Fedora](/doc/templates/fedora/) and [Debian](/doc/templates/debian/). This applies to [Qubes OS itself](/doc/supported-versions/#qubes-os) as well as operating systems used for templates and standalones, such as [Fedora](/doc/templates/fedora/) and [Debian](/doc/templates/debian/).
It is very important to use only supported releases, since generally only supported releases receive security updates. It is very important to use only supported releases, since generally only supported releases receive security updates.
This means that you must periodically upgrade to a newer release before your current release reaches EOL. This means that you must periodically upgrade to a newer release before your current release reaches EOL.
In the case of Qubes OS itself, we will always [announce](/news/categories/#releases) when a given Qubes OS release is approaching and has reached EOL, and we will provide [instructions for upgrading to the next stable supported Qubes OS release](/doc/upgrade/). In the case of Qubes OS itself, we will always [announce](/news/categories/#releases) when a given Qubes OS release is approaching and has reached EOL, and we will provide [instructions for upgrading to the next stable supported Qubes OS release](/doc/upgrade/).
Again, you can always see the current support status for all Qubes OS releases [here](/doc/supported-versions/#qubes-os). Again, you can always see the current support status for all Qubes OS releases [here](/doc/supported-versions/#qubes-os).
Periodic upgrades are also important for templates and StandaloneVMs. Periodic upgrades are also important for templates and standalones.
For example, you might be using a [Fedora Template](/doc/templates/fedora/). For example, you might be using a [Fedora Template](/doc/templates/fedora/).
The [Fedora Project](https://getfedora.org/) is independent of the Qubes OS Project. The [Fedora Project](https://getfedora.org/) is independent of the Qubes OS Project.
They set their own [schedule](https://fedoraproject.org/wiki/Fedora_Release_Life_Cycle#Maintenance_Schedule) for when each Fedora release reaches EOL. They set their own [schedule](https://fedoraproject.org/wiki/Fedora_Release_Life_Cycle#Maintenance_Schedule) for when each Fedora release reaches EOL.

View File

@ -118,9 +118,9 @@ The same general procedure may be used to upgrade any template based on the stan
11. (Optional) [Uninstall the old template.](/doc/templates/#uninstalling) 11. (Optional) [Uninstall the old template.](/doc/templates/#uninstalling)
Make sure that the template you're uninstalling is the old one, not the new one! Make sure that the template you're uninstalling is the old one, not the new one!
## StandaloneVMs ## Standalones
The procedure for upgrading a Debian [StandaloneVM](/doc/standalone-and-hvm/) is the same as for a template. The procedure for upgrading a Debian [standalone](/doc/standalone-and-hvm/) is the same as for a template.
## Release-specific notes ## Release-specific notes

View File

@ -183,9 +183,9 @@ The same general procedure may be used to upgrade any template based on the stan
(If you encounter insufficient space issues, you may need to use the methods described for the standard template above.) (If you encounter insufficient space issues, you may need to use the methods described for the standard template above.)
## StandaloneVMs ## Standalones
The procedure for upgrading a Fedora [StandaloneVM](/doc/standalone-and-hvm/) is the same as for a template. The procedure for upgrading a Fedora [standalone](/doc/standalone-and-hvm/) is the same as for a template.
## Release-specific notes ## Release-specific notes