3 # desc: create a boot floppy or configure hard disk to boot plan 9
7 for(i in /dev/sd*/9fat){
13 case checkdone checkready
14 if(~ $#fats 0 || ~ $#9fat 1 && ~ `{fstype $9fat} dos && ~ $didbootsetup 1)
22 echo 'Setup Plan 9 FAT boot partition (9fat)'
29 prompt $default 'Plan 9 FAT partition' $fats
33 if(! test -f /tmp/plan9.ini) {
36 echo 'bootfile='^$bootfile
37 echo 'bootargs=local!'^$fs' '$"fsflags
40 echo 'mouseport='^$mouseport
41 echo 'monitor='^$monitor
42 echo 'vgasize='^$vgasize
48 } | grep -v '(apm0|e820|bootfile|bootargs|nvram|mouseport|monitor|vgasize|cdboot)'
53 rm -f /tmp/oldplan9.ini /tmp/pbs.bak
54 unmount /n/9fat >[2]/dev/null
56 if(! test -f /srv/dos)
60 if(~ `{fstype $9fat} dos){
61 if(mount /srv/dos /n/9fat $9fat >[2]/dev/null){
62 if(cp /n/9fat/plan9.ini /tmp/oldplan9.ini >[2]/dev/null)
64 unmount /n/9fat >[2]/dev/null
66 # make sure dossrv is gone
71 # always make backup of old bootsector
72 logprog dd -bs 512 -count 1 -if $9fat -of /tmp/pbs.bak
74 if(~ $need9fatformat yes){
75 log Initializing Plan 9 FAT partition.
76 logprog disk/format -r 2 -d -b /n/newfs/386/pbs $9fat
79 log Updating bootsector.
80 logprog disk/format -b /n/newfs/386/pbs $9fat
83 logprog mount -c /srv/dos /n/9fat $9fat
85 logprog rm -f /n/9fat/^(9bootfat plan9.ini 9pcf 9pccpuf)
87 logprog cp /n/newfs/386/9bootfat /n/9fat/9bootfat
88 # make file continous on disk
89 logprog chmod +al /n/9fat/9bootfat
91 logprog cp /tmp/plan9.ini /n/9fat/plan9.ini
92 logprog cp /n/newfs/386/9pcf /n/9fat/9pcf
93 logprog cp /n/newfs/386/9pccpuf /n/9fat/9pccpuf
96 if(test -f /tmp/oldplan9.ini)
97 logprog cp /tmp/oldplan9.ini /n/9fat
98 if(test -f /tmp/pbs.bak)
99 logprog cp /tmp/pbs.bak /n/9fat
101 logprog unmount /n/9fat
103 disk=`{basename `{basename -d $9fat}}