In der aktuellen Version der Open-Source Firewall OPNsense, lief die Root Disk voll. Unbound startete nicht mehr und das Netz war nicht wirklich funktionabel. Irgendwie bin ich sehenden Auges in das Problem gelaufen, hatte ich ich schon Wochen vorher die Speicherdauer der Logs von 5 Tagen auf 3 Tagen, auf 1 Tag und letztendlich deaktiviert, bis die Festplatte voll lief. Ich hatte keine Zeit und wusste auch nicht wie ich die Partition vergrößern kann und schob es vor mich hin. Wenn ich gewusst hätte wie einfach und schnell es geht.
Damit dir das nicht passiert zeige ich nachfolgend die Vergrößerung der Root Disk unter FreeBSD der OPNSense Firewall. Zu wissen ist hierbei, dass diese bei mir als KVM Maschien unter Proxmox VE läuft.
OPNsense Root Disk resizing
Und los gehts, HALT – vorher das Backup nicht vergessen :), dann per SSH mit der Firewall verbinden und als Option für die Shell, die 8 eingeben.
0) Logout 7) Ping host
1) Assign interfaces 8) Shell
2) Set interface IP address 9) pfTop
3) Reset the root password 10) Firewall log
4) Reset to factory defaults 11) Reload all services
5) Power off system 12) Update from console
6) Reboot system 13) Restore a backup
Enter an option:8 (Shell)
Anzeigen der verfügbaren Partitionen wie folgt, wobei da0 für die Disk und 3 für die root Partition wichtig sind. Der IST-Stand:
# gpart show
=> 40 33554352 da0 GPT (16G)
40 409600 1 efi (200M)
409640 1024 2 freebsd-boot (512K)
410664 31457272 3 freebsd-ufs (15G)
31867936 1686456 - free - (823M)
Nun kann unter Proxmox VE die Festplatte der virtuellen Maschine wie gewohnt vergrößert werden. In OPNsense wird dies wie folgt angezeigt:
# dmesg
(da0:vtscsi0:0:0:0): Capacity data has changed
GEOM_PART: da0 was automatically resized.
Use `gpart commit da0` to save changes or `gpart undo da0` to revert them.
Unter den Partitionen wird die neue freie Partition mit 11G angezeigt.
# gpart show
=> 40 54525872 da0 GPT (26G)
40 409600 1 efi (200M)
409640 1024 2 freebsd-boot (512K)
410664 31457272 3 freebsd-ufs (15G)
31867936 22657976 - free - (11G)
Wer noch SWAP eingerichtet hat, muss diese jetzt deaktivieren, löschen, erstellen und an das Ende der Disk verschieben. Nachfolgend ohne Garantie, da ich kein SWAP habe und es nicht getestet habe:
# swapoff -a #SWAP in FreeBSD deaktivieren
# gpart delete -i 4 da0 #Swap Partition mit ID 4 löschen
# gpart show #Status anzeigen
#SWAP an das Ende der Disk verschieben, Start und Ende muss kalkuliert werden
#gpart add -t freebsd-swap -b <Swap Start (Sector)> da0
# gpart show #Kontrolle und falsch es nicht stimmt, löschen und nochmal erstellen
# gpart modify -i 4 -l swapfs da0 #Label für die neue SWAP Partition erstellen
# swapon /dev/gpt/swapfs #Start der neuen SWAP Partition
Nun wird die eigentliche Root Partition vergrößert. Diese ist die ID 3 der Disk da0
# gpart resize -i 3 da0
da0p3 resized
Der Status ist nun eine um 11GB vergrößerte Partition.
# gpart show
=> 40 54525872 da0 GPT (26G)
40 409600 1 efi (200M)
409640 1024 2 freebsd-boot (512K)
410664 54115248 3 freebsd-ufs (26G)
Die neue größere Disk scannen und einbinden.
# growfs /dev/gpt/rootfs
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 15GB to 26GB? [yes/no] yes
super-block backups (for fsck_ffs -b #) at:
32056192, 33338432, 34620672, 35902912, 37185152, 38467392, 39749632, 41031872, 42314112, 43596352, 44878592, 46160832, 47443072, 48725312, 50007552, 51289792,
52572032, 53854272
Der Status der Disk ist wie folgt:
# df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/gpt/rootfs 25G 13G 9.6G 58% /
devfs 1.0K 1.0K 0B 100% /dev
devfs 1.0K 1.0K 0B 100% /var/dhcpd/dev
devfs 1.0K 1.0K 0B 100% /var/unbound/dev
/usr/local/lib/python3.9 25G 13G 9.6G 58% /var/unbound/usr/local/lib/python3.9
OPNsense SSH Konsole beenden.
# exit
Ich habe das System abschließend neugestartet, sodass alle Dienste sauber starten und ich sicher gehen kann das OPNsense normal läuft.
0) Logout 7) Ping host
1) Assign interfaces 8) Shell
2) Set interface IP address 9) pfTop
3) Reset the root password 10) Firewall log
4) Reset to factory defaults 11) Reload all services
5) Power off system 12) Update from console
6) Reboot system 13) Restore a backup
Enter an option: 6
The system will reboot. Do you want to proceed? [y/N]:y
Interessiert in verschiedenste IT Themen, schreibe ich in diesem Blog über Software, Hardware, Smart Home, Games und vieles mehr. Ich berichte z.B. über die Installation und Konfiguration von Software als auch von Problemen mit dieser. News sind ebenso spannend, sodass ich auch über Updates, Releases und Neuigkeiten aus der IT berichte. Letztendlich nutze ich Taste-of-IT als eigene Dokumentation und Anlaufstelle bei wiederkehrenden Themen. Ich hoffe ich kann dich ebenso informieren und bei Problemen eine schnelle Lösung anbieten. Wer meinen Aufwand unterstützen möchte, kann gerne eine Tasse oder Pod Kaffe per PayPal spenden – vielen Dank.