Add prompts to all code blocks with bash session

This commit is contained in:
qubedmaiska 2025-08-15 16:49:01 -04:00
parent b0395e618c
commit 2d2bcb06a6
No known key found for this signature in database
GPG key ID: 204BCE0FD52C0501
72 changed files with 513 additions and 497 deletions

View file

@ -40,7 +40,7 @@ In ``qubes-builder/artifacts/sources/linux-kernel``:
.. code:: console
make prep
$ make prep
@ -48,7 +48,7 @@ The resulting tree will be in kernel-<VERSION>/linux-<VERSION>:
.. code:: console
ls -ltrd kernel*/linux*
$ ls -ltrd kernel*/linux*
drwxr-xr-x 23 user user 4096 Nov 5 09:50 kernel-3.4.18/linux-3.4.18
drwxr-xr-x 6 user user 4096 Nov 21 20:48 kernel-3.4.18/linux-obj
@ -62,7 +62,7 @@ In ``qubes-builder/artifacts/sources/linux-kernel``:
.. code:: console
cd kernel-3.4.18/linux-3.4.18
$ cd kernel-3.4.18/linux-3.4.18
@ -74,8 +74,8 @@ In ``kernel-3.4.18/linux-3.4.18``:
.. code:: console
cp ../../config .config
make oldconfig
$ cp ../../config .config
$ make oldconfig
@ -83,7 +83,7 @@ Now change the configuration. For example, in ``kernel-3.4.18/linux-3.4.18``:
.. code:: console
make menuconfig
$ make menuconfig
@ -91,7 +91,7 @@ Copy the modified config back into the kernel tree:
.. code:: console
cp .config ../../../config
$ cp .config ../../../config
@ -103,20 +103,20 @@ TODO: describe the workflow for patching the code, below are some random notes,
.. code:: console
ln -s ../../patches.xen
export QUILT_PATCHES=patches.xen
export QUILT_REFRESH_ARGS="-p ab --no-timestamps --no-index"
export QUILT_SERIES=../../series-pvops.conf
$ ln -s ../../patches.xen
$ export QUILT_PATCHES=patches.xen
$ export QUILT_REFRESH_ARGS="-p ab --no-timestamps --no-index"
$ export QUILT_SERIES=../../series-pvops.conf
quilt new patches.xen/pvops-3.4-0101-usb-xen-pvusb-driver-bugfix.patch
quilt add drivers/usb/host/Kconfig drivers/usb/host/Makefile \
$ quilt new patches.xen/pvops-3.4-0101-usb-xen-pvusb-driver-bugfix.patch
$ quilt add drivers/usb/host/Kconfig drivers/usb/host/Makefile \
drivers/usb/host/xen-usbback/* drivers/usb/host/xen-usbfront.c \
include/xen/interface/io/usbif.h
*edit something*
quilt refresh
cd ../..
$ quilt refresh
$ cd ../..
vi series.conf
@ -133,7 +133,7 @@ To actually build RPMs, in qubes-builder:
.. code:: console
./qb -c linux-kernel package fetch prep build
$ ./qb -c linux-kernel package fetch prep build
@ -398,7 +398,7 @@ Then use ``make update-repo-unstable`` to upload the packages. You can also spec
.. code:: console
make COMPONENTS="core-agent-linux gui-agent-linux linux-utils" qubes update-repo-unstable
$ make COMPONENTS="core-agent-linux gui-agent-linux linux-utils" qubes update-repo-unstable

View file

@ -54,8 +54,8 @@ This is a simple setup using a docker executor. This is a good default choice; i
.. code:: console
git clone https://github.com/QubesOS/qubes-builderv2
cd qubes-builderv2/
$ git clone https://github.com/QubesOS/qubes-builderv2
$ cd qubes-builderv2/
4. If you havent previously used docker in the current qube, you need to set up some permissions. In particular, the user has to be added to the ``docker`` group:

View file

@ -55,17 +55,23 @@ Usually you can install those packages by just issuing:
.. code:: console
sudo dnf install gnupg git createrepo rpm-build make wget rpmdevtools python3-sh dialog rpm-sign dpkg-dev debootstrap python3-pyyaml devscripts perl-Digest-MD5 perl-Digest-SHA
$ sudo dnf install gnupg git createrepo rpm-build make wget rpmdevtools python3-sh dialog rpm-sign dpkg-dev debootstrap python3-pyyaml devscripts perl-Digest-MD5 perl-Digest-SHA
The build system creates build environments in chroots and so no other packages are needed on the host. All files created by the build system are contained within the qubes-builder directory. The full build requires some 25GB of free space, so keep that in mind when deciding where to place this directory.
The build system is configured via builder.conf file. You can use the setup.sh script to create and modify this file. Alternatively, you can copy the provided default builder.conf, and modify it as needed, e.g.:
.. code:: console
cp example-configs/qubes-os-master.conf builder.conf
# edit the builder.conf file and set the following variables:
$ cp example-configs/qubes-os-master.conf builder.conf
Edit the builder.conf file and set the following variables:
.. code:: bash
NO_SIGN=1
@ -87,36 +93,36 @@ So, to build Qubes you would do:
.. code:: console
# Import the Qubes master key
gpg --recv-keys 0xDDFA1A3E36879494
$ gpg --recv-keys 0xDDFA1A3E36879494
# Verify its fingerprint, set as 'trusted'.
# This is described here:
# https://www.qubes-os.org/doc/VerifyingSignatures
wget https://keys.qubes-os.org/keys/qubes-developers-keys.asc
gpg --import qubes-developers-keys.asc
$ wget https://keys.qubes-os.org/keys/qubes-developers-keys.asc
$ gpg --import qubes-developers-keys.asc
git clone https://github.com/QubesOS/qubes-builder.git qubes-builder
cd qubes-builder
$ git clone https://github.com/QubesOS/qubes-builder.git qubes-builder
$ cd qubes-builder
# Verify its integrity:
git tag -v `git describe`
$ git tag -v `git describe`
cp example-configs/qubes-os-master.conf builder.conf
$ cp example-configs/qubes-os-master.conf builder.conf
# edit the builder.conf file and set the following variables:
# NO_SIGN="1"
# Download all components:
make get-sources
$ make get-sources
# And now to build all Qubes RPMs (this will take a few hours):
make qubes
$ make qubes
# ... and then to build the ISO
make iso
$ make iso
And this should produce a shiny new ISO.
@ -125,7 +131,7 @@ You can also build selected component separately. Eg. to compile only gui virtua
.. code:: console
make gui-daemon
$ make gui-daemon
You can get a full list from make help.
@ -154,7 +160,7 @@ You can also modify sources somehow if you wish. Here are some basic steps:
.. code:: console
make get-sources
$ make get-sources
4. **Make your modifications here**
@ -165,14 +171,14 @@ You can also modify sources somehow if you wish. Here are some basic steps:
.. code:: console
make vmm-xen core-admin linux-kernel gui-daemon template desktop-linux-kde installer-qubes-os manager linux-dom0-updates
$ make vmm-xen core-admin linux-kernel gui-daemon template desktop-linux-kde installer-qubes-os manager linux-dom0-updates
7. build iso installation image
.. code:: console
make iso
$ make iso

View file

@ -17,14 +17,14 @@ Fedora 36 (and 37) has been successfully used to build Qubes R4.1 with the below
.. code:: console
sudo setenforce 0
$ sudo setenforce 0
In ``dom0``, install the Fedora 36 (or 37) template if you dont already have it.
.. code:: console
sudo qubes-dom0-update qubes-template-fedora-36
$ sudo qubes-dom0-update qubes-template-fedora-36
@ -66,9 +66,9 @@ Now lets bootstrap the builder. Unfortunately, the builder cannot verify itse
.. code:: console
git clone https://github.com/QubesOS/qubes-builder.git
cd qubes-builder
git tag -v `git describe`
$ git clone https://github.com/QubesOS/qubes-builder.git
$ cd qubes-builder
$ git tag -v `git describe`
@ -120,8 +120,8 @@ Continue the build process with:
.. code:: console
make install-deps
make get-sources
$ make install-deps
$ make get-sources
@ -133,8 +133,8 @@ Finally, if you are making a test build, use:
.. code:: console
make qubes
make iso
$ make qubes
$ make iso
@ -142,9 +142,9 @@ Or for a fully signed build (this requires setting ``SIGN_KEY`` in ``builder.con
.. code:: console
make qubes
make sign-all
make iso
$ make qubes
$ make sign-all
$ make iso
@ -160,9 +160,9 @@ If you will be building Whonix templates:
.. code:: console
cd ~
gpg --keyserver pgp.mit.edu --recv-keys 916B8D99C38EAF5E8ADC7A2A8D66066A2EEACCDA
gpg --fingerprint 916B8D99C38EAF5E8ADC7A2A8D66066A2EEACCDA
$ cd ~
$ gpg --keyserver pgp.mit.edu --recv-keys 916B8D99C38EAF5E8ADC7A2A8D66066A2EEACCDA
$ gpg --fingerprint 916B8D99C38EAF5E8ADC7A2A8D66066A2EEACCDA
@ -185,11 +185,11 @@ Next, prepare the Git keyring directory and copy them in:
.. code:: console
export GNUPGHOME=~/qubes-builder/keyrings/git
mkdir --parents "$GNUPGHOME"
cp ~/.gnupg/pubring.gpg "$GNUPGHOME"
cp ~/.gnupg/trustdb.gpg "$GNUPGHOME"
chmod --recursive 700 "$GNUPGHOME"
$ export GNUPGHOME=~/qubes-builder/keyrings/git
$ mkdir --parents "$GNUPGHOME"
$ cp ~/.gnupg/pubring.gpg "$GNUPGHOME"
$ cp ~/.gnupg/trustdb.gpg "$GNUPGHOME"
$ chmod --recursive 700 "$GNUPGHOME"
@ -197,8 +197,8 @@ Copy one of the example configurations:
.. code:: console
cd ~/qubes-builder
cp example-configs/qubes-os-master.conf builder.conf
$ cd ~/qubes-builder
$ cp example-configs/qubes-os-master.conf builder.conf
@ -208,9 +208,9 @@ Continue the build process with:
.. code:: console
make install-deps
make get-sources
unset GNUPGHOME
$ make install-deps
$ make get-sources
$ unset GNUPGHOME
@ -220,8 +220,8 @@ Finally, if you are making a test build, use:
.. code:: console
make qubes
make iso
$ make qubes
$ make iso
@ -229,9 +229,9 @@ Or for a fully signed build (this requires setting ``SIGN_KEY`` in ``builder.con
.. code:: console
make qubes
make sign-all
make iso
$ make qubes
$ make sign-all
$ make iso

View file

@ -91,7 +91,7 @@ If youre submitting a patch via GitHub (or a similar Git server), please sign
.. code:: console
git config --global user.signingkey <KEYID>
$ git config --global user.signingkey <KEYID>
@ -99,14 +99,14 @@ If youre submitting a patch via GitHub (or a similar Git server), please sign
.. code:: console
git config --global commit.gpgsign true
$ git config --global commit.gpgsign true
Alternatively, manually specify when a commit is to be signed:
.. code:: console
git commit -S
$ git commit -S
@ -115,7 +115,7 @@ If youre submitting a patch via GitHub (or a similar Git server), please sign
.. code:: console
git tag -s <tag_name> -m "<tag_message>"
$ git tag -s <tag_name> -m "<tag_message>"
You can also create an alias to make this easier. Edit your ``~/.gitconfig`` file. In the ``[alias]`` section, add ``stag`` to create signed tags and ``spush`` to create signed tags and push them.
@ -171,14 +171,14 @@ In this case, you have several options to sign the commit:
.. code:: console
git commit --amend -S
$ git commit --amend -S
This also rewrites the commit so you need to push it forcefully:
.. code:: console
git push -f
$ git push -f
@ -186,8 +186,8 @@ In this case, you have several options to sign the commit:
.. code:: console
git checkout <commit>
git spush
$ git checkout <commit>
$ git spush
Now, the signature checker needs to re-check the signature. Please comment on the pull request that you would like to have the signatures checked again.

View file

@ -21,7 +21,7 @@ To clone a repository:
.. code:: console
git clone https://github.com/QubesOS/qubes-<repo_name>.git <repo_name>
$ git clone https://github.com/QubesOS/qubes-<repo_name>.git <repo_name>
@ -29,7 +29,7 @@ e.g.:
.. code:: console
git clone https://github.com/QubesOS/qubes-core-admin.git core-admin
$ git clone https://github.com/QubesOS/qubes-core-admin.git core-admin
@ -39,8 +39,8 @@ If you really do want to clone **all** of the repositories, you can use these co
.. code:: console
curl "https://api.github.com/orgs/QubesOS/repos?page=1&per_page=100" | grep -e 'clone_url*' | cut -d \" -f 4 | xargs -L1 git clone
curl "https://api.github.com/orgs/QubesOS/repos?page=2&per_page=100" | grep -e 'clone_url*' | cut -d \" -f 4 | xargs -L1 git clone
$ curl "https://api.github.com/orgs/QubesOS/repos?page=1&per_page=100" | grep -e 'clone_url*' | cut -d \" -f 4 | xargs -L1 git clone
$ curl "https://api.github.com/orgs/QubesOS/repos?page=2&per_page=100" | grep -e 'clone_url*' | cut -d \" -f 4 | xargs -L1 git clone

View file

@ -119,7 +119,7 @@ Tests are also compatible with nose2 test runner, so you can use this instead:
.. code:: console
sudo systemctl stop qubesd; sudo -E nose2 -v --plugin nose2.plugins.loader.loadtests qubes.tests; sudo systemctl start qubesd
$ sudo systemctl stop qubesd; sudo -E nose2 -v --plugin nose2.plugins.loader.loadtests qubes.tests; sudo systemctl start qubesd
This may be especially useful together with various nose2 plugins to store tests results (for example ``nose2.plugins.junitxml``), to ease presenting results. This is what we use on `OpenQA <https://open.qa/>`__.
@ -140,15 +140,15 @@ Assuming you cloned the ``qubes-builder`` repository to your home directory insi
.. code:: console
cd ~
sudo dnf install python3-pip lvm2 python35 python3-virtualenv
virtualenv -p /usr/bin/python35 python35
source python35/bin/activate
python3 -V
cd ~/qubes-builder/qubes-src/core-admin
pip3 install -r ci/requirements.txt
export PYTHONPATH=../core-qrexec:test-packages
./run-tests
$ cd ~
$ sudo dnf install python3-pip lvm2 python35 python3-virtualenv
$ virtualenv -p /usr/bin/python35 python35
$ source python35/bin/activate
$ python3 -V
$ cd ~/qubes-builder/qubes-src/core-admin
$ pip3 install -r ci/requirements.txt
$ export PYTHONPATH=../core-qrexec:test-packages
$ ./run-tests
To run only the tests related to e.g. ``lvm``, you may use:

View file

@ -70,7 +70,7 @@ If your machine has a serial console, you may with to use that, but note that a
.. code:: console
script -f /dev/ttyS0
$ script -f /dev/ttyS0

View file

@ -96,11 +96,11 @@ Internet access is intentionally disabled by default in dom0. But to ease the de
.. code:: console
sudo systemctl enable sshd
sudo systemctl start sshd
$ sudo systemctl enable sshd
$ sudo systemctl start sshd
sudo systemctl enable dom0-network-direct
sudo systemctl start dom0-network-direct
$ sudo systemctl enable dom0-network-direct
$ sudo systemctl start dom0-network-direct
@ -123,26 +123,26 @@ The following commands should work for you, but do keep in mind that the provisi
# https://github.com/marmarek/openqa-tests-qubesos/blob/master/tests/update.pm
# Install git
sudo qubes-dom0-update git || sudo dnf --setopt=reposdir=/etc/yum.repos.d install git
$ sudo qubes-dom0-update git || sudo dnf --setopt=reposdir=/etc/yum.repos.d install git
# Download the openQA automated testing environment Salt configuration
git clone https://github.com/marmarek/openqa-tests-qubesos/
cd openqa-tests-qubesos/extra-files
sudo cp -a system-tests/ /srv/salt/
sudo qubesctl top.enable system-tests
$ git clone https://github.com/marmarek/openqa-tests-qubesos/
$ cd openqa-tests-qubesos/extra-files
$ sudo cp -a system-tests/ /srv/salt/
$ sudo qubesctl top.enable system-tests
# Install the same configuration as the one in openQA
QUBES_VERSION=4.1
PILLAR_DIR=/srv/pillar/base/update
sudo mkdir -p $PILLAR_DIR
printf 'update:\n qubes_ver: '$QUBES_VERSION'\n' | sudo tee $PILLAR_DIR/init.sls
printf "base:\n '*':\n - update\n" | sudo tee $PILLAR_DIR/init.top
sudo qubesctl top.enable update pillar=True
$ QUBES_VERSION=4.1
$ PILLAR_DIR=/srv/pillar/base/update
$ sudo mkdir -p $PILLAR_DIR
$ printf 'update:\n qubes_ver: '$QUBES_VERSION'\n' | sudo tee $PILLAR_DIR/init.sls
$ printf "base:\n '*':\n - update\n" | sudo tee $PILLAR_DIR/init.top
$ sudo qubesctl top.enable update pillar=True
# Apply states to dom0 and VMs
# NOTE: These commands can take several minutes (if not more) without showing output
sudo qubesctl --show-output state.highstate
sudo qubesctl --max-concurrency=2 --skip-dom0 --templates --show-output state.highstate
$ sudo qubesctl --show-output state.highstate
$ sudo qubesctl --max-concurrency=2 --skip-dom0 --templates --show-output state.highstate
Development VM

View file

@ -19,8 +19,8 @@ Known issues
.. code:: console
qvm-prefs -s fedora-17-x64-dvm maxmem 3072
qvm-create-default-dvm --default-template --default-script
$ qvm-prefs -s fedora-17-x64-dvm maxmem 3072
$ qvm-create-default-dvm --default-template --default-script
@ -58,6 +58,6 @@ If you have Qubes Beta 3 currently installed on your system, you must reinstall
.. code:: console
qvm-backup-restore <backup_dir> --replace-template=fedora-15-x64:fedora-17-x64
$ qvm-backup-restore <backup_dir> --replace-template=fedora-15-x64:fedora-17-x64

View file

@ -66,7 +66,7 @@ Security Notes
.. code:: console
sudo nano /etc/yum.repos.d/qubes-dom0.repo
$ sudo nano /etc/yum.repos.d/qubes-dom0.repo

View file

@ -144,7 +144,7 @@ dom0: request execution of ``cmd`` in domX
.. code:: console
qrexec-client -d domX [-l local_program] user:cmd
$ qrexec-client -d domX [-l local_program] user:cmd
@ -191,7 +191,7 @@ domX: request execution of service ``admin.Service`` in dom0
.. code:: console
qrexec-client-vm dom0 admin.Service [local_program] [params]
$ qrexec-client-vm dom0 admin.Service [local_program] [params]
@ -217,7 +217,7 @@ domX: request execution of service ``admin.Service`` in dom0
.. code:: console
qrexec-client -d dom0 -c domX,X,SOCKET11 "QUBESRPC admin.Service domX name dom0"
$ qrexec-client -d dom0 -c domX,X,SOCKET11 "QUBESRPC admin.Service domX name dom0"
@ -260,7 +260,7 @@ domX: invoke execution of qubes service ``qubes.Service`` in domY
.. code:: console
qrexec-client-vm domY qubes.Service [local_program] [params]
$ qrexec-client-vm domY qubes.Service [local_program] [params]
@ -278,7 +278,7 @@ domX: invoke execution of qubes service ``qubes.Service`` in domY
.. code:: console
qrexec-client -d domY -c domX,X,SOCKET11 user:cmd "DEFAULT:QUBESRPC qubes.Service domX"
$ qrexec-client -d domY -c domX,X,SOCKET11 user:cmd "DEFAULT:QUBESRPC qubes.Service domX"

View file

@ -122,8 +122,8 @@ Start the socket using ``systemctl --user start``. Enable it using ``systemctl -
.. code:: console
systemctl --user start qubes-qrexec-policy-agent.socket
systemctl --user enable qubes-qrexec-policy-agent.socket
$ systemctl --user start qubes-qrexec-policy-agent.socket
$ systemctl --user enable qubes-qrexec-policy-agent.socket
@ -131,7 +131,7 @@ Alternatively, you can enable the service by creating a symlink:
.. code:: console
sudo ln -s /lib/systemd/user/qubes-qrexec-policy-agent.socket /lib/systemd/user/sockets.target.wants/
$ sudo ln -s /lib/systemd/user/qubes-qrexec-policy-agent.socket /lib/systemd/user/sockets.target.wants/
@ -143,7 +143,7 @@ Link in qubes-rpc
.. code:: console
sudo ln -s /var/run/qubes/policy-agent.sock /etc/qubes-rpc/policy.Ask
$ sudo ln -s /var/run/qubes/policy-agent.sock /etc/qubes-rpc/policy.Ask
@ -157,7 +157,7 @@ Install the Python systemd library:
.. code:: console
sudo dnf install python3-systemd
$ sudo dnf install python3-systemd
@ -240,7 +240,7 @@ The service is invoked in the same way as a standard Qubes RPC service:
.. code:: console
echo <input_data> | qrexec-client -d domX 'DEFAULT:QUBESRPC policy.Ask'
$ echo <input_data> | qrexec-client -d domX 'DEFAULT:QUBESRPC policy.Ask'
@ -248,7 +248,7 @@ You can also connect to it locally, but remember to include the service descript
.. code:: console
echo -e 'policy.Ask dom0\0<input data>' | nc -U /etc/qubes-rpc/policy.Ask
$ echo -e 'policy.Ask dom0\0<input data>' | nc -U /etc/qubes-rpc/policy.Ask

View file

@ -245,7 +245,7 @@ Well need to create a service called ``test.Add`` with its own definition and
.. code:: console
ln -s /usr/bin/our_test_add_server /etc/qubes-rpc/test.Add
$ ln -s /usr/bin/our_test_add_server /etc/qubes-rpc/test.Add

View file

@ -114,7 +114,7 @@ In order to remove such authorization, issue this command from a Dom0 terminal (
.. code:: console
sudo nano /etc/qubes-rpc/policy/qubes.Filecopy
$ sudo nano /etc/qubes-rpc/policy/qubes.Filecopy
and then remove any line(s) ending in “allow” (before the first ``##`` comment) which are the “Yes to All” results.

View file

@ -121,7 +121,7 @@ Starting with Qubes 4.0, there is opt-in support for IPv6 forwarding. Similar to
.. code:: console
qvm-features sys-net ipv6 1
$ qvm-features sys-net ipv6 1
@ -129,7 +129,7 @@ It is also possible to explicitly disable IPv6 support for some qubes, even if i
.. code:: console
qvm-features ipv4-only-qube ipv6 ''
$ qvm-features ipv4-only-qube ipv6 ''

View file

@ -545,10 +545,10 @@ or
.. code:: console
echo 0000:<BDF> > /sys/bus/pci/drivers/pciback/unbind
MODALIAS=`cat /sys/bus/pci/devices/0000:<BDF>/modalias`
MOD=`modprobe -R $MODALIAS | head -n 1`
echo 0000:<BDF> > /sys/bus/pci/drivers/$MOD/bind
$ echo 0000:<BDF> > /sys/bus/pci/drivers/pciback/unbind
$ MODALIAS=`cat /sys/bus/pci/devices/0000:<BDF>/modalias`
$ MOD=`modprobe -R $MODALIAS | head -n 1`
$ echo 0000:<BDF> > /sys/bus/pci/drivers/$MOD/bind
@ -674,7 +674,7 @@ From a ``dom0`` prompt, enter:
.. code:: console
qvm-prefs <HVMname> kernel ""
$ qvm-prefs <HVMname> kernel ""

View file

@ -31,7 +31,7 @@ The following example demonstrates one method of obtaining the qubes-secpack and
1. Use Git to clone the qubes-secpack repo.
.. code::
.. code:: console
$ git clone https://github.com/QubesOS/qubes-secpack.git
Cloning into 'qubes-secpack'...
@ -44,7 +44,7 @@ The following example demonstrates one method of obtaining the qubes-secpack and
2. Import the included PGP keys. See our `PGP key policies <#pgp-key-policies>`__ for important information about these keys.
.. code::
.. code:: console
$ gpg --import qubes-secpack/keys/*/*
gpg: directory `/home/user/.gnupg' created

View file

@ -178,11 +178,11 @@ Now that youve imported the authentic QMSK, set its trust level to “ultimat
trust: unknown validity: unknown
[ unknown] (1). Qubes Master Signing Key
gpg> fpr
$ gpg> fpr
pub 4096R/36879494 2010-04-01 Qubes Master Signing Key
Primary key fingerprint: 427F 11FD 0FAA 4B08 0123 F01C DDFA 1A3E 3687 9494
gpg> trust
$ gpg> trust
pub 4096R/36879494 created: 2010-04-01 expires: never usage: SC
trust: unknown validity: unknown
[ unknown] (1). Qubes Master Signing Key
@ -206,7 +206,7 @@ Now that youve imported the authentic QMSK, set its trust level to “ultimat
Please note that the shown key validity is not necessarily correct
unless you restart the program.
gpg> q
$ gpg> q
Now, when you import any of the release signing keys and many Qubes team member keys, they will already be trusted in virtue of being signed by the QMSK.
@ -426,11 +426,11 @@ Download both the ISO and its signature file. Put both of them in the same direc
.. code:: console
$ gpg2 -v --verify Qubes-RX-x86_64.iso.asc Qubes-RX-x86_64.iso
gpg: armor header: Version: GnuPG v1
gpg: Signature made <TIME> using RSA key ID 03FA5082
gpg: using PGP trust model
gpg: Good signature from "Qubes OS Release X Signing Key"
gpg: binary signature, digest algorithm SHA256
$ gpg: armor header: Version: GnuPG v1
$ gpg: Signature made <TIME> using RSA key ID 03FA5082
$ gpg: using PGP trust model
$ gpg: Good signature from "Qubes OS Release X Signing Key"
$ gpg: binary signature, digest algorithm SHA256
This is just an example, so the output you receive will not look exactly the same. What matters is the line that says ``Good signature from "Qubes OS Release X Signing Key"``. This confirms that the signature on the ISO is good.

View file

@ -30,7 +30,7 @@ In this example, we want to make ``/var/lib/tor`` persistent. Enter all of the f
.. code:: console
sudo mkdir -p /rw/config/qubes-bind-dirs.d
$ sudo mkdir -p /rw/config/qubes-bind-dirs.d
@ -38,7 +38,7 @@ In this example, we want to make ``/var/lib/tor`` persistent. Enter all of the f
.. code:: console
sudo touch /rw/config/qubes-bind-dirs.d/50_user.conf
$ sudo touch /rw/config/qubes-bind-dirs.d/50_user.conf
@ -56,7 +56,7 @@ In this example, we want to make ``/var/lib/tor`` persistent. Enter all of the f
.. code:: console
sudo mkdir -p /rw/bind-dirs/var/lib/tor
$ sudo mkdir -p /rw/bind-dirs/var/lib/tor
@ -157,7 +157,7 @@ To use this feature, first, enable it:
.. code:: console
qvm-service -e my-app-vm custom-persist
$ qvm-service -e my-app-vm custom-persist
@ -165,7 +165,7 @@ Then, configure a persistent directory with ``qvm-features``:
.. code:: console
qvm-features my-app-vm custom-persist.my_persistent_dir /var/my_persistent_dir
$ qvm-features my-app-vm custom-persist.my_persistent_dir /var/my_persistent_dir
@ -173,8 +173,8 @@ To re-enable ``/home`` and ``/usr/local`` persistence, just add them to the list
.. code:: console
qvm-features my-app-vm custom-persist.home /home
qvm-features my-app-vm custom-persist.usrlocal /usr/local
$ qvm-features my-app-vm custom-persist.home /home
$ qvm-features my-app-vm custom-persist.usrlocal /usr/local
@ -184,8 +184,8 @@ A user may want their bind-dirs to be automatically pre-created in ``/rw/bind-di
.. code:: console
qvm-features my-app-vm custom-persist.downloads dir:user:user:0755:/home/user/Downloads
qvm-features my-app-vm custom-persist.my_ssh_known_hosts_file file:user:user:0600:/home/user/.ssh/known_hosts
$ qvm-features my-app-vm custom-persist.downloads dir:user:user:0755:/home/user/Downloads
$ qvm-features my-app-vm custom-persist.my_ssh_known_hosts_file file:user:user:0600:/home/user/.ssh/known_hosts

View file

@ -95,11 +95,11 @@ To create one that has no PCI devices attached, such as for ``sys-firewall``:
.. code:: console
qvm-create -C DispVM -l green <SERVICE_QUBE>
qvm-prefs <SERVICE_QUBE> autostart true
qvm-prefs <SERVICE_QUBE> netvm <NET_QUBE>
qvm-prefs <SERVICE_QUBE> provides_network true
qvm-features <SERVICE_QUBE> appmenus-dispvm ''
$ qvm-create -C DispVM -l green <SERVICE_QUBE>
$ qvm-prefs <SERVICE_QUBE> autostart true
$ qvm-prefs <SERVICE_QUBE> netvm <NET_QUBE>
$ qvm-prefs <SERVICE_QUBE> provides_network true
$ qvm-features <SERVICE_QUBE> appmenus-dispvm ''
@ -111,13 +111,13 @@ To create one with a PCI device attached such as for ``sys-net`` or ``sys-usb``,
.. code:: console
qvm-create -C DispVM -l red <SERVICE_QUBE>
qvm-prefs <SERVICE_QUBE> virt_mode hvm
qvm-service <SERVICE_QUBE> meminfo-writer off
qvm-pci attach --persistent <SERVICE_QUBE> dom0:<BDF>
qvm-prefs <SERVICE_QUBE> autostart true
qvm-prefs <SERVICE_QUBE> netvm ''
qvm-features <SERVICE_QUBE> appmenus-dispvm ''
$ qvm-create -C DispVM -l red <SERVICE_QUBE>
$ qvm-prefs <SERVICE_QUBE> virt_mode hvm
$ qvm-service <SERVICE_QUBE> meminfo-writer off
$ qvm-pci attach --persistent <SERVICE_QUBE> dom0:<BDF>
$ qvm-prefs <SERVICE_QUBE> autostart true
$ qvm-prefs <SERVICE_QUBE> netvm ''
$ qvm-features <SERVICE_QUBE> appmenus-dispvm ''
@ -125,7 +125,7 @@ Optionally, if this disposable will also provide network access to other qubes:
.. code:: console
qvm-prefs <SERVICE_QUBE> provides_network true
$ qvm-prefs <SERVICE_QUBE> provides_network true
@ -133,7 +133,7 @@ Next, set the old service qubes autostart to false, and update any references
.. code:: console
qvm-prefs sys-firewall netvm <SERVICE_QUBE>
$ qvm-prefs sys-firewall netvm <SERVICE_QUBE>
@ -143,17 +143,17 @@ Here is an example of a complete ``sys-net`` replacement:
.. code:: console
qvm-create -C DispVM -l red sys-net2
qvm-prefs sys-net2 virt_mode hvm
qvm-service sys-net2 meminfo-writer off
qvm-pci attach --persistent sys-net2 dom0:00_1a.0
qvm-prefs sys-net2 autostart true
qvm-prefs sys-net2 netvm ''
qvm-features sys-net2 appmenus-dispvm ''
qvm-prefs sys-net2 provides_network true
qvm-prefs sys-net autostart false
qvm-prefs sys-firewall netvm sys-net2
qubes-prefs clockvm sys-net2
$ qvm-create -C DispVM -l red sys-net2
$ qvm-prefs sys-net2 virt_mode hvm
$ qvm-service sys-net2 meminfo-writer off
$ qvm-pci attach --persistent sys-net2 dom0:00_1a.0
$ qvm-prefs sys-net2 autostart true
$ qvm-prefs sys-net2 netvm ''
$ qvm-features sys-net2 appmenus-dispvm ''
$ qvm-prefs sys-net2 provides_network true
$ qvm-prefs sys-net autostart false
$ qvm-prefs sys-firewall netvm sys-net2
$ qubes-prefs clockvm sys-net2

View file

@ -16,8 +16,8 @@ To increase the minimum size of the video RAM buffer:
.. code:: console
qvm-features dom0 gui-videoram-min $(($WIDTH * $HEIGHT * 4 / 1024))
qvm-features dom0 gui-videoram-overhead 0
$ qvm-features dom0 gui-videoram-min $(($WIDTH * $HEIGHT * 4 / 1024))
$ qvm-features dom0 gui-videoram-overhead 0
Where ``$WIDTH`` × ``$HEIGHT`` is the maximum desktop size that you anticipate needing. For example, if you expect to use a 1080p display and a 4k display side-by-side, that is ``(1920 + 3840) × 2160 × 4 / 1024 = 48600``, or slightly more than 48 MiB per qube. After making these adjustments, the qubes need to be restarted.
@ -26,7 +26,7 @@ In the case of multiple display with different orientations or if you plug/unplu
.. code:: console
qvm-features dom0 gui-videoram-min $(xrandr --verbose | grep "Screen 0" | sed -e 's/.*current //' -e 's/\,.*//' | awk '{print $1*$3*4/1024}')
$ qvm-features dom0 gui-videoram-min $(xrandr --verbose | grep "Screen 0" | sed -e 's/.*current //' -e 's/\,.*//' | awk '{print $1*$3*4/1024}')
The amount of memory allocated per qube is the maximum of:

View file

@ -22,22 +22,22 @@ In ``dom0``, enable the formula for ``sys-gui`` with pillar data:
.. code:: console
sudo qubesctl top.enable qvm.sys-gui
sudo qubesctl top.enable qvm.sys-gui pillar=True
$ sudo qubesctl top.enable qvm.sys-gui
$ sudo qubesctl top.enable qvm.sys-gui pillar=True
then, execute it:
.. code:: console
sudo qubesctl --all state.highstate
$ sudo qubesctl --all state.highstate
You can now disable the ``sys-gui`` formula:
.. code:: console
sudo qubesctl top.disable qvm.sys-gui
$ sudo qubesctl top.disable qvm.sys-gui
At this point, you need to shutdown all your running qubes as the ``default_guivm`` qubes global property has been set to ``sys-gui``. In order to use ``sys-gui`` as GUI domain, you need to logout and, in the top right corner, select ``lightdm`` session type to **GUI domain (sys-gui)**. Once logged, you are running ``sys-gui`` as fullscreen window and you can perform any operation as if you would be in ``dom0`` desktop.
@ -58,29 +58,29 @@ In ``dom0``, enable the formula for ``sys-gui-gpu`` with pillar data:
.. code:: console
sudo qubesctl top.enable qvm.sys-gui-gpu
sudo qubesctl top.enable qvm.sys-gui-gpu pillar=True
$ sudo qubesctl top.enable qvm.sys-gui-gpu
$ sudo qubesctl top.enable qvm.sys-gui-gpu pillar=True
then, execute it:
.. code:: console
sudo qubesctl --all state.highstate
$ sudo qubesctl --all state.highstate
You can now disable the ``sys-gui-gpu`` formula:
.. code:: console
sudo qubesctl top.disable qvm.sys-gui-gpu
$ sudo qubesctl top.disable qvm.sys-gui-gpu
One more step is needed: attaching the actual GPU to ``sys-gui-gpu``. This can be done either manually via ``qvm-pci`` (remember to enable permissive option), or via:
.. code:: console
sudo qubesctl state.sls qvm.sys-gui-gpu-attach-gpu
$ sudo qubesctl state.sls qvm.sys-gui-gpu-attach-gpu
The latter option assumes Intel graphics card (it has hardcoded PCI address). If you dont have Intel graphics card, please use the former method with ``qvm-pci`` (see :doc:`How to use PCI devices </user/how-to-guides/how-to-use-pci-devices>`).
@ -105,29 +105,29 @@ In ``dom0``, enable the formula for ``sys-gui-vnc`` with pillar data:
.. code:: console
sudo qubesctl top.enable qvm.sys-gui-vnc
sudo qubesctl top.enable qvm.sys-gui-vnc pillar=True
$ sudo qubesctl top.enable qvm.sys-gui-vnc
$ sudo qubesctl top.enable qvm.sys-gui-vnc pillar=True
then, execute it:
.. code:: console
sudo qubesctl --all state.highstate
$ sudo qubesctl --all state.highstate
You can now disable the ``sys-gui-vnc`` formula:
.. code:: console
sudo qubesctl top.disable qvm.sys-gui-vnc
$ sudo qubesctl top.disable qvm.sys-gui-vnc
At this point, you need to shutdown all your running qubes as the ``default_guivm`` qubes global property has been set to ``sys-gui-vnc``. Then, you can start ``sys-gui-vnc``:
.. code:: console
qvm-start sys-gui-vnc
$ qvm-start sys-gui-vnc
A VNC server session is running on ``localhost:5900`` in ``sys-gui-vnc``. In order to reach the ``VNC`` server, we encourage to not connect ``sys-gui-vnc`` to a ``NetVM`` but rather to use another qube for remote access, say ``sys-remote``. First, you need to bind port 5900 of ``sys-gui-vnc`` into a ``sys-remote`` local port (you may want to use another port than 5900 to reach ``sys-remote`` from the outside). For that, use ``qubes.ConnectTCP`` RPC service (see :doc:`Firewall </user/security-in-qubes/firewall>`. Then, you can use any ``VNC`` client to connect to you ``sys-remote`` on the chosen local port (5900 if you kept the default one). For the first connection, you will reach ``lightdm`` for which you can log as ``user`` where ``user`` refers to the first ``dom0`` user in ``qubes`` group and with corresponding ``dom0`` password.
@ -195,14 +195,14 @@ and for every selected qubes not using default value for GUI domain property, fo
.. code:: console
qvm-prefs personal guivm dom0
$ qvm-prefs personal guivm dom0
You are now able to delete the GUI domain, for example ``sys-gui-gpu``:
.. code:: console
qvm-remove -f sys-gui-gpu
$ qvm-remove -f sys-gui-gpu
.. |sys-gui| image:: /attachment/posts/guivm-hybrid.png

View file

@ -48,7 +48,7 @@ To downgrade a specific package in dom0:
.. code:: console
sudo qubes-dom0-update --action=downgrade package-version
$ sudo qubes-dom0-update --action=downgrade package-version
@ -60,7 +60,7 @@ To re-install a package in dom0:
.. code:: console
sudo qubes-dom0-update --action=reinstall package
$ sudo qubes-dom0-update --action=reinstall package
@ -72,7 +72,7 @@ If youve installed a package such as anti-evil-maid, you can remove it with t
.. code:: console
sudo dnf remove anti-evil-maid
$ sudo dnf remove anti-evil-maid
@ -96,9 +96,9 @@ To temporarily enable any of these repos, use the ``--enablerepo=<repo-name>`` o
.. code:: console
sudo qubes-dom0-update --enablerepo=qubes-dom0-current-testing
sudo qubes-dom0-update --enablerepo=qubes-dom0-security-testing
sudo qubes-dom0-update --enablerepo=qubes-dom0-unstable
$ sudo qubes-dom0-update --enablerepo=qubes-dom0-current-testing
$ sudo qubes-dom0-update --enablerepo=qubes-dom0-security-testing
$ sudo qubes-dom0-update --enablerepo=qubes-dom0-unstable
@ -154,7 +154,7 @@ Example
.. code:: console
sudo qubes-dom0-update --enablerepo=qubes-dom0-unstable kernel kernel-qubes-vm
$ sudo qubes-dom0-update --enablerepo=qubes-dom0-unstable kernel kernel-qubes-vm
@ -168,7 +168,7 @@ Replace the example version numbers with the one you are upgrading to.
.. code:: console
sudo dracut -f /boot/efi/EFI/qubes/initramfs-4.14.35-1.pvops.qubes.x86_64.img 4.14.35-1.pvops.qubes.x86_64
$ sudo dracut -f /boot/efi/EFI/qubes/initramfs-4.14.35-1.pvops.qubes.x86_64.img 4.14.35-1.pvops.qubes.x86_64
@ -178,7 +178,7 @@ Grub2
.. code:: console
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
@ -192,14 +192,25 @@ Changing default kernel
This section describes changing the default kernel in dom0. It is sometimes needed if you have upgraded to a newer kernel and are having problems booting, for example. On the next kernel update, the default will revert to the newest.
.. code:: console
sudo nano /etc/default/grub
[update the following two lines, add if needed]
$ sudo nano /etc/default/grub
Update the following two lines, add if needed:
.. code:: bash
GRUB_DISABLE_SUBMENU=false
GRUB_SAVEDEFAULT=true
[save and exit nano]
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Save and exit nano. Regenerate the GRUB 2 configuration.
.. code:: console
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg

View file

@ -22,7 +22,7 @@ In dom0, use ``qubes-dom0-update``:
.. code:: console
sudo qubes-dom0-update qubes-repo-contrib
$ sudo qubes-dom0-update qubes-repo-contrib
In a Fedora-based template, use ``dnf``:
@ -31,7 +31,7 @@ In a Fedora-based template, use ``dnf``:
.. code:: console
sudo dnf install qubes-repo-contrib
$ sudo dnf install qubes-repo-contrib
In a Debian-based template, use ``apt``:
@ -40,7 +40,7 @@ In a Debian-based template, use ``apt``:
.. code:: console
sudo apt update && sudo apt install qubes-repo-contrib
$ sudo apt update && sudo apt install qubes-repo-contrib
The new repository definition will be in the usual location for your distro, and it will follow the naming pattern ``qubes-contrib-*``, depending on your Qubes release and whether it is in dom0 or a template. For example, in a Fedora template on Qubes 4.0, the new repository definition would be:
@ -65,7 +65,7 @@ For example, to install ``qvm-screenshot-tool`` in dom0:
.. code:: console
sudo qubes-dom0-update --clean qvm-screenshot-tool
$ sudo qubes-dom0-update --clean qvm-screenshot-tool
Please see the packages README for specific installation and setup instructions.

View file

@ -117,6 +117,6 @@ The safest way to remove (most of) KDE is:
.. code:: console
sudo dnf remove kdelibs plasma-workspace
$ sudo dnf remove kdelibs plasma-workspace

View file

@ -246,8 +246,8 @@ Both debian-9 and fedora-26 templates already have grub and related tools preins
.. code:: console
qvm-prefs <clonetemplatename> virt_mode hvm
qvm-prefs <clonetemplatename> kernel ''
$ qvm-prefs <clonetemplatename> virt_mode hvm
$ qvm-prefs <clonetemplatename> kernel ''
@ -263,7 +263,7 @@ If you are using a distribution kernel package (``kernel`` package), the initram
.. code:: console
sudo dracut -f /boot/initramfs-4.15.14-200.fc26.x86_64.img 4.15.14-200.fc26.x86_64
$ sudo dracut -f /boot/initramfs-4.15.14-200.fc26.x86_64.img 4.15.14-200.fc26.x86_64
@ -271,7 +271,7 @@ Once the kernel is installed, you need to setup ``grub2`` by running:
.. code:: console
sudo grub2-install /dev/xvda
$ sudo grub2-install /dev/xvda
@ -279,7 +279,7 @@ Finally, you need to create a GRUB configuration. You may want to adjust some se
.. code:: console
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
@ -321,7 +321,7 @@ Install distribution kernel image, kernel headers and the grub.
.. code:: console
sudo apt install linux-image-amd64 linux-headers-amd64 grub2 qubes-kernel-vm-support
$ sudo apt install linux-image-amd64 linux-headers-amd64 grub2 qubes-kernel-vm-support
@ -329,7 +329,7 @@ If you are doing that on a qube based on “Debian Minimal” template, a grub g
.. code:: console
sudo grub-install /dev/xvda
$ sudo grub-install /dev/xvda
@ -383,7 +383,7 @@ Run DKMS. Replace this with actual kernel version.
.. code:: console
sudo dkms autoinstall -k <kernel-version>
$ sudo dkms autoinstall -k <kernel-version>
For example.
@ -392,7 +392,7 @@ For example.
.. code:: console
sudo dkms autoinstall -k 4.19.0-6-amd64
$ sudo dkms autoinstall -k 4.19.0-6-amd64
Update initramfs.
@ -401,7 +401,7 @@ Update initramfs.
.. code:: console
sudo update-initramfs -u
$ sudo update-initramfs -u
The output should look like this:

View file

@ -42,7 +42,7 @@ Use either GUI tool Qube Settings (``qubes-vm-settings``) or the CLI tool ``qvm-
.. code:: console
qvm-volume extend <vm_name>:root <size>
$ qvm-volume extend <vm_name>:root <size>
@ -50,7 +50,7 @@ OR
.. code:: console
qvm-volume extend <vm_name>:private <size>
$ qvm-volume extend <vm_name>:private <size>
@ -117,8 +117,8 @@ Or you can take the risk of reducing the size of the disk. For example, to reduc
.. code:: console
qvm-shutdown qube1
sudo lvresize --size 1024M /dev/qubes_dom0/vm-qube1-private
$ qvm-shutdown qube1
$ sudo lvresize --size 1024M /dev/qubes_dom0/vm-qube1-private

View file

@ -22,7 +22,7 @@ You can query qvm-pool to list available storage drivers:
.. code:: console
qvm-pool --help-drivers
$ qvm-pool --help-drivers
qvm-pool driver explanation:
@ -50,8 +50,8 @@ First, collect some information in a dom0 terminal:
.. code:: console
sudo pvs
sudo lvs
$ sudo pvs
$ sudo lvs
Take note of the VG and thin pool names for your second drive., then register it with Qubes:
@ -61,7 +61,7 @@ Take note of the VG and thin pool names for your second drive., then register it
# <pool_name> is a freely chosen pool name
# <vg_name> is LVM volume group name
# <thin_pool_name> is LVM thin pool name
qvm-pool --add <pool_name> lvm_thin -o volume_group=<vg_name>,thin_pool=<thin_pool_name>,revisions_to_keep=2
$ qvm-pool --add <pool_name> lvm_thin -o volume_group=<vg_name>,thin_pool=<thin_pool_name>,revisions_to_keep=2
@ -85,7 +85,7 @@ To register the storage to qubes:
# <pool_name> is a freely chosen pool name
# <dir_path> is the mounted path to the second btrfs storage
qvm-pool --add <pool_name> file-reflink -o dir_path=<dir_path>,revisions_to_keep=2
$ qvm-pool --add <pool_name> file-reflink -o dir_path=<dir_path>,revisions_to_keep=2
Using the new pool
@ -96,22 +96,22 @@ Now, you can create qubes in that pool:
.. code:: console
qvm-create -P <pool_name> --label red <vmname>
$ qvm-create -P <pool_name> --label red <vmname>
It isnt possible to directly migrate an existing qube to the new pool, but you can clone it there, then remove the old one:
.. code:: console
qvm-clone -P <pool_name> <sourceVMname> <cloneVMname>
qvm-remove <sourceVMname>
$ qvm-clone -P <pool_name> <sourceVMname> <cloneVMname>
$ qvm-remove <sourceVMname>
If that was a template, or other qube referenced elsewhere (netVM or such), you will need to adjust those references manually after moving. For example:
.. code:: console
qvm-prefs <appvmname_based_on_old_template> template <new_template_name>
$ qvm-prefs <appvmname_based_on_old_template> template <new_template_name>
Example setup of second drive.
@ -122,8 +122,8 @@ Assuming the secondary hard disk is at /dev/sdb , you can encrypt the drive as f
.. code:: console
sudo cryptsetup luksFormat --sector-size=512 /dev/sdb
sudo blkid /dev/sdb
$ sudo cryptsetup luksFormat --sector-size=512 /dev/sdb
$ sudo blkid /dev/sdb
@ -146,28 +146,28 @@ First create the physical volume:
.. code:: console
sudo pvcreate /dev/mapper/luks-b20975aa-8318-433d-8508-6c23982c6cde
$ sudo pvcreate /dev/mapper/luks-b20975aa-8318-433d-8508-6c23982c6cde
Then create the LVM volume group, we will use for example “qubes” as the :
.. code:: console
sudo vgcreate qubes /dev/mapper/luks-b20975aa-8318-433d-8508-6c23982c6cde
$ sudo vgcreate qubes /dev/mapper/luks-b20975aa-8318-433d-8508-6c23982c6cde
And then use “poolhd0” as the (LVM thin pool name):
.. code:: console
sudo lvcreate -T -n poolhd0 -l +100%FREE qubes
$ sudo lvcreate -T -n poolhd0 -l +100%FREE qubes
Finally we will tell Qubes to add a new pool on the just created thin pool:
.. code:: console
qvm-pool --add poolhd0_qubes lvm_thin -o volume_group=qubes,thin_pool=poolhd0,revisions_to_keep=2
$ qvm-pool --add poolhd0_qubes lvm_thin -o volume_group=qubes,thin_pool=poolhd0,revisions_to_keep=2
For Btrfs
@ -179,22 +179,22 @@ First create the physical volume:
.. code:: console
# <label> Btrfs Label
sudo mkfs.btrfs -L <label> /dev/mapper/luks-b20975aa-8318-433d-8508-6c23982c6cde
$ sudo mkfs.btrfs -L <label> /dev/mapper/luks-b20975aa-8318-433d-8508-6c23982c6cde
Then mount the new Btrfs to a temporary path:
.. code:: console
sudo mkdir -p /mnt/new_qube_storage
sudo mount /dev/mapper/luks-b20975aa-8318-433d-8508-6c23982c6cde /mnt/new_qube_storage
$ sudo mkdir -p /mnt/new_qube_storage
$ sudo mount /dev/mapper/luks-b20975aa-8318-433d-8508-6c23982c6cde /mnt/new_qube_storage
Create a subvolume to hold the data:
.. code:: console
sudo btrfs subvolume create /mnt/new_qube_storage/qubes
$ sudo btrfs subvolume create /mnt/new_qube_storage/qubes
@ -202,8 +202,8 @@ Unmount the temporary Btrfs filesystem:
.. code:: console
sudo umount /mnt/new_qube_storage
rmdir /mnt/new_qube_storage
$ sudo umount /mnt/new_qube_storage
$ rmdir /mnt/new_qube_storage
Mount the subvolume with compression enabled if desired:
@ -212,21 +212,21 @@ Mount the subvolume with compression enabled if desired:
# <compression> zlib|lzo|zstd
# <subvol> btrfs subvolume "qubes" in this example
sudo mount /dev/mapper/luks-b20975aa-8318-433d-8508-6c23982c6cde /var/lib/qubes_newpool -o compress=<compression>,subvol=qubes
$ sudo mount /dev/mapper/luks-b20975aa-8318-433d-8508-6c23982c6cde /var/lib/qubes_newpool -o compress=<compression>,subvol=qubes
Finally we will tell Qubes to add a new pool on the just created Btrfs subvolume:
.. code:: console
qvm-pool --add poolhd0_qubes file-reflink -o dir_path=/var/lib/qubes_newpool,revisions_to_keep=2
$ qvm-pool --add poolhd0_qubes file-reflink -o dir_path=/var/lib/qubes_newpool,revisions_to_keep=2
By default VMs will be created on the main Qubes disk (i.e. a small SSD), to create them on this secondary drive do the following on a dom0 terminal:
.. code:: console
qvm-create -P poolhd0_qubes --label red unstrusted-hdd
$ qvm-create -P poolhd0_qubes --label red unstrusted-hdd
Verify that corresponding lines were added to /etc/fstab and /etc/cryptab to enable auto mounting of the new pool.

View file

@ -46,7 +46,7 @@ Alternatively, to create an empty standalone from the dom0 command line:
.. code:: console
qvm-create --class StandaloneVM --label <YOUR_COLOR> --property virt_mode=hvm <NEW_STANDALONE_NAME>
$ qvm-create --class StandaloneVM --label <YOUR_COLOR> --property virt_mode=hvm <NEW_STANDALONE_NAME>
@ -54,7 +54,7 @@ Or to create a standalone copied from a template:
.. code:: console
qvm-create --class StandaloneVM --label <YOUR_COLOR> --property virt_mode=hvm --template <TEMPLATE_QUBE_NAME> <NEW_STANDALONE_NAME>
$ qvm-create --class StandaloneVM --label <YOUR_COLOR> --property virt_mode=hvm --template <TEMPLATE_QUBE_NAME> <NEW_STANDALONE_NAME>
@ -90,7 +90,7 @@ Qubes are template-based (i.e., :ref:`app qubes <user/reference/glossary:app qub
.. code:: console
qvm-create my-new-vm --class StandaloneVM --property virt_mode=hvm --property kernel='' --label=green
$ qvm-create my-new-vm --class StandaloneVM --property virt_mode=hvm --property kernel='' --label=green
@ -114,7 +114,7 @@ You will have to boot the qube with the installation media “attached” to it.
.. code:: console
qvm-start <YOUR_HVM> --cdrom=/dev/cdrom
$ qvm-start <YOUR_HVM> --cdrom=/dev/cdrom
@ -122,7 +122,7 @@ You will have to boot the qube with the installation media “attached” to it.
.. code:: console
qvm-start <YOUR_HVM> --cdrom=dom0:/usr/local/iso/<YOUR_INSTALLER.ISO>
$ qvm-start <YOUR_HVM> --cdrom=dom0:/usr/local/iso/<YOUR_INSTALLER.ISO>
@ -130,7 +130,7 @@ You will have to boot the qube with the installation media “attached” to it.
.. code:: console
qvm-start <YOUR_HVM> --cdrom=<YOUR_OTHER_QUBE>:/home/user/<YOUR_INSTALLER.ISO>
$ qvm-start <YOUR_HVM> --cdrom=<YOUR_OTHER_QUBE>:/home/user/<YOUR_INSTALLER.ISO>
@ -201,7 +201,7 @@ In order to create an HVM template, you use the following command, suitably adap
.. code:: console
qvm-create --class TemplateVM <YOUR_HVM_TEMPLATE_NAME> --property virt_mode=HVM --property kernel='' -l <YOUR_COLOR>
$ qvm-create --class TemplateVM <YOUR_HVM_TEMPLATE_NAME> --property virt_mode=HVM --property kernel='' -l <YOUR_COLOR>
@ -377,7 +377,7 @@ In a Debian app qube, install ``qemu-utils`` and ``unzip``:
.. code:: console
sudo apt install qemu-utils unzip
$ sudo apt install qemu-utils unzip
@ -385,7 +385,7 @@ In a Fedora app qube:
.. code:: console
sudo dnf install qemu-img
$ sudo dnf install qemu-img
@ -417,7 +417,7 @@ Copy the root image file from the originating qube (here called ``untrusted``) t
.. code:: console
qvm-run --pass-io untrusted 'cat "/media/user/externalhd/win10.raw"' > /home/user/win10-root.img
$ qvm-run --pass-io untrusted 'cat "/media/user/externalhd/win10.raw"' > /home/user/win10-root.img
@ -425,7 +425,7 @@ From within dom0, create a new HVM (here called ``win10``) with the root image w
.. code:: console
qvm-create --property=virt_mode=hvm --property=memory=4096 --property=kernel='' --label red --standalone --root-move-from /home/user/win10-root.img win10
$ qvm-create --property=virt_mode=hvm --property=memory=4096 --property=kernel='' --label red --standalone --root-move-from /home/user/win10-root.img win10
@ -433,7 +433,7 @@ Start ``win10``:
.. code:: console
qvm-start win10
$ qvm-start win10

