Lien :
https://www.cyberciti.biz/faq/how-to-install-linux-vm-on-freebsd-using-bhyve-and-zfs/
1/ Activation de tap.
root@station173:/usr/home/util01 # echo "net.link.tap.up_on_open=1" >> /etc/sysctl.conf
root@station173:/usr/home/util01 # sysctl net.link.tap.up_on_open=1
net.link.tap.up_on_open: 0 -> 1
root@station173:/usr/home/util01 #
2/ Chargement des modules de machine virtuelle.
root@station173:/usr/home/util01 # kldload vmm
root@station173:/usr/home/util01 # kldload nmdm
3/ Configuration du démarrage des pilotes au démarrage.
root@station173:/usr/home/util01 # echo 'vmm_load="YES"' >> /boot/loader.conf
root@station173:/usr/home/util01 # echo 'nmdm_load="YES"' >> /boot/loader.conf
root@station173:/usr/home/util01 # echo 'if_tap_load="YES"' >> /boot/loader.conf
root@station173:/usr/home/util01 # echo 'if_bridge_load="YES"' >> /boot/loader.conf
4/ Création du pont reseau.
root@station173:/usr/home/util01 # ifconfig bridge create
bridge0
5/ Identication de l'interface réseau de la carte réseau de l'ordinateur.
root@station173:/usr/home/util01 # ifconfig
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
ether 18:60:24:72:59:64
inet6 fe80::1a60:24ff:fe72:5964%re0 prefixlen 64 scopeid 0x1
inet 192.168.1.28 netmask 0xffffff00 broadcast 192.168.1.255
inet 192.168.1.221 netmask 0xffffffff broadcast 192.168.1.221
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
...
6/ Ajouter l'interface réseau r01 au bridge.
root@station173:/usr/home/util01 # ifconfig bridge0 addm re0
7/ Nommer le bridge.
root@station173:/usr/home/util01 # ifconfig bridge0 name re0bridge
re0bridge
root@station173:/usr/home/util01 # ifconfig re0bridge up
8/ Créer une interface tap.
root@station173:/usr/home/util01 # ifconfig tap0 create
9/ Ajouter l'interface tap au bridge.
root@station173:/usr/home/util01 # ifconfig re0bridge addm tap0
10/ Configuation du réseau au démarrage.
Ouvrir :
/etc/rc.conf
Ajouter à la fin :
cloned_interfaces="bridge0 tap0"
ifconfig_bridge0_name="re0bridge"
ifconfig_re0bridge="addm re0 addm tap0 up"
11/ Création d'un volume ZFS.
root@station173:/usr/home/util01 # zfs create -V20G -o volmode=dev zroot/debianvm
12/ Téléchargement de l'image iso de Debian.
root@station173:/usr/home/util01 # wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-11.5.0-amd64-netinst.iso
13/ Insallation du support Grub pour bhyve sous FreeBSD.
root@station173:/usr/home/util01 # pkg install grub2-bhyve bhyve-firmware
14/ Installation d'une machine virtuelle Linux "Debian".
root@station173:/usr/home/util01 # bhyve -c 1 -m 1G -w -H \
-s 0,hostbridge \
-s 3,ahci-cd,/usr/home/util01/debian-11.5.0-amd64-netinst.iso \
-s 4,virtio-blk,/dev/zvol/zroot/debianvm \
-s 5,virtio-net,tap0 \
-s 29,fbuf,tcp=0.0.0.0:5900,w=800,h=600,wait \
-s 30,xhci,tablet \
-s 31,lpc -l com1,stdio \
-l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \
debianvm
15/ Sur un autre ordinateur, lancement de l'installation de la VM à partir de VNC.
util01@station66:~$ xtightvncviewer 192.168.1.28:5900
Puis commencer l'installation de Debian.
16/ Configuration du démarrage d'une machine virtuelle sous bhyve.
- A l'étape Finish the installation|Terminer l'installation, cliquer sur le bouton Go Back|Revenir en arrière .
Choisir le menu Execute a shell|Exécuter un shell (ligne de commande) puis Continue|Continuer pour accéder au terminal.
- Activation du boot :
# mkdir /target/boot/efi/EFI/BOOT/
# cp /target/boot/efi/EFI/debian/grubx64.efi /target/boot/efi/EFI/BOOT/bootx64.efi
- Sortir du shell :
# exit
17/ Finir l'installaton de Debian.
Choisir le menu Finish the installation|Terminer l'installation puis Continue|Continuer
18/ Détruire l'instance de la machine virtuel "debianvm".
root@station173:/usr/home/util01 # bhyvectl --destroy --vm=debianvm
19/ Relancer la machine virtuelle.
root@station173:/usr/home/util01 # bhyve -c 2 -m 1G -w -H \
-s 0,hostbridge \
-s 4,virtio-blk,/dev/zvol/zroot/debianvm \
-s 5,virtio-net,tap0 \
-s 29,fbuf,tcp=0.0.0.0:5900,w=1024,h=768,wait \
-s 30,xhci,tablet \
-s 31,lpc -l com1,stdio \
-l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \
debianvm
20/ Problèmes.
Erreur #1 :
BdsDxe: failed to load Boot0001 "UEFI Misc Device" from PciRoot(0x0)/Pci(0x4,0x0): Not Found
Solution :
- Accéder l'interface de gestion BHYVE :
Shell> exit
-
Aller dans le Boot Maintenace Manager
-
Sélectionner : Boot From File
-
Sélectionner : NO VOLUME LABEL.
-
Aller dans EFI puis dans BOOT puis sélectionner le fichier bootx64.efi.
-
La machine virtuelle démarre.
