ZFS Swap später einbinden
In der Vergangenheit habe ich es erlebt, dass der Bootvorgang gestoppt wurde wenn einzelne Partitionen nicht verfügbar sind. Das ist insbesondere manchmal der Fall wenn in einem ZFS Mirror eine Platte nicht da ist aber ein Booten möglich wäre weil es ist ja eine andere da.
Deswegen wollte ich Swap Partition nur einrichten wenn die Partition auch da ist. Hier hat ChatGPT mir eine nette Idee geliefert die ich noch etwas verfeinern musste.
Die Idee: Swap wird nicht über die fstab eingerichtet sondern über ein rc Startup Script das vorher prüft ob die Partition da ist.
Hier das rc Startup Script
vi /etc/rc.d/swap_add_optional
#!/bin/sh
#
# PROVIDE: swap_add_optional
# REQUIRE: FILESYSTEMS
# BEFORE: swaplate
# KEYWORD: nojail
. /etc/rc.subr
name="swap_add_optional"
start_cmd="swap_add_optional_start"
stop_cmd=":"
swap_devices="/dev/gpt/swap0 /dev/gpt/swap1 "
swap_add_optional_start() {
echo "Adding available swap devices..."
for dev in ${swap_devices}; do
if [ -e "$dev" ]; then
echo " Adding swap: $dev"
swapon "$dev"
else
echo " Swap device missing: $dev"
fi
done
}
load_rc_config $name
run_rc_command "$1"
Die Datei muss natürlich ausführbar sein
chmod +x /etc/rc.d/swap_add_optional
Das ganze muss noch in der rc.conf gestartet werden
vi /etc/rc.conf
swap_add_optional_enable="YES"