====== FreeBSD-14.0-STABLE-Image ====== ===== FreeBSD-14.0-STABLE Downlad & Start ===== #!/bin/sh #------------------------------------------------------------------------------# # # Dieses Skript hilt sich das neueste FreeBSD-RAW-Image und startet es mit Bhyve. # Zu diesem Zweck wird auch ein TAP angelegt, wenn es nicht schon da ist und # zur Brücke hinzugefügt. # #------------------------------------------------------------------------------# VERSIN="2024021700" RAM="1G" NIC="tap10" ### wenn das NIC bereits in Nutzung ist, wird abgebrochen ifconfig ${NIC} | grep -F 'Opened by PID ' && (echo "Das für diese VM vorgesehene NIC wird z.Z. benutzt."; exit 11) #------------------------------------------------------------------------------# ### neuestes STABLE-Release-Namen auslesen STABLERELEASE="$(links -dump https://download.freebsd.org/snapshots/VM-IMAGES/ | awk '/STABLE/{sub("/",""); print $1}' | sort -nr | head -n1)" ### wenn eine VM mit diesem Namen bereits läuft, dann wird abgebrochen if [ -e /dev/vmm/FreeBSD-${STABLERELEASE} ] ; then echo "Es läuft bereits eine VM mit diesem Namen." exit 12 fi ### neuestes STABLE-Image saugen FETCH_IMG="$(links -dump https://download.freebsd.org/snapshots/VM-IMAGES/${STABLERELEASE}/amd64/Latest/ | awk '/[.]raw[.]xz/{print $1}')" DISKNAME="$(echo "${FETCH_IMG}" | rev | sed 's/[^.]*[.]//' | rev)" # #rm -f ${DISKNAME} if [ -e "${DISKNAME}" ] ; then echo "Es gibt noch kein neues Release." echo "Es wird das vorhandene gestartet..." else rm -f ${FETCH_IMG} fetch https://download.freebsd.org/snapshots/VM-IMAGES/${STABLERELEASE}/amd64/Latest/${FETCH_IMG} ### Image entpacken unxz -v ${FETCH_IMG} fi ### Netzwerkanbindung ifconfig bridge0 || ifconfig bridge create ifconfig ${NIC} || ifconfig ${NIC} create ifconfig bridge0 | grep -F "member: ${NIC} " || ifconfig bridge0 addm ${NIC} ### NIC mit Default-Route (ins Internet???) ermitteln INTERNETNIC="$(route get default | awk '/interface:/{print $NF}')" if [ x = "x${INTERNETNIC}" ] ; then echo 'Es ẃurde keine NIC mit Default-Route gefunden!' echo 'Die VM wird versuchen sich eine IP-Adresse per DHCP vom Host (per lo0) zu holen.' ifconfig bridge0 | grep -F "member: lo0 " || ifconfig bridge0 addm lo0 else ifconfig bridge0 | grep -F "member: ${INTERNETNIC} " || ifconfig bridge0 addm ${INTERNETNIC} fi ### VM starten echo "sh /usr/share/examples/bhyve/vmrun.sh -m ${RAM} -t ${NIC} -d ${DISKNAME} FreeBSD-${STABLERELEASE}" screen -S FreeBSD-${STABLERELEASE} sh /usr/share/examples/bhyve/vmrun.sh -m ${RAM} -t ${NIC} -d ${DISKNAME} FreeBSD-${STABLERELEASE} ### Hinweise zum sauber machen echo " ifconfig -a ifconfig bridge0 deletem ${NIC} ifconfig ${NIC} destroy ifconfig bridge0 destroy " ===== FreeBSD-14.0-STABLE-Image (UFS-RAW) vergrößern ===== > ls -lha FreeBSD-14.0-STABLE-amd64.raw -rw-r--r-- 1 root wheel 6G Feb 17 11:40 FreeBSD-14.0-STABLE-amd64.raw > truncate -s +10G FreeBSD-14.0-STABLE-amd64.raw > ls -lha FreeBSD-14.0-STABLE-amd64.raw -rw-r--r-- 1 root wheel 16G Feb 17 11:41 FreeBSD-14.0-STABLE-amd64.raw > du -sh FreeBSD-14.0-STABLE-amd64.raw 1.8G FreeBSD-14.0-STABLE-amd64.raw > truncate -s 20G FreeBSD-14.0-STABLE-amd64.raw > ls -lha FreeBSD-14.0-STABLE-amd64.raw -rw-r--r-- 1 root wheel 20G Feb 17 11:43 FreeBSD-14.0-STABLE-amd64.raw > du -sh FreeBSD-14.0-STABLE-amd64.raw 1.8G FreeBSD-14.0-STABLE-amd64.raw > screen -S FreeBSD-14.0-STABLE sh /usr/share/examples/bhyve/vmrun.sh -m 1G -t tap10 -d FreeBSD-14.0-STABLE-amd64.raw FreeBSD-14.0-STABLE > gpart list | awk '/Geom name: /{print $NF}' vtbd0 [root@freebsd ~]# gpart show vtbd0 => 34 12649618 vtbd0 GPT (16G) [CORRUPT] 34 122 1 freebsd-boot (61K) 156 66584 2 efi (33M) 66740 2097152 3 freebsd-swap (1.0G) 2163892 10485760 4 freebsd-ufs (5.0G) [root@freebsd ~]# gpart resize -i 4 vtbd0 gpart: autofill: No space left on device [root@freebsd ~]# growfs / growfs: requested size 5.0GB is equal to the current filesystem size 5.0GB [root@freebsd ~]# GEOM_PART: vtbd0 was automatically resized. Use `gpart commit vtbd0` to save changes or `gpart undo vtbd0` to revert them. [root@freebsd ~]# gpart show vtbd0 => 34 41942966 vtbd0 GPT (20G) 34 122 1 freebsd-boot (61K) 156 66584 2 efi (33M) 66740 2097152 3 freebsd-swap (1.0G) 2163892 10485760 4 freebsd-ufs (5.0G) 12649652 29293348 - free - (14G) [root@freebsd ~]# gpart commit vtbd0 [root@freebsd ~]# gpart resize -i 4 vtbd0 vtbd0p4 resized [root@freebsd ~]# df -h Filesystem Size Used Avail Capacity Mounted on /dev/gpt/rootfs 4.8G 3.8G 636M 86% / devfs 1.0K 0B 1.0K 0% /dev /dev/gpt/efiesp 32M 648K 31M 2% /boot/efi [root@freebsd ~]# growfs / Device is mounted read-write; resizing will result in temporary write suspension for /. It's strongly recommended to make a backup before growing the file system. OK to grow filesystem on /dev/gpt/rootfs, mounted on /, from 5.0GB to 19GB? [yes/no] yes growfs: no room to allocate last cylinder group; leaving 7.6MB unused super-block backups (for fsck_ffs -b #) at: 11544384, 12827072, 14109760, 15392448, 16675136, 17957824, 19240512, 20523200, 21805888, 23088576, 24371264, 25653952, 26936640, 28219328, 29502016, 30784704, 32067392, 33350080, 34632768, 35915456, 37198144, 38480832 [root@freebsd ~]# df -h / Filesystem Size Used Avail Capacity Mounted on /dev/gpt/rootfs 18G 3.8G 13G 23% / [root@freebsd ~]# gpart show vtbd0 => 34 41942966 vtbd0 GPT (20G) 34 122 1 freebsd-boot (61K) 156 66584 2 efi (33M) 66740 2097152 3 freebsd-swap (1.0G) 2163892 39778892 4 freebsd-ufs (19G) 41942784 216 - free - (108K)