https://www.freebsd.org/doc/handbook/ports-using.html
download ports
portsnap fetch
extract downlods
portsnap extract
portsnap auf neuesten stand bringen
portsnap fetch update
Ports sind installiert in /usr/ports
Bauen eines Pakets an einem Beispiel:
cd /usr/ports/net-mgmt/icinga2
make install
unattended install
cd /usr/ports/sysutils/screen
export BATCH=yes
make rmconfig
make install clean
/usr/local/etc/rc.d
https://www.freebsddiary.org/startup.php
In /boot/loader.conf
vmm_load="YES"
In /etc/sysctl.conf
net.link.tap.up_on_open=1
Dann die bridge anlegen und tap0 Interface erzeugen und mit an die Bridge hängen.
Offen ist hier, wie ich das ordentlich mache, weil ich ja explizit keine IP-Adresse weder auf dem tap Interface haben möchte, noch auf der bridge.
Dann ein ZFS device anlegen als Speicher für den Gast. Größe ist hier 30GiB und zfs pool Name ist zroot.
zfs create -o quota=100G zroot/bhyveimages
FreeBSD Image herunterladen
cd /media/bhyveimages
fetch
https://ftp.halifax.rwth-aachen.de/freebsd/releases/ISO-IMAGES/11.2/FreeBSD-11.2-RELEASE-amd64-bootonly.iso
Installation und Gast starten. Wenn Installation fertig, in die Shell des Gastes wechseln bevor neu gestartet wird. Neustart auswählen und im Bootloader die Option für Neustart wählen um aus der shellscript loop heraus zu kommen.
sh /usr/share/examples/bhyve/vmrun.sh -c 2 -m 4096 -t tap0 -d /dev/zvol/zroot/bhyveguest0 -i -I /media/bhyveimages/FreeBSD-11.2-RELEASE-amd64-bootonly.iso bhyveguest0
Nach erfolgreicher Installation Gast starten mit:
sh /usr/share/examples/bhyve/vmrun.sh -c 2 -m 4096 -t tap0 -d /dev/zvol/zroot/bhyveguest0 bhyveguest0
Wenn man das System detached starten will?
Unklar
pkg install iohyve grub2-bhyve
iohyve setup pool=zroot
iohyve setup net=em0
iohyve setup kmod=1
vim /etc/rc.conf
iohyve_enable="YES"
iohyve_flags="kmod=1 net=em0"
iohyve fetchiso
https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/12.0/FreeBSD-12.0-RELEASE-amd64-disc1.iso
iohyve isolist
iohyve install bsdguest FreeBSD-12.0-RELEASE-amd64-disc1.iso
iohyve console bsdguest
exit console (~~.)
iohyve start bsdguest
iohyve stop bsdguest
iohyve set bsdguest description "VM description"
iohyve set bsdguest ram=512M cpu=1 boost=1
Networking is managed manually not by chyves.
chyves dataset tank install
chyves bsdguest create 20G
cd /chyves/tank/guests/bsdguest/img/
fetch
https://download.freebsd.org/ftp/releases/VM-IMAGES/12.0-RELEASE/amd64/Latest/FreeBSD-12.0-RELEASE-amd64.raw.xz
xz -d FreeBSD-12.0-RELEASE-amd64.raw.xz
chyves info -z
chyves network bridge0 private
chyves network bridge1 private
chyves bsdguest start
chyves bsdguest console
chyves openwrt1 create 1g
chyves openwrt1 set loader=grub-bhyve
chyves openwrt1 set description="OpenWrt test"
mv /home/setup/openwrt-18.06.4-x86-64-combined-ext4.img /chyves/tank/guests/openwrt1/img/openwrt-18.06.4-x86-64-combined-ext4.raw
chyves network openwrt1 add tap50 bridge1
chyves network openwrt1 add tap51 bridge0
Example Delete partition 1 from disk ada0
gpart delete -i 1 ada0
gpart destroy ada0
gpart create -s gpt ada0
gpart show ada0
gpart add -t freebsd-zfs -b 2048 -a 4k -l log0 ada0
Vorher wurde eine Partition namens log0 angelegt mit
gpart add -z freebsd-zfs -b 2048 -a 4k -l log0 ada0
Dann das schreibcache hinzufügen, kann was dauern.
zpool add zroot log gpt/log0
Prüfen ob es Volumes gibt die man nicht mehr benötigt:
gpart show
Löschen der Partition mit dem Index 1 2 und 3 auf dem device ada0
gpart delete -i1 ada0
gpart delete -i2 ada0
gpart delete -i3 ada0
Anlegen einer neuen ZFS Partition
gpart add -t freebsd-zfs -l tank ada0
Anlegen des ZFS pools auf der neuen Partition ada0p1
zpool create tank ada0p1
ZFS Volume auf dem pool anlegen
zfs create zroot/bhyveguest0
zfs set quota=100g zroot/bhyveguest0
Festplatte wwn-0x5000039433b0843f ist nicht mehr existent und soll ersetzt werden mit wwn-0x500a0751e149d1e5
zpool replace tank wwn-0x5000039433b0843f wwn-0x500a0751e149d1e5
Am Beispiel einer Netzwerkkarte alc0 und der Bridgename ist bridge0. Kommt in /etc/rc.conf oberhalb der anderen configs
hostname="bsdrx1"
cloned_interfaces="bridge0"
ifconfig_bridge0="addm vtnet0 up"
ifconfig_vtnet0="up"
ifconfig_bridge0_ipv6="inet6 2a00:afe:3f:7::fee1 prefixlen 64 auto_linklocal"
sshd_enable="yes"
ipv6_activate_all_interfaces="yes"
ipv6_defaultrouter="2a00:afe:3f:7::3"
Sehr wichtig, dass man das auto_linklocal noch hinten anfügt, denn ansonsten verfügt das bridge interface nicht über eine link local Adresse, das hat zur Folge dass NDP nicht auf neighbor solicitations antwortet, was wiederum zur Folge hat, dass die IPv6 Konnektivität nicht vorhanden ist.
Möchte man auf einer Bridge DHCP verwenden so streicht man diesen Eintrag
ifconfig_bridge="DHCP"
und ersetzt:
ifconfig_bridge0="addm vtnet0 up"
durch
ifconfig_bridge0="addm vtnet0 SYNCDHCP"
Am Beispiel mit vlan 10 an bridge1 mit echter NIC alc0
cloned_interfaces="bridge1"
ifconfig_bridge1="addm alc0_10 addm up"