fn showlocaldevs{
echo local devices found:
- for(d in /dev/sd*){
- if(test -r $d/ctl){
- q=`{sed 's,(inquiry|geometry),\
+ for(d in /dev/sd*) if(test -r $d/ctl){
+ q=`{sed 's,(inquiry|geometry),\
\1,g' $d/ctl | grep inquiry}
- echo $d':' $q(2-)
- for(i in `{ls -p $d}){
- p=$d/$i
- switch($i){
- case ctl raw log
- ;
- case 9fat plan9 nvram
- echo $p
- case *
- t=`{fstype $p}
- if(~ $#bootargs 0 && ! ~ $t '')
- bootargs=local!$p
- echo $p $t
- }
+ echo $d':' $q(2-)
+ for(i in `{ls -p $d}){
+ p=$d/$i
+ switch($i){
+ case ctl raw log
+ ;
+ case 9fat plan9 nvram
+ echo $p
+ case *
+ t=`{fstype $p}
+ if(~ $#bootargs 0 && ! ~ $t '')
+ bootargs=local!$p
+ echo $p $t
+ }
+ }
+ }
+ for(d in /shr/sd*) if(test -d $d) {
+ echo $d':'
+ for(p in $d/*.^(iso kfs paq)) if(test -f $p){
+ t=`{fstype $p}
+ if(! ~ $t ''){
+ if(~ $#bootargs 0)
+ bootargs=local!$p
+ echo $p $t
}
}
}
}
fn connectlocal{
- if(test -r $1)
+ if(test -f $1)
t=`{fstype $1}
if not {
t=$1; shift
fatal unknown fstype $1
case 9660
bootfs 9660srv $*
+ case dos
+ bootfs dossrv $*
case kfs
bootfs disk/kfs $*
- case dos
- if(! test -f /srv/dos)
- dossrv
- m=/mnt/dosboot
- must mount /srv/dos $m $1
- shift
- if(~ $#* 0)
- f=$m/9front.iso
- if not
- f=$m/$1
- if(test -r $f)
- connectlocal $f
- if not
- connectlocal $*
case *
bootfs $t $*
}
@{
rfork ne
cd '#σ/usb'
- for(dev in sdU^$1.*){
- echo $dev...
+ for(dev in sdU^$1.*) if(test -d $dev) {
diskparts $dev
- for(part in $dev/dos* $dev/9fat){
- if(test -r $part) {
- mkdir -m 0700 '#σc/'^$dev
- {dossrv -s -f $part &} <[0=1] |
- echo 0 >'#σc/'^$dev/dos
- exit
- }
+ for(part in $dev/dos* $dev/9fat) if(test -r $part) {
+ mkdir -m 0700 '#σc/'^$dev || exit
+ {dossrv -s -f $part &} <[0=1] |
+ echo 0 >'#σc/'^$dev/dos
+ exit
}
}
} &