#!/bin/rc # desc: choose and mount file system partition switch($1){ case go echo 'The following partitions named fs* were found.' echo echo 'Please choose one to use as the installation media' echo 'for your Plan 9 installation.' echo files=(/dev/sd*/fs*) ls -l $files echo if(~ $#files 1) default=(-d $files) if not default=() prompt $default 'Partition to use for Plan 9 installation' $files fs=$rd export fs kname=`{kfsname $fs} doinit=(-rb8192) if(iskfs $fs){ echo 'A Plan 9 file system already exists on '^$fs^'.' echo 'Do you want to wipe it clean?' echo prompt -d keep 'Wipe the Plan 9 file system clean' keep wipe switch($rd){ case keep doinit=() } } log Starting kfs file server for $fs unmount /n/kfs >[2]/dev/null disk/kfscmd -n $kname halt >[2]/dev/null rm -f /srv/kfs.$kname /srv/kfs.$kname.cmd logprog disk/kfs -n $kname $doinit -f $fs disk/kfscmd -n $kname allow >>[2]/srv/log log Mounting kfs file server for $fs if(! logprog mount -c /srv/kfs.$kname /n/kfs){ echo 'mounting kfs: '^$status exit oops } if(test -d /n/kfs/wrap){ moveoldfs go if(test -d /n/kfs/wrap) exit cannotsmashold } if(! test -f /n/kfs/dist/replica/client/plan9.log){ disk/kfscmd -n $kname 'create /dist sys sys 775 d' disk/kfscmd -n $kname 'create /dist/replica sys sys 775 d' disk/kfscmd -n $kname 'create /dist/replica/ndist sys sys 775' disk/kfscmd -n $kname 'create /dist/replica/client sys sys 775 d' disk/kfscmd -n $kname 'create /dist/replica/client/plan9.db sys sys 664' disk/kfscmd -n $kname 'create /dist/replica/client/plan9.log sys sys 664 a' } case checkready checkdone if(! test -f /dev/sd*/fs*){ mountfs=notdone export mountfs exit } if(! ~ $#fs 1 || ! test -f $fs){ mountfs=ready export mountfs exit } kname=`{kfsname $fs} if(! test -f /srv/kfs.$kname){ disk/kfscmd -n $kname halt >[2]/dev/null rm -f /srv/kfs.$kname /srv/kfs.$kname.cmd logprog disk/kfs -n $kname -f $fs disk/kfscmd -n $kname allow >>[2]/srv/log } if(test -f /srv/kfs.$kname && ! test -f /n/kfs/dist/replica/client/plan9.log){ log Mounting kfs file server for $fs if(! logprog mount -c /srv/kfs.$kname /n/kfs) echo 'mounting kfs: '^$status disk/kfscmd -n $kname allow >>[2]/srv/log } if(test -f /srv/kfs.$kname && test -f /n/kfs/dist/replica/client/plan9.log){ mountfs=done export mountfs exit } mountfs=ready export mountfs exit }