Virtuelle Laufwerke

Virtuelle Maschinen können mit virtuellen Laufwerken (Block-Storage-Devices) konfiguriert werden. Diese können wiederum als virtuelle Festplatten (nvme, ahci-hd oder virtio-blk) oder als virtuelle CD-ROM-Laufwerk (ahci-cd) verwendet werden.

Der folgende Aufruf startet die virtuelle Maschine samplevm mit einem emulierten NVMe-Laufwerk und einem virtuellen AHCI-CD-ROM-Laufwerk:

doas bhyve \
-c sockets=1,cores=2,threads=1 \
-m 2G \
-l bootrom,/usr/local/share/uefi-firmware/BHYVE_BHF_UEFI.fd,fwcfg=qemu \
-s 0,hostbridge \
-s 2,fbuf,rfb=0.0.0.0:5900,w=1024,h=768 \
-s 3,xhci,tablet \
-s 10,nvme,/usr/home/Administrator/samplevm/disk0.img \
-s 15,ahci-cd,/usr/home/Administrator/samplevm/os-installation.iso,ro \
-s 31,lpc \
-H -P -A \
samplevm

Beide Laufwerke nutzen als Datenspeicher reguläre Disk-Image Dateien auf dem TwinCAT/BSD-Host, die vor dem Aufruf von bhyve existieren müssen. Alternativ können auch Block-Geräte wie ZFS-Volumes als Datenspeicher übergeben werden, sodass ZFS-Snapshots zum Sichern und Wiederherstellen von virtuellen Festplatten genutzt werden können (siehe: ZFS-Datasets als Speicherort für virtuelle Maschinen).

In dem Beispiel oben, wird die Disk-Image Datei /usr/home/Administrator/samplevm/disk0.img als Datenspeicher für die virtuelle Festplatte genutzt (siehe: Disk-Image Dateien als Datenspeicher für virtuelle Festplatten).

Auf die Datei /usr/home/Administrator/samplevm/os-installation.iso wird nur lesend zugegriffen. Entspricht das Speicherabbild von os-installation.iso einem bootfähigem ISO-Abbild kann so z.B. die Installation eines Betriebssystems innerhalb der virtuellen Maschine gestartet werden (siehe: Gastbetriebssystem am Beispiel von Debian Linux installieren).

Um Gastbetriebssystemen die konfigurierten Laufwerke über ACPI bekannt zu machen, muss zusätzlich der Parameter -A übergeben werden.