DF-5667 / vk_probe6.sh
#!/bin/sh # DF-5667 probe v6 — dump struct vm_map of kernel_map (static at 0xf15680 # in this build) to read min_addr/max_addr. set -u VK=/usr/obj/usr/src/sys/VKERNEL64/kernel.debug LOG=/tmp/vk5667.log cd /usr/obj/usr/src/sys/VKERNEL64 pkill -9 -f kernel.debug 2>/dev/null; sleep 1 rm -f /tmp/vkin $LOG; mkfifo /tmp/vkin (sleep 600 > /tmp/vkin 2>/dev/null) </dev/null & HOLDER=$! ( exec 3> /tmp/vkin; echo "ufs:vkd0" >&3 ) & ./kernel.debug -m 512m -r /vkroot.img -n 2 -e init_path=/bin/vkinit \ -s < /tmp/vkin 2>&1 | tee $LOG > /dev/console & i=0; while [ $i -lt 150 ]; do grep -q "Mounting root from ufs:vkd0" $LOG 2>/dev/null && grep -q "^# " $LOG 2>/dev/null && break pgrep -f "kernel.debug -m 512m" >/dev/null 2>&1 || break sleep 1; i=$((i+1)); done sleep 4 ( exec 4> /tmp/vkin; echo "dd if=/dev/kmem bs=64 count=2 skip=\$(( 0xf15680 / 64 )) 2>/dev/null | od -An -tx1" >&4 ) sleep 6 ( exec 4> /tmp/vkin; echo "echo DF5667V6_DONE; reboot" >&4 ) sleep 5 sed -n "/^#/,\$p" $LOG | grep -a -A6 "od -An" | tail -10 kill $HOLDER 2>/dev/null; pkill -9 -f kernel.debug 2>/dev/null echo V6_DONE |