DF-5172 / guest_prep.sh
#!/bin/sh # DF-5171/DF-5172 guest-side prep (run INSIDE the DF QEMU guest as root, # with vcd_trim_poc.c / vcd_race_poc.c pushed to /root/vk/src/). set -eux cd /root/vk # --- static PoCs ------------------------------------------------------------- cc -static -O2 -o poc src/vcd_trim_poc.c cc -static -O2 -o race src/vcd_race_poc.c # --- root.img: 128 MB UFS, /poc + /race + /dev ------------------------------- if [ ! -f root.img ]; then dd if=/dev/zero of=root.img bs=1m count=128 vnconfig -c vn0 root.img disklabel -r -w vn0 auto disklabel -r vn0 > label.proto sed -e 's|^#a: \* \* 4.2BSD|a: * * 4.2BSD|' \ label.proto > label.new disklabel -r -R vn0 label.new newfs /dev/vn0s0a mount /dev/vn0s0a /mnt mkdir -p /mnt/dev /mnt/tmp cp poc race /mnt/ umount /mnt vnconfig -u vn0 fi # --- ffs.img: 64 MB UFS w/ junk/data.bin, passed to vkernel via -c ----------- dd if=/dev/zero of=ffs.img bs=1m count=64 vnconfig -c vn0 ffs.img disklabel -r -w vn0 auto disklabel -r vn0 > label.proto sed -e 's|^#a: \* \* 4.2BSD|a: * * 4.2BSD|' \ label.proto > label.new disklabel -r -R vn0 label.new newfs /dev/vn0s0a mount /dev/vn0s0a /mnt mkdir -p /mnt/junk dd if=/dev/zero of=/mnt/junk/data.bin bs=1m count=4 umount /mnt vnconfig -u vn0 sysctl vm.vkernel_enable=1 echo PREP-DONE |