View file

@ -30,7 +30,7 @@ First, make sure you have the latest ``qubes-mgmt-salt-dom0-virtual-machines`` p
.. code:: console
sudo qubesctl state.sls qvm.usb-keyboard
$ sudo qubesctl state.sls qvm.usb-keyboard
@ -148,7 +148,7 @@ You can create a USB qube using the management stack by executing the following
.. code:: console
sudo qubesctl state.sls qvm.sys-usb
$ sudo qubesctl state.sls qvm.sys-usb

View file

@ -14,7 +14,7 @@ For the private volume associated with a VM named *vmname*, you may inspect the
.. code:: console
qvm-volume info vmname:private
$ qvm-volume info vmname:private
@ -22,7 +22,7 @@ The output of the above command will also display the “Available revisions (fo
.. code:: console
qvm-volume config vmname:private revisions_to_keep 2
$ qvm-volume config vmname:private revisions_to_keep 2
@ -30,6 +30,6 @@ With the VM stopped, you may revert to an older snapshot of the private volume f
.. code:: console
qvm-volume revert vmname:private <revision>
$ qvm-volume revert vmname:private <revision>

View file

@ -64,8 +64,8 @@ To temporarily enable any of these repos, use the ``--enablerepo=<repo-name>`` o
.. code:: console
qvm-template --enablerepo=qubes-templates-itl-testing list --available
qvm-template --enablerepo=qubes-templates-itl-testing install <template_name>
$ qvm-template --enablerepo=qubes-templates-itl-testing list --available
$ qvm-template --enablerepo=qubes-templates-itl-testing install <template_name>

View file

@ -33,7 +33,7 @@ Note that dom0 in R2 is based on Fedora 20, in contrast to Fedora 18 in previous
.. code:: console
sudo qubes-dom0-update
$ sudo qubes-dom0-update
@ -51,8 +51,8 @@ After this step you should have ``qubes-release-2-5`` in your Dom0. Important: i
.. code:: console
sudo qubes-dom0-update qubes-dom0-dist-upgrade
sudo qubes-dom0-update
$ sudo qubes-dom0-update qubes-dom0-dist-upgrade
$ sudo qubes-dom0-update
@ -66,7 +66,7 @@ After this step you should have ``qubes-release-2-5`` in your Dom0. Important: i
.. code:: console
sudo qubes-dom0-update qubes-template-fedora-20-x64
$ sudo qubes-dom0-update qubes-template-fedora-20-x64

View file

@ -21,7 +21,7 @@ By default, in Qubes R1, there is only one template, however users are free to c
.. code:: console
sudo yum install qubes-upgrade-vm
$ sudo yum install qubes-upgrade-vm
@ -29,7 +29,7 @@ By default, in Qubes R1, there is only one template, however users are free to c
.. code:: console
sudo yum update
$ sudo yum update
The installer (yum) will prompt to accept the new Qubes R2 signing key:
@ -72,7 +72,7 @@ Be sure to do steps described in this section after *all* your template and stan
.. code:: console
sudo qubes-dom0-update qubes-release
$ sudo qubes-dom0-update qubes-release
This should install ``qubes-release-1-6`` in your Dom0.
@ -81,7 +81,7 @@ Be sure to do steps described in this section after *all* your template and stan
.. code:: console
sudo qubes-dom0-update --releasever=2
$ sudo qubes-dom0-update --releasever=2

View file

@ -19,7 +19,7 @@ By default, in Qubes R1, there is only one template, however users are free to c
.. code:: console
sudo yum install qubes-upgrade-vm
$ sudo yum install qubes-upgrade-vm
@ -27,7 +27,7 @@ By default, in Qubes R1, there is only one template, however users are free to c
.. code:: console
sudo yum update
$ sudo yum update
The installer (yum) will prompt to accept the new Qubes R2 signing key:
@ -88,7 +88,7 @@ Be sure to do steps described in this section after *all* your template and stan
.. code:: console
sudo qubes-dom0-update qubes-release
$ sudo qubes-dom0-update qubes-release
This should install ``qubes-release-1-6`` in your Dom0.
@ -97,7 +97,7 @@ Be sure to do steps described in this section after *all* your template and stan
.. code:: console
sudo qubes-dom0-update --releasever=1 qubes-dist-upgrade
$ sudo qubes-dom0-update --releasever=1 qubes-dist-upgrade
@ -105,7 +105,7 @@ Be sure to do steps described in this section after *all* your template and stan
.. code:: console
sudo qubes-dist-upgrade
$ sudo qubes-dist-upgrade
@ -117,7 +117,7 @@ Be sure to do steps described in this section after *all* your template and stan
.. code:: console
sudo qubes-dist-upgrade
$ sudo qubes-dist-upgrade
again. This will start second stage of upgrade, here most packages will be upgraded, so this will take a while.

View file

@ -23,7 +23,7 @@ It is critical to complete this step **before** proceeding to dom0 upgrade. Othe
.. code:: console
sudo yum update
$ sudo yum update
@ -39,7 +39,7 @@ It is critical to complete this step **before** proceeding to dom0 upgrade. Othe
.. code:: console
sudo yum --enablerepo=qubes-vm-r2b3-current update
$ sudo yum --enablerepo=qubes-vm-r2b3-current update
@ -59,7 +59,7 @@ Be sure to do steps described in this section after *all* your template and stan
.. code:: console
sudo qubes-dom0-update qubes-release
$ sudo qubes-dom0-update qubes-release
This should install ``qubes-release-2-3.1`` in your Dom0.
@ -68,7 +68,7 @@ Be sure to do steps described in this section after *all* your template and stan
.. code:: console
sudo qubes-dom0-update --enablerepo=qubes-dom0-r2b3-current
$ sudo qubes-dom0-update --enablerepo=qubes-dom0-r2b3-current
@ -78,7 +78,7 @@ Be sure to do steps described in this section after *all* your template and stan
.. code:: console
qvm-shutdown --all --wait
$ qvm-shutdown --all --wait

View file

@ -29,7 +29,7 @@ Upgrade Fedora template:
.. code:: console
sudo yum install qubes-upgrade-vm
$ sudo yum install qubes-upgrade-vm
@ -37,7 +37,7 @@ Upgrade Fedora template:
.. code:: console
sudo yum update
$ sudo yum update
Youll need to accept “Qubes Release 3 Signing Key” - it is delivered by signed qubes-upgrade-vm package (verify that the message is about local file), so you dont need to manually verify it.
@ -56,9 +56,8 @@ Upgrade Debian template:
.. code:: console
sudo cp /etc/apt/sources.list.d/qubes-r2.list
/etc/apt/sources.list.d/qubes-r3-upgrade.list
sudo sed -i 's/r2/r3.0/' /etc/apt/sources.list.d/qubes-r3-upgrade.list
$ sudo cp /etc/apt/sources.list.d/qubes-r2.list /etc/apt/sources.list.d/qubes-r3-upgrade.list
$ sudo sed -i 's/r2/r3.0/' /etc/apt/sources.list.d/qubes-r3-upgrade.list
@ -66,8 +65,8 @@ Upgrade Debian template:
.. code:: console
sudo apt-get update
sudo apt-get dist-upgrade
$ sudo apt-get update
$ sudo apt-get dist-upgrade
There will be some error messages during the process, but our tests does not revealed any negative consequences. Update of ``qubesdb-vm`` package will restart the service, which will fail (after 3min timeout), but you can ignore this problem for now. After completing the whole upgrade the service will be properly restarted.
@ -88,7 +87,7 @@ Be sure to do steps described in this section after *all* your template and stan
.. code:: console
sudo qubes-dom0-update qubes-release
$ sudo qubes-dom0-update qubes-release
This should install ``qubes-release-2-12`` in your Dom0.
@ -97,7 +96,7 @@ Be sure to do steps described in this section after *all* your template and stan
.. code:: console
sudo qubes-dom0-update --releasever=3.0
$ sudo qubes-dom0-update --releasever=3.0
After this step, until you reboot the system, most of the qvm-* tools will not work.
@ -108,7 +107,7 @@ Be sure to do steps described in this section after *all* your template and stan
.. code:: console
sudo systemctl enable xenconsoled.service xenstored.service
$ sudo systemctl enable xenconsoled.service xenstored.service
@ -126,7 +125,7 @@ Now, when you have dom0 upgraded, you can install new templates from Qubes R3.0
.. code:: console
sudo qubes-dom0-update qubes-template-fedora-21
$ sudo qubes-dom0-update qubes-template-fedora-21
@ -186,10 +185,10 @@ Because of above limitations, you will need to configure some of those manually.
.. code:: console
ip addr add 10.137.1.53/32 dev eth0
ip route add 10.137.1.1/32 dev eth0
ip route add via 10.137.1.1
echo nameserver 10.137.1.1 > /etc/resolv.conf
$ ip addr add 10.137.1.53/32 dev eth0
$ ip route add 10.137.1.1/32 dev eth0
$ ip route add via 10.137.1.1
$ echo nameserver 10.137.1.1 > /etc/resolv.conf

View file

@ -23,7 +23,7 @@ Upgrade Fedora templates:
.. code:: console
sudo yum install qubes-upgrade-vm
$ sudo yum install qubes-upgrade-vm
@ -31,7 +31,7 @@ Upgrade Fedora templates:
.. code:: console
sudo yum upgrade
$ sudo yum upgrade
@ -49,8 +49,8 @@ Upgrade Debian (and Whonix) templates:
.. code:: console
sudo cp /etc/apt/sources.list.d/qubes-r3.list /etc/apt/sources.list.d/qubes-r3-upgrade.list
sudo sed -i 's/r3.0/r3.1/' /etc/apt/sources.list.d/qubes-r3-upgrade.list
$ sudo cp /etc/apt/sources.list.d/qubes-r3.list /etc/apt/sources.list.d/qubes-r3-upgrade.list
$ sudo sed -i 's/r3.0/r3.1/' /etc/apt/sources.list.d/qubes-r3-upgrade.list
@ -58,8 +58,8 @@ Upgrade Debian (and Whonix) templates:
.. code:: console
sudo apt-get update
sudo apt-get dist-upgrade
$ sudo apt-get update
$ sudo apt-get dist-upgrade
@ -67,7 +67,7 @@ Upgrade Debian (and Whonix) templates:
.. code:: console
sudo rm -f /etc/apt/sources.list.d/qubes-r3-upgrade.list
$ sudo rm -f /etc/apt/sources.list.d/qubes-r3-upgrade.list
@ -87,7 +87,7 @@ Upgrading dom0
.. code:: console
sudo qubes-dom0-update --releasever=3.1
$ sudo qubes-dom0-update --releasever=3.1
At this point, most of the ``qvm-*`` tools will stop working until after you reboot the system.
@ -110,6 +110,6 @@ Once you have upgraded dom0, you can install new templates from Qubes R3.1 repos
.. code:: console
sudo qubes-dom0-update qubes-template-fedora-23
$ sudo qubes-dom0-update qubes-template-fedora-23

View file

@ -19,7 +19,7 @@ Upgrading dom0
.. code:: console
sudo qubes-dom0-update --releasever=3.2 qubes-release
$ sudo qubes-dom0-update --releasever=3.2 qubes-release
@ -31,7 +31,7 @@ Upgrading dom0
.. code:: console
sudo qubes-dom0-update systemd-compat-libs perl-libwww-perl perl-Term-ANSIColor perl-Term-Cap gdk-pixbuf2-xlib speexdsp qubes-mgmt-salt-admin-tools lvm2
$ sudo qubes-dom0-update systemd-compat-libs perl-libwww-perl perl-Term-ANSIColor perl-Term-Cap gdk-pixbuf2-xlib speexdsp qubes-mgmt-salt-admin-tools lvm2
(...)
Transaction Summary
===============================================================
@ -50,7 +50,7 @@ Upgrading dom0
.. code:: console
sudo qubes-dom0-update
$ sudo qubes-dom0-update
@ -118,7 +118,7 @@ Upgrade Fedora templates:
.. code:: console
sudo dnf install --refresh qubes-upgrade-vm
$ sudo dnf install --refresh qubes-upgrade-vm
@ -126,7 +126,7 @@ Upgrade Fedora templates:
.. code:: console
sudo dnf upgrade --refresh
$ sudo dnf upgrade --refresh
@ -134,7 +134,7 @@ Upgrade Fedora templates:
.. code:: console
sudo dnf install qubes-mgmt-salt-vm-connector
$ sudo dnf install qubes-mgmt-salt-vm-connector
@ -152,8 +152,8 @@ Upgrade Debian (and Whonix) templates:
.. code:: console
sudo cp /etc/apt/sources.list.d/qubes-r3.list /etc/apt/sources.list.d/qubes-r3-upgrade.list
sudo sed -i 's/r3.1/r3.2/' /etc/apt/sources.list.d/qubes-r3-upgrade.list
$ sudo cp /etc/apt/sources.list.d/qubes-r3.list /etc/apt/sources.list.d/qubes-r3-upgrade.list
$ sudo sed -i 's/r3.1/r3.2/' /etc/apt/sources.list.d/qubes-r3-upgrade.list
@ -161,8 +161,8 @@ Upgrade Debian (and Whonix) templates:
.. code:: console
sudo apt-get update
sudo apt-get dist-upgrade
$ sudo apt-get update
$ sudo apt-get dist-upgrade
@ -170,7 +170,7 @@ Upgrade Debian (and Whonix) templates:
.. code:: console
sudo apt-get install qubes-mgmt-salt-vm-connector
$ sudo apt-get install qubes-mgmt-salt-vm-connector
@ -178,7 +178,7 @@ Upgrade Debian (and Whonix) templates:
.. code:: console
sudo rm -f /etc/apt/sources.list.d/qubes-r3-upgrade.list
$ sudo rm -f /etc/apt/sources.list.d/qubes-r3-upgrade.list

View file

@ -65,7 +65,7 @@ Restore from your backup
.. code:: console
sudo qubes-dom0-update
$ sudo qubes-dom0-update

View file

@ -39,7 +39,7 @@ In place upgrade is a complex operation. For this reason, we provide a ``qubes-d
.. code:: console
sudo qubes-dom0-update -y qubes-dist-upgrade
$ sudo qubes-dom0-update -y qubes-dist-upgrade
@ -84,7 +84,7 @@ After installing the tool, upgrade can be performed all at once with:
.. code:: console
sudo qubes-dist-upgrade --all
$ sudo qubes-dist-upgrade --all
@ -96,7 +96,7 @@ After completing “STAGE 0” through “STAGE 5”, restart the system. Then p
.. code:: console
sudo qubes-dist-upgrade --resync-appmenus-features
$ sudo qubes-dist-upgrade --resync-appmenus-features

View file

@ -23,7 +23,7 @@ If you would prefer to perform a clean installation rather than upgrading in-pla
.. code:: console
sudo qubes-dom0-update -y qubes-dist-upgrade
$ sudo qubes-dom0-update -y qubes-dist-upgrade
@ -58,7 +58,7 @@ In place upgrade is a complex operation. For this reason, we provide a ``qubes-d
.. code:: console
sudo qubes-dom0-update -y qubes-dist-upgrade
$ sudo qubes-dom0-update -y qubes-dist-upgrade
@ -104,7 +104,7 @@ After installing the tool, before-reboot stages can be performed at once with:
.. code:: console
sudo qubes-dist-upgrade --all-pre-reboot
$ sudo qubes-dist-upgrade --all-pre-reboot
@ -116,7 +116,7 @@ After completing “STAGE 1” through “STAGE 3”, restart the system. Then p
.. code:: console
sudo qubes-dist-upgrade --all-post-reboot
$ sudo qubes-dist-upgrade --all-post-reboot

View file

@ -30,13 +30,13 @@ The same operations are also available via these command-line tools:
.. code:: console
qvm-copy [--without-progress] file [file]+
$ qvm-copy [--without-progress] file [file]+
.. code:: console
qvm-move [--without-progress] file [file]+
$ qvm-move [--without-progress] file [file]+

View file

@ -68,7 +68,7 @@ To enable automatic wiping of the clipboard after a minute use ``qvm-service``:
.. code:: console
qvm-service --enable VMNAME gui-agent-clipboard-wipe
$ qvm-service --enable VMNAME gui-agent-clipboard-wipe
@ -80,8 +80,8 @@ The copy/paste shortcuts are configurable via ``qvm-features``, e.g.
.. code:: console
qvm-features dom0 gui-default-secure-copy-sequence 'Mod4-c'
qvm-features dom0 gui-default-secure-paste-sequence 'Mod4-v'
$ qvm-features dom0 gui-default-secure-copy-sequence 'Mod4-c'
$ qvm-features dom0 gui-default-secure-paste-sequence 'Mod4-v'

View file

@ -17,7 +17,7 @@ To copy a file from dom0 to a VM, simply use ``qvm-copy-to-vm``:
.. code:: console
qvm-copy-to-vm <target_vm> <file>
$ qvm-copy-to-vm <target_vm> <file>
@ -73,7 +73,7 @@ If you are determined to copy some files to dom0 anyway, you can use the followi
.. code:: console
qvm-run --pass-io <src-vm> 'cat /path/to/file_in_src_domain' > /path/to/file_name_in_dom0
$ qvm-run --pass-io <src-vm> 'cat /path/to/file_in_src_domain' > /path/to/file_name_in_dom0

View file

@ -157,9 +157,9 @@ To temporarily enable any of these repos, use the ``--enablerepo=<repo-name>`` o
.. code:: console
sudo dnf upgrade --enablerepo=qubes-vm-*-current-testing
sudo dnf upgrade --enablerepo=qubes-vm-*-security-testing
sudo dnf upgrade --enablerepo=qubes-vm-*-unstable
$ sudo dnf upgrade --enablerepo=qubes-vm-*-current-testing
$ sudo dnf upgrade --enablerepo=qubes-vm-*-security-testing
$ sudo dnf upgrade --enablerepo=qubes-vm-*-unstable
@ -195,11 +195,11 @@ If you would like to enable the `RPM Fusion <https://rpmfusion.org/>`__ reposito
.. code:: console
sudo dnf config-manager setopt rpmfusion-free.enabled=1
sudo dnf config-manager setopt rpmfusion-free-updates.enabled=1
sudo dnf config-manager setopt rpmfusion-nonfree.enabled=1
sudo dnf config-manager setopt rpmfusion-nonfree-updates.enabled=1
sudo dnf upgrade --refresh
$ sudo dnf config-manager setopt rpmfusion-free.enabled=1
$ sudo dnf config-manager setopt rpmfusion-free-updates.enabled=1
$ sudo dnf config-manager setopt rpmfusion-nonfree.enabled=1
$ sudo dnf config-manager setopt rpmfusion-nonfree-updates.enabled=1
$ sudo dnf upgrade --refresh
@ -231,7 +231,7 @@ Root revert
.. code:: console
qvm-volume revert <template>:root
$ qvm-volume revert <template>:root

View file

@ -29,9 +29,9 @@ If not specified otherwise, block devices will show up as ``/dev/xvdi*`` in a li
.. code:: console
cd ~
mkdir mnt
sudo mount /dev/xvdi2 mnt
$ cd ~
$ mkdir mnt
$ sudo mount /dev/xvdi2 mnt
@ -57,7 +57,7 @@ In case of a USB-drive, make sure its attached to your computer. If you don
.. code:: console
qvm-block
$ qvm-block
This will list all available block devices in your system across all VMs. The name of the qube hosting the block device is displayed before the colon in the device ID. The string after the colon is the ID of the device used within the qube, like so:
@ -73,7 +73,7 @@ In case of a USB-drive, make sure its attached to your computer. If you don
.. code:: console
qvm-block attach work sys-usb:sdb
$ qvm-block attach work sys-usb:sdb
@ -87,9 +87,9 @@ In case of a USB-drive, make sure its attached to your computer. If you don
.. code:: console
cd ~
mkdir mnt
sudo mount /dev/xvdi mnt
$ cd ~
$ mkdir mnt
$ sudo mount /dev/xvdi mnt
@ -101,7 +101,7 @@ In case of a USB-drive, make sure its attached to your computer. If you don
.. code:: console
sudo umount mnt
$ sudo umount mnt
@ -109,7 +109,7 @@ In case of a USB-drive, make sure its attached to your computer. If you don
.. code:: console
qvm-block detach work sys-usb:sdb
$ qvm-block detach work sys-usb:sdb
@ -177,7 +177,7 @@ To attach a file as block device to another qube, first turn it into a loopback
.. code:: console
sudo losetup -f --show /path/to/file
$ sudo losetup -f --show /path/to/file
`This command <https://linux.die.net/man/8/losetup>`__ will create the device node ``/dev/loop0`` or, if that is already in use, increase the trailing integer until that name is still available. Afterwards it prints the device-node-name it found.
@ -201,7 +201,7 @@ To attach a file as block device to another qube, first turn it into a loopback
.. code:: console
qvm-block a targetVM sourceVM:loop0
$ qvm-block a targetVM sourceVM:loop0
@ -209,7 +209,7 @@ To attach a file as block device to another qube, first turn it into a loopback
.. code:: console
sudo losetup -d /dev/loop0
$ sudo losetup -d /dev/loop0
@ -231,7 +231,7 @@ usage example:
.. code:: console
qvm-block a work sys-usb:sda1 -o frontend-dev=xvdz
$ qvm-block a work sys-usb:sda1 -o frontend-dev=xvdz
@ -249,7 +249,7 @@ usage example:
.. code:: console
qvm-block a work sys-usb:sda1 -o read-only=true
$ qvm-block a work sys-usb:sda1 -o read-only=true
@ -257,7 +257,7 @@ There exists a shortcut to set read-only ``true``, ``--ro``:
.. code:: console
qvm-block a work sys-usb:sda1 --ro
$ qvm-block a work sys-usb:sda1 --ro
@ -273,7 +273,7 @@ usage example:
.. code:: console
qvm-block a work sys-usb:sda1 -o devtype=cdrom
$ qvm-block a work sys-usb:sda1 -o devtype=cdrom

View file

@ -65,7 +65,7 @@ You can set any app qube to have the ability to act as a disposable template wit
.. code:: console
qvm-prefs <APP_QUBE> template_for_dispvms True
$ qvm-prefs <APP_QUBE> template_for_dispvms True
@ -75,7 +75,7 @@ You can change this behavior for individual qubes: in the Application Menu, open
.. code:: console
qvm-prefs <QUBE> default_dispvm <DISPOSABLE_TEMPLATE>
$ qvm-prefs <QUBE> default_dispvm <DISPOSABLE_TEMPLATE>
@ -91,7 +91,7 @@ A disposable launched from the app menu inherits the net qube and firewall setti
.. code:: console
qvm-features <DISPOSABLE_TEMPLATE> appmenus-dispvm 1
$ qvm-features <DISPOSABLE_TEMPLATE> appmenus-dispvm 1
@ -99,7 +99,7 @@ To launch a disposable template from the command line, execute the following com
.. code:: console
qvm-run --dispvm=<DISPOSABLE_TEMPLATE> --service qubes.StartApp+<APPLICATION>
$ qvm-run --dispvm=<DISPOSABLE_TEMPLATE> --service qubes.StartApp+<APPLICATION>

View file

@ -55,7 +55,7 @@ To figure out what device to attach, first list the available PCI devices by run
.. code:: console
qvm-pci
$ qvm-pci
@ -63,7 +63,7 @@ This will show you the ``backend:BDF`` (Bus_Device.Function) address of each PCI
.. code:: console
qvm-pci attach targetVM sourceVM:[BDF] --persistent
$ qvm-pci attach targetVM sourceVM:[BDF] --persistent
@ -73,7 +73,7 @@ For example, if ``00_1a.0`` is the BDF of the device you want to attach to the
.. code:: console
qvm-pci attach work dom0:00_1a.0 --persistent
$ qvm-pci attach work dom0:00_1a.0 --persistent
@ -101,7 +101,7 @@ usage example:
.. code:: console
qvm-pci a work dom0:00_1a.0 --persistent -o no-strict-reset=true
$ qvm-pci a work dom0:00_1a.0 --persistent -o no-strict-reset=true
@ -115,7 +115,7 @@ usage example:
.. code:: console
qvm-pci a work dom0:00_1a.0 --persistent -o permissive=true
$ qvm-pci a work dom0:00_1a.0 --persistent -o permissive=true
@ -141,10 +141,10 @@ or
.. code:: console
echo <BDF> > /sys/bus/pci/drivers/pciback/unbind
MODALIAS=`cat /sys/bus/pci/devices/<BDF>/modalias`
MOD=`modprobe -R $MODALIAS | head -n 1`
echo <BDF> > /sys/bus/pci/drivers/$MOD/bind
$ echo <BDF> > /sys/bus/pci/drivers/pciback/unbind
$ MODALIAS=`cat /sys/bus/pci/devices/<BDF>/modalias`
$ MOD=`modprobe -R $MODALIAS | head -n 1`
$ echo <BDF> > /sys/bus/pci/drivers/$MOD/bind

View file

@ -104,7 +104,7 @@ If you receive this error: ``ERROR: qubes-usb-proxy not installed in the qube``,
.. code:: console
sudo dnf install qubes-usb-proxy
$ sudo dnf install qubes-usb-proxy
@ -112,7 +112,7 @@ If you receive this error: ``ERROR: qubes-usb-proxy not installed in the qube``,
.. code:: console
sudo apt-get install qubes-usb-proxy
$ sudo apt-get install qubes-usb-proxy
@ -138,7 +138,7 @@ First, find out which USB bus the device is connected to (note that these steps
.. code:: console
lsusb
$ lsusb
@ -174,7 +174,7 @@ Now you see the path: the text between ``/pci0000:00/0000:`` and ``/usb3`` i.e.
.. code:: console
qvm-pci attach --persistent personal dom0:00_1a.0
$ qvm-pci attach --persistent personal dom0:00_1a.0

View file

@ -25,7 +25,7 @@ In Dom0 install ``anti-evil-maid``:
.. code:: console
sudo qubes-dom0-update anti-evil-maid
$ sudo qubes-dom0-update anti-evil-maid

View file

@ -106,8 +106,8 @@ If your USB qube is named differently than ``sys-usb``, then do the following in
.. code:: console
systemctl enable qubes-ctapproxy@USB_QUBE.service
systemctl disable qubes-ctapproxy@sys-usb.service
$ systemctl enable qubes-ctapproxy@USB_QUBE.service
$ systemctl disable qubes-ctapproxy@sys-usb.service

View file

@ -63,7 +63,7 @@ Normally Qubes doesnt let the user stop a NetVM if there are other qubes runn
.. code:: console
qvm-prefs <vm> netvm <netvm>
$ qvm-prefs <vm> netvm <netvm>
@ -71,7 +71,7 @@ Normally qubes do not connect directly to the actual NetVM (sys-net by default)
.. code:: console
qvm-prefs sys-firewall netvm sys-net
$ qvm-prefs sys-firewall netvm sys-net
@ -123,7 +123,7 @@ In order to allow networking from qube A (client) to qube B (server) follow thes
.. code:: console
sudo nft add rule ip qubes custom-forward ip saddr <IP address of A> ip daddr <IP address of B> ct state new,established,related counter accept
$ sudo nft add rule ip qubes custom-forward ip saddr <IP address of A> ip daddr <IP address of B> ct state new,established,related counter accept
@ -133,7 +133,7 @@ In order to allow networking from qube A (client) to qube B (server) follow thes
.. code:: console
sudo nft add rule qubes custom-input ip saddr <IP address of A> ct state new,established,related counter accept
$ sudo nft add rule qubes custom-input ip saddr <IP address of A> ct state new,established,related counter accept

View file

@ -111,7 +111,7 @@ In order to allow networking between qubes A and B follow these steps:
.. code:: console
sudo iptables -I FORWARD 2 -s <IP address of A> -d <IP address of B> -j ACCEPT
$ sudo iptables -I FORWARD 2 -s <IP address of A> -d <IP address of B> -j ACCEPT
@ -121,7 +121,7 @@ In order to allow networking between qubes A and B follow these steps:
.. code:: console
sudo iptables -I INPUT -s <IP address of A> -j ACCEPT
$ sudo iptables -I INPUT -s <IP address of A> -j ACCEPT
@ -380,7 +380,7 @@ Once you have confirmed that the counters increase, store these command in ``/rw
.. code:: console
sudo nano /rw/config/rc.local
$ sudo nano /rw/config/rc.local
@ -485,7 +485,7 @@ Once you have confirmed that the counters increase, store these command in ``/rw
.. code:: console
sudo nano /rw/config/qubes-firewall-user-script
$ sudo nano /rw/config/qubes-firewall-user-script
@ -550,7 +550,7 @@ Finally make this file executable (so it runs at every Firewall VM update)
.. code:: console
sudo chmod +x /rw/config/qubes-firewall-user-script
$ sudo chmod +x /rw/config/qubes-firewall-user-script
@ -562,7 +562,7 @@ Here no routing is required, only filtering. Proceed in the same way as above bu
.. code:: console
sudo nano /rw/config/rc.local
$ sudo nano /rw/config/rc.local

View file

@ -27,7 +27,7 @@ As the name implies, this generates authentication code that is time-dependent.
.. code:: console
sudo qubes-dom0-update google-authenticator
$ sudo qubes-dom0-update google-authenticator
@ -86,7 +86,7 @@ Now we are going to add the authenticator as a login requirement:
.. code:: console
sudo authselect select custom/mfa
$ sudo authselect select custom/mfa
@ -110,7 +110,7 @@ The following assumes you havent restarted your computer since setting up TOT
.. code:: console
sudo authselect select sssd
$ sudo authselect select sssd
@ -170,7 +170,7 @@ All these requirements are described below, step by step, for the YubiKey and Ni
.. code:: console
sudo dnf install ykpers
$ sudo dnf install ykpers
@ -180,7 +180,7 @@ All these requirements are described below, step by step, for the YubiKey and Ni
.. code:: console
sudo apt-get install yubikey-personalization
$ sudo apt-get install yubikey-personalization
@ -204,7 +204,7 @@ All these requirements are described below, step by step, for the YubiKey and Ni
.. code:: console
sudo qubes-dom0-update qubes-yubikey-dom0
$ sudo qubes-dom0-update qubes-yubikey-dom0
@ -291,7 +291,7 @@ All these requirements are described below, step by step, for the YubiKey and Ni
.. code:: console
echo -n "$password" | openssl dgst -sha1 | cut -f2 -d ' '
$ echo -n "$password" | openssl dgst -sha1 | cut -f2 -d ' '
@ -363,7 +363,7 @@ In dom0:
.. code:: console
sudo chmod +x /etc/qubes-rpc/custom.LockScreen
$ sudo chmod +x /etc/qubes-rpc/custom.LockScreen
@ -400,7 +400,7 @@ In your USB VM:
.. code:: console
sudo chmod +x /rw/config/rc.local
$ sudo chmod +x /rw/config/rc.local
@ -408,7 +408,7 @@ In your USB VM:
.. code:: console
sudo /rw/config/rc.local
$ sudo /rw/config/rc.local

View file

@ -75,9 +75,9 @@ If you have a Debian template from an earlier release that you want to use for s
.. code:: console
sudo apt-mark hold salt-common salt-ssh
sudo apt update
sudo apt upgrade
$ sudo apt-mark hold salt-common salt-ssh
$ sudo apt update
$ sudo apt upgrade

View file

@ -205,14 +205,14 @@ When you install a new template or :ref:`upgrade <user/how-to-guides/how-to-upda
.. code:: console
qvm-shutdown --wait --all; qvm-prefs <SYS_USB_DISPOSABLE_TEMPLATE> template <NEW_TEMPLATE>; qvm-start <USB_QUBE>
$ qvm-shutdown --wait --all; qvm-prefs <SYS_USB_DISPOSABLE_TEMPLATE> template <NEW_TEMPLATE>; qvm-start <USB_QUBE>
With substitutions, your command should look similar to this example. (**Warning:** This is just an example. Do not attempt to use it.)
.. code:: console
qvm-shutdown --wait --all; qvm-prefs fedora-01-dvm template fedora-02; qvm-start sys-usb
$ qvm-shutdown --wait --all; qvm-prefs fedora-01-dvm template fedora-02; qvm-start sys-usb

View file

@ -122,8 +122,8 @@ This will allow you to install the Qubes Windows Tools on Windows 10 both as a S
.. code:: console
qvm-features <VMname> gui 1
qvm-prefs <VMname> qrexec_timeout 300
$ qvm-features <VMname> gui 1
$ qvm-prefs <VMname> qrexec_timeout 300
@ -135,7 +135,7 @@ This will allow you to install the Qubes Windows Tools on Windows 10 both as a S
.. code:: console
qvm-prefs <VMname> default_user <username>
$ qvm-prefs <VMname> default_user <username>
@ -159,7 +159,7 @@ First, make sure that ``qubes-windows-tools`` is installed in your system:
.. code:: console
sudo qubes-dom0-update qubes-windows-tools
$ sudo qubes-dom0-update qubes-windows-tools
@ -169,7 +169,7 @@ You can also install the package from testing repositories, where we usually pub
.. code:: console
sudo qubes-dom0-update --enablerepo=qubes-dom0-current-testing qubes-windows-tools
$ sudo qubes-dom0-update --enablerepo=qubes-dom0-current-testing qubes-windows-tools
@ -191,7 +191,7 @@ To install the Qubes Windows Tools in a Windows VM one should start the VM passi
.. code:: console
qvm-start lab-win7 --install-windows-tools
$ qvm-start lab-win7 --install-windows-tools
@ -203,7 +203,7 @@ Qubes will automatically detect the tools has been installed in the VM and will
.. code:: console
qvm-prefs <your-appvm-name>
$ qvm-prefs <your-appvm-name>
@ -211,7 +211,7 @@ Qubes will automatically detect the tools has been installed in the VM and will
.. code:: console
qvm-prefs <vm-name> qrexec_timeout 300
$ qvm-prefs <vm-name> qrexec_timeout 300
@ -247,7 +247,7 @@ With Qubes Windows Tools installed the early graphical console provided in debug
.. code:: console
qvm-prefs -s win7new debug false
$ qvm-prefs -s win7new debug false
@ -261,7 +261,7 @@ Once you start a Windows-based AppVM with Qubes Tools installed, you can easily
.. code:: console
qvm-run -a my-win7-appvm explorer.exe
$ qvm-run -a my-win7-appvm explorer.exe
@ -305,7 +305,7 @@ In order to create a HVM TemplateVM one can use the following command, suitably
.. code:: console
qvm-create --class TemplateVM win-template --property virt_mode=HVM --property kernel='' -l green
$ qvm-create --class TemplateVM win-template --property virt_mode=HVM --property kernel='' -l green
@ -335,7 +335,7 @@ Once the template has been created and installed it is easy to create AppVMs bas
.. code:: console
qvm-create --property virt_mode=hvm <new windows appvm name> --template <name of template vm> --label <label color>
$ qvm-create --property virt_mode=hvm <new windows appvm name> --template <name of template vm> --label <label color>

View file

@ -39,7 +39,7 @@ Qubes Windows Tools (QWT) are a set of programs and drivers that provide integra
.. code:: console
sudo qubes-dom0-update qubes-windows-tools-4.1.68
$ sudo qubes-dom0-update qubes-windows-tools-4.1.68
@ -47,7 +47,7 @@ for Qubes R4.1.2, or
.. code:: console
sudo qubes-dom0-update qubes-windows-tools-4.1.69
$ sudo qubes-dom0-update qubes-windows-tools-4.1.69
@ -162,7 +162,7 @@ Installing the Qubes Windows Tools on Windows 7, 8.1, 10 and 11 both as a Standa
.. code:: console
sudo qubes-dom0-update qubes-windows-tools
$ sudo qubes-dom0-update qubes-windows-tools
(If the above command does not work, it could be that the Qubes Tools are not in the stable repo yet. Try installing from the testing repo instead.)
@ -170,14 +170,14 @@ Installing the Qubes Windows Tools on Windows 7, 8.1, 10 and 11 both as a Standa
.. code:: console
sudo qubes-dom0-update --enablerepo=qubes-dom0-current-testing qubes-windows-tools
$ sudo qubes-dom0-update --enablerepo=qubes-dom0-current-testing qubes-windows-tools
If an earlier version of Qubes Windows Tools is already installed, with enabled current-testing repo you need to specify as action to ``upgrade`` the existing package, because the default action is ``install``, which will fail if it detects that QWT is already present in Dom0:
.. code:: console
sudo qubes-dom0-update --enablerepo=qubes-dom0-current-testing --action=upgrade qubes-windows-tools
$ sudo qubes-dom0-update --enablerepo=qubes-dom0-current-testing --action=upgrade qubes-windows-tools
This package brings the ISO with Qubes Windows Tools that is passed to the VM when ``--install-windows-tools`` is specified for the ``qvm-start`` command. Please note that none of this software ever runs in Dom0 or any other part of the system except for the Windows AppVM in which it is to be installed.
@ -195,7 +195,7 @@ Installing the Qubes Windows Tools on Windows 7, 8.1, 10 and 11 both as a Standa
.. code:: console
qvm-start <VMname> --install-windows-tools
$ qvm-start <VMname> --install-windows-tools
Once the Windows VM boots, a CDROM should appear in the My Computer menu (typically as ``D:`` or ``E:``) with the setup program ``qubes-tools-x64.msi`` in its main directory.

View file

@ -124,8 +124,8 @@ Importing should work, simply make sure that you are not using Xens newer lin
.. code:: console
qvm-features VMNAME linux-stubdom ''
qvm-prefs VMNAME virt_mode hvm
$ qvm-features VMNAME linux-stubdom ''
$ qvm-prefs VMNAME virt_mode hvm
@ -147,23 +147,23 @@ Summary
.. code:: console
qvm-create --class StandaloneVM --label red --property virt_mode=hvm win7new
qvm-prefs win7new memory 4096
qvm-prefs win7new maxmem 4096
qvm-prefs win7new kernel ''
qvm-volume extend win7new:root 25g
qvm-prefs win7new debug true
qvm-features win7new video-model cirrus
qvm-start --cdrom=untrusted:/home/user/windows_install.iso win7new
$ qvm-create --class StandaloneVM --label red --property virt_mode=hvm win7new
$ qvm-prefs win7new memory 4096
$ qvm-prefs win7new maxmem 4096
$ qvm-prefs win7new kernel ''
$ qvm-volume extend win7new:root 25g
$ qvm-prefs win7new debug true
$ qvm-features win7new video-model cirrus
$ qvm-start --cdrom=untrusted:/home/user/windows_install.iso win7new
# restart after the first part of the windows installation process ends
qvm-start win7new
$ qvm-start win7new
# once Windows is installed and working
qvm-prefs win7new memory 2048
qvm-prefs win7new maxmem 2048
qvm-features --unset win7new video-model
qvm-prefs win7new qrexec_timeout 300
$ qvm-prefs win7new memory 2048
$ qvm-prefs win7new maxmem 2048
$ qvm-features --unset win7new video-model
$ qvm-prefs win7new qrexec_timeout 300
# with Qubes Windows Tools installed:
qvm-prefs win7new debug false
$ qvm-prefs win7new debug false
@ -187,7 +187,7 @@ Create a VM named win7new in :doc:`HVM </user/advanced-topics/standalones-and-hv
.. code:: console
qvm-create --class StandaloneVM --label red --property virt_mode=hvm win7new
$ qvm-create --class StandaloneVM --label red --property virt_mode=hvm win7new
@ -207,8 +207,8 @@ So, increase the VMs memory to 4096MB (memory = maxmem because we dont use
.. code:: console
qvm-prefs win7new memory 4096
qvm-prefs win7new maxmem 4096
$ qvm-prefs win7new memory 4096
$ qvm-prefs win7new maxmem 4096
@ -216,7 +216,7 @@ Disable direct boot so that the VM will go through the standard cdrom/HDD boot s
.. code:: console
qvm-prefs win7new kernel ''
$ qvm-prefs win7new kernel ''
@ -224,7 +224,7 @@ A typical Windows 7 installation requires between 15GB up to 19GB of disk space
.. code:: console
qvm-volume extend win7new:root 25g
$ qvm-volume extend win7new:root 25g
@ -232,7 +232,7 @@ Set the debug flag in order to have a graphical console:
.. code:: console
qvm-prefs win7new debug true
$ qvm-prefs win7new debug true
@ -248,7 +248,7 @@ To avoid that error we temporarily have to switch the video adapter to cirrus
.. code:: console
qvm-features win7new video-model cirrus
$ qvm-features win7new video-model cirrus
@ -256,7 +256,7 @@ The VM is now ready to be started; the best practice is to use an installation I
.. code:: console
qvm-start --cdrom=untrusted:/home/user/windows_install.iso win7new
$ qvm-start --cdrom=untrusted:/home/user/windows_install.iso win7new
@ -280,8 +280,8 @@ Decrease the VMs memory to a more reasonable value (memory balancing on Windo
.. code:: console
qvm-prefs win7new memory 2048
qvm-prefs win7new maxmem 2048
$ qvm-prefs win7new memory 2048
$ qvm-prefs win7new maxmem 2048
@ -289,7 +289,7 @@ Revert to the standard VGA adapter: the cirrus adapter will limit the maxi
.. code:: console
qvm-features --unset win7new video-model
$ qvm-features --unset win7new video-model
@ -297,7 +297,7 @@ Finally, increase the VMs ``qrexec_timeout``: in case you happen to get a BSO
.. code:: console
qvm-prefs win7new qrexec_timeout 300
$ qvm-prefs win7new qrexec_timeout 300
@ -311,7 +311,7 @@ Windows 7 and 10 can be installed as TemplateVM by selecting
.. code:: console
qvm-create --class TemplateVM --property virt_mode=HVM --property kernel='' --label black Windows-template
$ qvm-create --class TemplateVM --property virt_mode=HVM --property kernel='' --label black Windows-template
@ -329,7 +329,7 @@ AppVMs based on these templates can be created the normal way by using the Qube
.. code:: console
qvm-create --class=AppVM --template=<VMname>
$ qvm-create --class=AppVM --template=<VMname>

View file

@ -132,14 +132,14 @@ Create a VM named WindowsNew in :doc:`HVM </user/advanced-topics/standalones-and
.. code:: console
qvm-create --class StandaloneVM --label orange --property virt_mode=hvm WindowsNew
$ qvm-create --class StandaloneVM --label orange --property virt_mode=hvm WindowsNew
and for a template:
.. code:: console
qvm-create --class TemplateVM --label black --property virt_mode=hvm WindowsNew
$ qvm-create --class TemplateVM --label black --property virt_mode=hvm WindowsNew
@ -149,11 +149,11 @@ Create a VM named WindowsNew in :doc:`HVM </user/advanced-topics/standalones-and
.. code:: console
qvm-volume extend WindowsNew:root 60g
qvm-prefs WindowsNew memory 4096
qvm-prefs WindowsNew maxmem 4096
qvm-prefs WindowsNew kernel ''
qvm-prefs WindowsNew qrexec_timeout 7200
$ qvm-volume extend WindowsNew:root 60g
$ qvm-prefs WindowsNew memory 4096
$ qvm-prefs WindowsNew maxmem 4096
$ qvm-prefs WindowsNew kernel ''
$ qvm-prefs WindowsNew qrexec_timeout 7200
@ -184,7 +184,7 @@ These parameters are set for the following reasons:
.. code:: console
qvm-prefs WindowsNew qrexec_timeout 7200
$ qvm-prefs WindowsNew qrexec_timeout 7200
@ -215,7 +215,7 @@ These parameters are set for the following reasons:
.. code:: console
qvm-start --cdrom=untrusted:/home/user/windows_install.iso WindowsNew
$ qvm-start --cdrom=untrusted:/home/user/windows_install.iso WindowsNew
@ -396,7 +396,7 @@ AppVMs based on these templates can be created the normal way by using the Qube
.. code:: console
qvm-create --class=AppVM --template=<VMname>
$ qvm-create --class=AppVM --template=<VMname>
@ -408,7 +408,7 @@ Furthermore, if manual IP setup was used for the template, the IP address select
.. code:: console
qvm-prefs WindowsNew ip 10.137.0.x
$ qvm-prefs WindowsNew ip 10.137.0.x

View file

@ -208,8 +208,8 @@ Actual command lines for the menu shortcuts involve the ``qvm-run`` command whic
.. code:: console
qvm-run -q -a --service -- %VMNAME% qubes.StartApp+firefox
qvm-run -q -a --service -- %VMNAME% qubes.StartApp+7-Zip-7-Zip_File_Manager
$ qvm-run -q -a --service -- %VMNAME% qubes.StartApp+firefox
$ qvm-run -q -a --service -- %VMNAME% qubes.StartApp+7-Zip-7-Zip_File_Manager
@ -217,7 +217,7 @@ Note that you can create a shortcut that points to a ``.desktop`` file in your a
.. code:: console
qvm-run -q -a --service -- personal qubes.StartApp+firefox
$ qvm-run -q -a --service -- personal qubes.StartApp+firefox

View file

@ -17,7 +17,7 @@ After running the commands to update Debian or Whonix, hopefully everything will
.. code:: console
sudo apt-get update && sudo apt-get dist-upgrade
$ sudo apt-get update && sudo apt-get dist-upgrade
@ -78,7 +78,7 @@ And then trying running the ``update`` and ``upgrade`` commands again.
.. code:: console
sudo apt-get update && sudo apt-get dist-upgrade
$ sudo apt-get update && sudo apt-get dist-upgrade

View file

@ -30,7 +30,7 @@ In any case youll need some disk space to start the VM. Check ``df -h`` outpu
.. code:: console
sudo dnf clean all
$ sudo dnf clean all
@ -38,7 +38,7 @@ In any case youll need some disk space to start the VM. Check ``df -h`` outpu
.. code:: console
qvm-remove <VMname>
$ qvm-remove <VMname>
With this method, you lose the data of one VM, but itll work more reliably.
@ -47,7 +47,7 @@ In any case youll need some disk space to start the VM. Check ``df -h`` outpu
.. code:: console
sudo tune2fs -m 4 /dev/mapper/vg_dom0-lv_root
$ sudo tune2fs -m 4 /dev/mapper/vg_dom0-lv_root
@ -98,8 +98,8 @@ After freeing some initial space, it may be possible to recover more space by de
.. code:: console
qvm-start <VMname>
qvm-console-dispvm <VMname>
$ qvm-start <VMname>
$ qvm-console-dispvm <VMname>
@ -117,7 +117,7 @@ To fix this issue:
.. code:: console
qvm-console-dispvm sys-usb
$ qvm-console-dispvm sys-usb

View file

@ -56,15 +56,15 @@ If you can start your VM, but cant launch any applications, then you need to
.. code:: console
qvm-start <VMname> # Make sure the VM is started
qvm-console-dispvm <VMname>
$ qvm-start <VMname> # Make sure the VM is started
$ qvm-console-dispvm <VMname>
After launching a VM console using ``qvm-console-dispvm``, you may look at the ``qubes-gui-agent`` service state with:
.. code:: console
systemctl status -l qubes-gui-agent
$ systemctl status -l qubes-gui-agent
@ -80,8 +80,8 @@ During troubleshooting, you may be getting a lot of audit messages which m
.. code:: console
previous_kernel_parameters=$(qvm-prefs --get <VMname> kernelopts) # Get current kernel parameters
qvm-prefs --set <VMname> kernelopts "<previous_kernel_parameters> audit=0"
$ previous_kernel_parameters=$(qvm-prefs --get <VMname> kernelopts) # Get current kernel parameters
$ qvm-prefs --set <VMname> kernelopts "<previous_kernel_parameters> audit=0"
Then, restart your VM.

View file

@ -11,7 +11,7 @@ By default, the kernel that is installed in dom0 comes from the ``kernel`` packa
.. code:: console
sudo qubes-dom0-update kernel-latest
$ sudo qubes-dom0-update kernel-latest

View file

@ -77,7 +77,7 @@ If you see a screen popup with SeaBios and 4 lines, last one being ``Probing EDD
.. code:: console
qvm-prefs <HVMname> kernel ""
$ qvm-prefs <HVMname> kernel ""
HVM crashes when booting from ISO
@ -92,7 +92,7 @@ To give the VM a RAM of 2GB, open a terminal in ``dom0`` and enter:
.. code:: console
qvm-prefs <HVMname> memory 2000
$ qvm-prefs <HVMname> memory 2000
Attached devices in Windows HVM stop working on suspend/resume

View file

@ -73,8 +73,8 @@ Using the command line
.. code:: console
sudo su
echo -n "1" > /sys/bus/pci/devices/0000:03:00.0/remove
$ sudo su
$ echo -n "1" > /sys/bus/pci/devices/0000:03:00.0/remove
@ -109,7 +109,7 @@ NOTE: The ``permissive`` flag increases attack surface and possibility of `side
.. code:: console
qvm-pci attach --persistent --option permissive=true --option no-strict-reset=true sys-usb dom0:<BDF_OF_DEVICE>
$ qvm-pci attach --persistent --option permissive=true --option no-strict-reset=true sys-usb dom0:<BDF_OF_DEVICE>

View file

@ -113,7 +113,7 @@ Some firmware will not recognize the default Qubes EFI configuration. As such, i
.. code:: console
cp /mnt/sysimage/boot/efi/EFI/qubes/grubx64.efi /mnt/sysimage/boot/efi/EFI/BOOT/bootx64.efi
$ cp /mnt/sysimage/boot/efi/EFI/qubes/grubx64.efi /mnt/sysimage/boot/efi/EFI/BOOT/bootx64.efi

View file

@ -43,7 +43,7 @@ Most likely the offending controller is a USB 3.0 device. You can remove this co
.. code:: console
lspci -nn | grep USB | cut -d '[' -f3 | cut -d ']' -f1 | xargs -I@ setpci -H1 -d @ d0.l=0
$ lspci -nn | grep USB | cut -d '[' -f3 | cut -d ']' -f1 | xargs -I@ setpci -H1 -d @ d0.l=0
@ -74,7 +74,7 @@ Another solution would be to set the pci_strictreset option in dom0:
.. code:: console
qvm-pci attach --persistent --option no-strict-reset=true usbVM dom0:<BDF>
$ qvm-pci attach --persistent --option no-strict-reset=true usbVM dom0:<BDF>
@ -82,7 +82,7 @@ Another solution would be to set the pci_strictreset option in dom0:
.. code:: console
qvm-prefs usbVM -s pci_strictreset false
$ qvm-prefs usbVM -s pci_strictreset false

View file

@ -11,7 +11,7 @@ Tips
.. code:: console
sudo journalctl -u qubes-vpn-handler
$ sudo journalctl -u qubes-vpn-handler
@ -55,7 +55,7 @@ To check this tool is working properly run:
.. code:: console
sudo notify-send "$(hostname): Test notify-send OK" --icon=network-idle
$ sudo notify-send "$(hostname): Test notify-send OK" --icon=network-idle
You should see the ``info`` message appear on the top of your screen. If that is the case then ``notify-send`` is not the issue. If it is not, and you have an error of some sort you can: