#!/bin/rc rfork en if (test -e /srv/fossil -o -e /srv/fossil.open) { echo $0: /srv/fossil* exists, not safe to start a new one >[1=2] exit fossil-already-running } SDBLOCKS=7743330 # for a 4GB device SDCYLS=`{hoc -e $SDBLOCKS/255/63} dospart=dos # dos (separate partition) or 9fat (within plan9 partition) sd=sdXX dev=/dev/$sd target=plan9-usb disk=/tmp/$target.img iso=/tmp/9legacy.iso src9=/ nboot=$src9/sys/src/nboot/pc pcinst=$src9/sys/src/9/pc/9pcinst if (! test -r $nboot/9bootfat) { echo $0: please run mk in $nboot first >[1=2] exit 9bootfat-missing } if (! test -r $pcinst) { echo $0: please mk CONF'='pcinst in kernel source first >[1=2] exit 9pcinst-missing } data=$dev/data plan9=$dev/plan9 9fat=$dev/$dospart fossil=$dev/fossil { echo '[menu]' echo menuitem'='cpu, Plan 9 CPU Kernel echo menuitem'='terminal, Plan 9 Terminal Kernel echo menuitem'='install, Plan 9 Installer echo menuitem'='manual, Manual echo menudefault'='terminal, 10 echo echo '[cpu]' echo bootfile'='sdB0!9fat!9pccpuf echo nobootprompt'='local!$dev/fossil echo echo '[terminal]' echo bootfile'='sdB0!9fat!9pcf echo nobootprompt'='local!$dev/fossil echo user'='glenda echo echo '[install]' echo bootfile'='sdB0!9fat!9pcinst echo nobootprompt'='local!/boot/bzroot echo user'='glenda echo echo '[manual]' echo bootfile'='sdE0!9fat!9pcf echo bootargs'='local!/dev/sdE0/fossil echo venti'='/dev/sdE0/arenas echo show echo wait echo echo '[common]' echo echo readparts'='1 echo nvram'='$dev/nvram echo *nodumpstack'='1 echo *noe820print'='1 echo echo mouseport'='ask echo monitor'='ask echo vgasize'='ask } > /tmp/plan9.ini dd -if /dev/zero -of $disk -bs 512 -count 1 chmod +t $disk aux/disksim -f $disk echo geometry $SDBLOCKS 512 $SDCYLS 255 63 >$dev/ctl disk/mbr -m $nboot/mbr $data switch($dospart){ case 9fat disk/fdisk -baw $data disk/prep -bw -a^(9fat nvram fscfg fossil) $plan9 case dos {echo a p1 0 8; echo t p1 FAT32; echo A p1; echo a p2 8 '$'; echo w} | disk/fdisk -b $data disk/prep -bw -a^(nvram fscfg fossil) $plan9 case * echo $0: '$dospart' must be 9fat or dos exit bad-dospart } rm -f /srv/9660 kill 966srv|rc 9660srv -f $iso mount /srv/9660 /n/dist disk/format -b $nboot/pbs -d -r 2 $9fat $nboot/9bootfat $src9/386/9pcf $src9/386/9pccpuf $pcinst /tmp/plan9.ini rm /tmp/plan9.ini fossil/flfmt -y $fossil { echo fsys main config echo fsys main open -Va -c 32768 echo srv fossil echo srv -APW fossil.open echo srv -Ap fscons.open echo fsys main } | fossil/conf -w $fossil fossil/fossil -f $fossil mount -c /srv/fossil.open /n/newfs echo fsys main create /active/adm adm sys d775 >>/srv/fscons.open echo fsys main create /active/adm/users adm sys 664 >>/srv/fscons.open echo uname upas :upas >>/srv/fscons.open echo users -w >>/srv/fscons.open for(i in dist dist/replica dist/replica/client) echo fsys main create /active/$i sys sys d775 >>/srv/fscons.open echo fsys main create /active/dist/replica/client/plan9.db sys sys 664 >>/srv/fscons.open echo fsys main create /active/dist/replica/client/plan9.log sys sys a664 >>/srv/fscons.open # uncomment 3 lines below for a 386-only version #p9log=/n/dist/dist/replica/plan9.log #awk '!($4 ~ /^(arm|arm64|amd64)\// && $6 !~ /^2/)' $p9log >/tmp/p9log #bind /tmp/p9log $p9log replica/pull /sys/lib/dist/pc/inst/replcfg cp -x /n/dist/dist/replica/^(plan9.db plan9.log) /n/newfs/dist/replica unmount /n/newfs sleep 8 echo fsys all sync >>/srv/fscons.open sleep 8 echo fsys all halt >>/srv/fscons.open sleep 8 rm -f /srv/^(fossil fossil.open fscons fscons.open) sleep 8 for(p in `{ps | awk '$NF == "fossil" {print $2}'}) if(grep -s $fossil /proc/$p/fd) echo kill >/proc/$p/note kill disksim | rc #bzip2 -c9 $disk > $disk.bz2 && rm $disk