@@ -291,9 +291,18 @@ export PATH=/bin
291291log() { echo "[init] $*"; }
292292
293293KATANA_PID=""
294- KATANA_DB_DIR="/tmp/ katana-data "
294+ KATANA_DB_DIR="/mnt/data/ katana-db "
295295SHUTTING_DOWN=0
296296
297+ fatal_boot() {
298+ log "ERROR: $*"
299+ sync || true
300+ poweroff -f
301+ while true; do
302+ sleep 1
303+ done
304+ }
305+
297306shutdown_handler() {
298307 if [ "$SHUTTING_DOWN" -eq 1 ]; then
299308 return 0
@@ -404,22 +413,19 @@ for tok in $CMDLINE; do
404413 esac
405414done
406415
407- # Mount persistent storage with fallback
408- mkdir -p "$KATANA_DB_DIR"
409- if [ -b /dev/sda ]; then
410- log "Found storage device /dev/sda"
411- mkdir -p /mnt/data
412- if /bin/mount -t ext4 /dev/sda /mnt/data 2>/dev/null; then
413- mkdir -p /mnt/data/katana-db
414- KATANA_DB_DIR="/mnt/data/katana-db"
415- log "Storage mounted at /mnt/data"
416- else
417- log "WARNING: failed to mount /dev/sda, using tmpfs fallback"
418- fi
419- else
420- log "No storage device found, using tmpfs fallback"
416+ # Require persistent storage at /dev/sda
417+ if [ ! -b /dev/sda ]; then
418+ fatal_boot "required storage device /dev/sda not found"
421419fi
422420
421+ log "Found storage device /dev/sda"
422+ mkdir -p /mnt/data
423+ if ! /bin/mount -t ext4 /dev/sda /mnt/data 2>/dev/null; then
424+ fatal_boot "failed to mount required storage device /dev/sda"
425+ fi
426+ mkdir -p "$KATANA_DB_DIR"
427+ log "Storage mounted at /mnt/data"
428+
423429log "Starting katana..."
424430# shellcheck disable=SC2086
425431/bin/katana --db-dir="$KATANA_DB_DIR" $KATANA_ARGS &
0 commit comments