DF-3222 / run-fixed.sh
#!/bin/sh # Fixed-run driver for DF-3222: does NOT revert anything. # Current /usr/src vfsops.c must already carry BOTH fixes. VK=/usr/obj/usr/src/sys/VKDIRFS/kernel.debug pkill -9 -f kernel.debug 2>/dev/null; sleep 1; rm -f /var/vkernel/.memimg.* rm -f /tmp/vkin2 /tmp/vkconsole2.log mkfifo /tmp/vkin2 rm -rf /dirfs-host; mkdir -p /dirfs-host ( exec 3> /tmp/vkin2 for i in $(seq 1 120); do grep -q "Mounting devfs" /tmp/vkconsole2.log 2>/dev/null && break sleep 1 done sleep 3 echo "echo VK-SHELL-READY" >&3 sleep 2 echo "/bin/vkmount2 /hostroot" >&3 sleep 3 echo "echo STILL-ALIVE" >&3 sleep 8 ) & cd /usr/obj/usr/src/sys/VKDIRFS ./kernel.debug -m 512m -r /vkroot.img \ -e vfs.root.mountfrom=ufs:vkd0s1a \ -e init_path=/sbin/vkinit \ < /tmp/vkin2 > /tmp/vkconsole2.log 2>&1 & VKPID=$! echo "vkernel pid=$VKPID" for i in $(seq 1 25); do kill -0 $VKPID 2>/dev/null || break sleep 2 done sleep 3 echo "=== console (fixed) ===" grep -A1 "vkmount2\|STILL-ALIVE" /tmp/vkconsole2.log | tail -6 tail -3 /tmp/vkconsole2.log if kill -0 $VKPID 2>/dev/null; then echo "RESULT: vkernel alive (fixed)" pkill -9 -f kernel.debug else echo "RESULT: vkernel died" fi |