Ports¶
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
Autostart¶
/usr/local/etc/rc.d
https://www.freebsddiary.org/startup.php
bhyve¶
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 Guest¶
FreeBSD Image herunterladen
cd /media/bhyveimages
fetchhttps://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
iohyve¶
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 fetchisohttps://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
chyves¶
Networking is managed manually not by chyves.
chyves dataset tank install
create BSD guest¶
chyves bsdguest create 20G
cd /chyves/tank/guests/bsdguest/img/
fetchhttps://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
OpenWrt¶
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
Format¶
Delete Partition¶
Example Delete partition 1 from disk ada0
gpart delete -i 1 ada0
Partitionstabelle entfernen¶
gpart destroy ada0
Partitionstabelle erstellen¶
gpart create -s gpt ada0
Partitionen anzeigen¶
gpart show ada0
Partition erstellen (ZFS)¶
gpart add -t freebsd-zfs -b 2048 -a 4k -l log0 ada0
ZFS¶
Einzelne Platte mit ZFS¶
log (zil) Partition hinzufügen¶
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
Volume anlegen¶
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
Defekte Festplatte austauschen¶
Festplatte wwn-0x5000039433b0843f ist nicht mehr existent und soll ersetzt werden mit wwn-0x500a0751e149d1e5
zpool replace tank wwn-0x5000039433b0843f wwn-0x500a0751e149d1e5
Netzwerk¶
Bridge¶
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"
Bridge + vlan ohne IP¶
Am Beispiel mit vlan 10 an bridge1 mit echter NIC alc0
cloned_interfaces="bridge1"
ifconfig_bridge1="addm alc0_10 addm up"