--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<h1>Trivially booting from a local file</h1>
+
+<pre>
+┌───────────────┐
+│ fedora-33.img │───────▶ qemu
+└───────────────┘
+</pre>
+
+<br/><br/>
+
+<pre>
+qemu -drive file=<b>fedora-33.img</b> ...
+</pre>
--- /dev/null
+#!/bin/bash -
+
+source functions
+
+# Title.
+export title="qemu boot"
+
+# History.
+remember 'qemu-system-x86_64 -machine accel=kvm:tcg -cpu host -m 2048 -display none -drive file=fedora-33.img,format=raw,if=virtio -serial stdio'
+
+terminal
--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<h1>Booting over SSH</h1>
+
+<pre>
+┌───────────────┐ ssh
+│ fedora-33.img │───────▶ qemu
+└───────────────┘
+ remote server
+</pre>
+
+<br/><br/>
+
+<pre>
+qemu -drive file=<b>ssh://remote/path/to/fedora-33.img</b> ...
+</pre>
--- /dev/null
+#!/bin/bash -
+
+source functions
+
+# Title.
+export title="qemu boot over SSH"
+
+# History.
+remember 'qemu-system-x86_64 -machine accel=kvm:tcg -cpu host -m 2048 -display none -drive file=ssh://kool/mnt/scratch/pipes/fedora-33.img,format=raw,if=virtio,snapshot=on -serial stdio'
+
+terminal
--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<h1>Booting over SSH with a snapshot</h1>
+
+<pre>
+┌───────────────┐ ssh ┌───────────────┐
+│ fedora-33.img │───────▶│ qcow2 file │───────▶ qemu
+└───────────────┘ └───────────────┘
+ remote server local machine
+</pre>
+
+<br/><br/>
+
+<pre>
+qemu-img create -f qcow2 \
+ -b <b>ssh://remote/path/to/fedora-33.img</b> snapshot.qcow2
+qemu -drive file=<b>snapshot.qcow2</b> ...
+</pre>
--- /dev/null
+#!/bin/bash -
+
+source functions
+
+# Title.
+export title="qemu boot over SSH with snapshot"
+
+# History.
+remember 'qemu-img create -f qcow2 -F raw -b ssh://kool/mnt/scratch/pipes/fedora-33.img snapshot.qcow2'
+remember 'qemu-system-x86_64 -machine accel=kvm:tcg -cpu host -m 2048 -display none -drive file=snapshot.qcow2,format=qcow2,if=virtio -serial stdio'
+
+terminal
--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<h1>Making a full local copy</h1>
+
+<pre>
+┌───────────────┐ssh ┌────────────┐ ┌───────────┐
+│ fedora-33.img │───▶│ qcow2 file │───▶ qemu-img convert ────▶│ local.img │
+└───────────────┘ └────────────┘ └───────────┘
+ remote server local machine
+</pre>
+
+<br/><br/>
+
+<pre>
+qemu-img create -f qcow2 \
+ -b <b>ssh://remote/path/to/fedora-33.img</b> snapshot.qcow2
+qemu-img convert snapshot.qcow2 local.img -p
+</pre>
--- /dev/null
+#!/bin/bash -
+
+source functions
+
+# Title.
+export title="Copying"
+
+# History.
+remember 'qemu-img create -f qcow2 -F raw -b ssh://kool/mnt/scratch/pipes/fedora-33.img snapshot.qcow2'
+remember 'qemu-img convert -f qcow2 snapshot.qcow2 -O raw local.img -p'
+
+terminal
talkdir=$PWD ./restore
# Check environment.
-#(nothing)
+if [ ! -d /mnt/scratch/pipes ]; then
+ echo "Error: no remote server."
+ exit 1
+fi
+if [ ! -f /mnt/scratch/pipes/fedora-33.img ]; then
+ echo "Error: no remote file."
+ exit 1
+fi
# Precreate any files necessary.
-#(nothing)
+if [ ! -f fedora-33.img ]; then
+ virt-builder fedora-33
+fi
# Run techtalk.
#techtalk-pse "$@"