DragonFlyBSD Kernel Audit
DF-0762 / setup_h2.sh
← back to finding ↓ download raw
#!/bin/sh
# DF-0762 hammer2 setup (run as root on the guest).
# Creates a hammer2 image, newfs's it, mounts it, chowns to the unprivileged user.
set -e
IMG=/root/h2test.img
MNT=/h2test
SIZE_MB=${1:-512}
USER=maxx

# load the in-tree hammer2 module (base system module, not custom)
kldload -n hammer2 2>/dev/null || true
kldstat -v 2>/dev/null | grep -q hammer2 || { echo "hammer2 module not loaded"; kldload hammer2; }

# (re)create the image file
rm -f "$IMG"
dd if=/dev/zero of="$IMG" bs=1m count="$SIZE_MB" 2>&1 | tail -1

# vnconfig (DragonFly vnode disk) + newfs_hammer2
VND=vn0
vnconfig -c "$VND" "$IMG" 2>&1
echo "vn device: $VND"
newfs_hammer2 -L TEST "/dev/$VND" 2>&1 | tail -5

# mount
mkdir -p "$MNT"
mount_hammer2 "/dev/${VND}@TEST" "$MNT" 2>&1 || mount_hammer2 "/dev/$VND" "$MNT"
chmod 0777 "$MNT"
chown -R "$USER":wheel "$MNT" 2>/dev/null || true
df -h "$MNT"
echo "SETUP_OK vn=$VND mnt=$MNT"
echo "$VND" > /root/h2test.vn