Το άρθρο αυτό βρίσκεται επίσης στα FreeBSD Wiki και 9front Wiki.
Προαπαιτούμενα ports:
sysutils/bhyve-firmware
sysutils/uefi-edk2-bhyve
net/tigervnc-viewer
Εισάγετε τις παρακάτω γραμμές στο /etc/rc.conf
. Αντικαταστήστε το re0
με το
δικό σας network interface. Είναι καλή πρκατική να ορίζετε ένα ξεχωριστό tap
interface για κάθε VM, σε περίπτωση που θέλετε να τρέξετε πολλαπλά VMs
ταυτόχρονα. Χάρην απλότητας, το συγκεκριμένο setup χρησιμοποιεί μόνο ένα tap
:
if_bridge_load="YES"
if_tap_load="YES"
cloned_interfaces="bridge0 tap0"
ifconfig_bridge0="DHCP addm re0 addm tap0"
ifconfig_bridge0_alias0="inet 10.0.0.1/24"
Κατεβάστε ένα 9front ISO και στο μεταξύ επανεκκινήστε το δίκτυο:
# service routing restart
# service netif restart
Δημιουργήστε ένα directory στο οποίο θα αποθηκεύσετε τα πάντα σχετικά με το 9front. Προσωπικά έχω όλα τα bhyve(8) VMs σε ένα ZFS dataset:
$ cd /path/to/vms/
$ mkdir 9front
$ mv /path/to/9front_iso 9front.iso
Δημιουργήστε ένα άδειο αρχείο το οποίο θα χρησιμοποιηθεί ως ο σκληρός δίσκος του VM. 10G θα είναι παραπάνω από αρκετά:
$ truncate -s 10G disk.img
Δημιουργήστε ένα script εκκίνησης. Μπορείτε να τροποποιήσετε τις μεταβλητές για
να ταιριάξουν στο δικό σας setup. Προφανώς, όταν τελειώσετε την εγκατάσταση του
9front από το ISO, θα πρέπει να τρέχετε το script χωρις την γραμμή -s 3,...
:
$ cat 9front_start
#!/bin/sh
name="9front"
cpu="2"
mem="2G"
iso="9front.iso"
disk="disk.img"
tap="tap0"
ifconfig ${tap} up
bhyve -c ${cpu} -m ${mem} -wH \
-s 0,hostbridge \
-s 3,ahci-cd,${iso} \
-s 4,ahci-hd,${disk} \
-s 5,virtio-net,${tap} \
-s 29,fbuf,tcp=0.0.0.0:5900,w=800,h=600,wait \
-s 30,xhci,tablet \
-s 31,lpc \
-l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \
${name}
Δημιουργήστε ένα script κλεισίματος ώστε ο bhyve(8) να κλείσει σωστά:
$ cat 9front_stop
#!/bin/sh
name="9front"
tap="tap0"
ifconfig ${tap} down
bhyvectl --force-poweroff --vm=${name}
bhyvectl --destroy --vm=${name}
Κάντε τα scripts εκτελέσιμα και ξεκινήστε το VM:
$ chmod +x 9front_start 9front_stop
# ./9front_start; ./9front_stop
Τρέξτε τον vncviewer(1) για να συνδεθείτε στην οθόνη του VNC:
$ vncviewer 0.0.0.0
Όταν σας ζητηθεί ο τύπος του monitor κατά την εκκίνηση, επιλέξτε xga
.