aboutsummaryrefslogtreecommitdiff
path: root/doc/guix.texi
diff options
context:
space:
mode:
authorAttila Lendvai <attila@lendvai.name>2021-12-02 20:18:56 +0100
committerMathieu Othacehe <othacehe@gnu.org>2021-12-03 14:18:32 +0100
commitb42bfbdfe55eea56234a91c33ef12b9fe198766d (patch)
treeae145a5b85512783bc075157abf47cb641165349 /doc/guix.texi
parent5a18cf360454bef20f00facb51b45daabe31dad2 (diff)
downloadguix-b42bfbdfe55eea56234a91c33ef12b9fe198766d.tar
guix-b42bfbdfe55eea56234a91c33ef12b9fe198766d.tar.gz
guix system vm: Add --no-graphic CLI argument.
It configures QEMU to use the tty it was started in for IO (as opposed to opening a separate graphical window). This enables copy-pasting and scrollback. Exit QEMU with C-a x. * gnu/system/vm.scm (system-qemu-image/shared-store-script): Also add the '-nographic' QEMU argument when called with #:graphic? #false. * guix/scripts/system.scm (system-derivation-for-action): Propagate the #:graphic? keyword arg. (perform-action): Add and propagate the #:graphic? keyword arg. (show-help): Add --no-graphic CLI arg. (%options): Process the new --no-graphic CLI arg. (process-action): Feed in the CLI arg through the #:graphic? keyword arg. * doc/guix.texi (Invoking guix system): Add example to combine guix system and invoking the vm start script into one command. Split the description of the various options into separate paragraphs. Add a paragraph to describe --no-graphic. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
Diffstat (limited to 'doc/guix.texi')
-rw-r--r--doc/guix.texi23
1 files changed, 19 insertions, 4 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index a675631b79..9914829b2b 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -34506,8 +34506,8 @@ passed.
@cindex virtual machine
@cindex VM
@anchor{guix system vm}
-Build a virtual machine that contains the operating system declared in
-@var{file}, and return a script to run that virtual machine (VM).
+Build a virtual machine (VM) that contains the operating system declared
+in @var{file}, and return a script to run that VM.
@quotation Note
The @code{vm} action and others below
@@ -34526,6 +34526,12 @@ emulated machine:
$ /gnu/store/@dots{}-run-vm.sh -m 1024 -smp 2 -nic user,model=virtio-net-pci
@end example
+It's possible to combine the two steps into one:
+
+@example
+$ $(guix system vm my-config.scm) -m 1024 -smp 2 -nic user,model=virtio-net-pci
+@end example
+
The VM shares its store with the host system.
Additional file systems can be shared between the host and the VM using
@@ -34549,8 +34555,17 @@ store of the host can then be mounted.
The @option{--full-boot} option forces a complete boot sequence, starting
with the bootloader. This requires more disk space since a root image
containing at least the kernel, initrd, and bootloader data files must
-be created. The @option{--image-size} option can be used to specify the
-size of the image.
+be created.
+
+The @option{--image-size} option can be used to specify the size of the
+image.
+
+The @option{--no-graphic} option will instruct @command{guix system} to
+spawn a headless VM that will use the invoking tty for IO. Among other
+things, this enables copy-pasting, and scrollback. Use the @kbd{ctrl-a}
+prefix to issue QEMU commands; e.g. @kbd{ctrl-a h} prints a help,
+@kbd{ctrl-a x} quits the VM, and @kbd{ctrl-a c} switches between the
+QEMU monitor and the VM.
@cindex System images, creation in various formats
@cindex Creating system images in various formats