#!/bin/rc # desc: choose and mount file system partition # prereq: systype switch($1){ case go echo echo The please choose your $fstype partitions echo files=(`{ls /dev/sd*/fscache* /dev/fs/fscache* >[2]/dev/null}) if(! ~ $#files 0) ls -l $files echo if(~ $#files 1) default=(-d $files) if not default=() prompt $default 'Cwfs cache partition' $files fs=$rd export fs files=(`{ls /dev/sd*/fsworm* /dev/fs/fsworm* >[2]/dev/null}) if(! ~ $#files 0) ls -l $files echo if(~ $#files 1) default=(-d $files) if not default=() prompt $default 'Cwfs worm partition' $files fsworm=$rd export fsworm files=(`{ls /dev/sd*/other* /dev/fs/other* >[2]/dev/null}) if(! ~ $#files 0) ls -l $files echo if(~ $#files 1) default=(-d $files) if not default=() prompt $default 'Cwfs other partition' $files fsother=$rd export fsother ream=no if(! ~ $fstype `{fstype $fs}) ream=yes prompt -d $ream 'Ream the filesystem?' yes no ream=$rd log Starting $fstype file server for $fs unmount /n/newfs >[2]/dev/null echo halt >>/srv/cwfs.cmd >[2]/dev/null rm -f /srv/cwfs /srv/cwfs.cmd if(~ $ream yes){ if(! test -f /tmp/fsconfig){ { echo service cwfs echo config $fs if(! ~ $syst cpu){ # new config option echo noauth } echo filsys main c'('$fs')('$fsworm')' echo filsys dump o if(! ~ $fsother ''){ echo filsys other '('$fsother')' echo ream other } echo ream main echo end } >/tmp/fsconfig } echo 'Reaming filesystem' if(! $fstype -f $fs -c >/srv/cwfs.cmd sleep 5 log Mounting $fstype file server for $fs if(! logprog mount -c /srv/cwfs /n/newfs){ mountfs=ready export mountfs exit } if(! ~ $fsother ''){ log Mounting $fstype file server for $fsother if(logprog mount -c /srv/cwfs /n/other other) bind -qc /n/other/dist /n/newfs/dist } case checkready checkdone if(! ~ $fstype '' && ~ $#fs 1 && test -f $fs){ if(test -f /srv/cwfs && test -d /n/newfs/dist){ mountfs=done export mountfs exit } } mountfs=ready export mountfs exit }