19a747e4fSDavid du Colombier#!/bin/rc 29a747e4fSDavid du Colombier 39a747e4fSDavid du Colombierfirst=`{ls -p '#S' | sed 1q} 49a747e4fSDavid du Colombierif(! ~ $first $disk) { 59a747e4fSDavid du Colombier echo 'warning: The plan 9 partition is not on the boot disk,' 69a747e4fSDavid du Colombier echo 'so making it the active partition will have no effect.' 79a747e4fSDavid du Colombier} 89a747e4fSDavid du Colombier 99a747e4fSDavid du Colombierp9offset=`{grep '^part 9fat ' /dev/$disk/ctl |awk '{print $3}'} 109a747e4fSDavid du Colombierif(! ~ $#p9offset 1) { 119a747e4fSDavid du Colombier echo 'could not find plan 9 partition.' 129a747e4fSDavid du Colombier echo 'cannot happen' 139a747e4fSDavid du Colombier exit bad 149a747e4fSDavid du Colombier} 159a747e4fSDavid du Colombier 169a747e4fSDavid du Colombierif(test $p9offset -gt 4128695) { # 65536 * 63 - 10 179a747e4fSDavid du Colombier echo 189a747e4fSDavid du Colombier echo 'Your Plan 9 partition is more than 2GB into your disk,' 199a747e4fSDavid du Colombier echo 'and the master boot records used by Windows 9x/ME' 209a747e4fSDavid du Colombier echo 'cannot access it (and thus cannot boot it).' 219a747e4fSDavid du Colombier echo 229a747e4fSDavid du Colombier echo 'You can install the Plan 9 master boot record, which can load' 239a747e4fSDavid du Colombier echo 'partitions far into the disk.' 249a747e4fSDavid du Colombier echo 25*13ec2712SDavid du Colombier} 26*13ec2712SDavid du Colombier 279a747e4fSDavid du Colombierecho 'If you use the Windows NT/2000/XP master boot record' 289a747e4fSDavid du Colombierecho 'or a master boot record from a Unix clone (e.g., LILO or' 29*13ec2712SDavid du Colombierecho 'FreeBSD bootmgr), it is probably safe to continue using' 309a747e4fSDavid du Colombierecho 'that boot record rather than install the Plan 9 boot record.' 319a747e4fSDavid du Colombierecho 329a747e4fSDavid du Colombierprompt 'Install the Plan 9 master boot record' y n 339a747e4fSDavid du Colombierswitch($rd) { 349a747e4fSDavid du Colombiercase n 359a747e4fSDavid du Colombier ; 369a747e4fSDavid du Colombiercase y 379a747e4fSDavid du Colombier disk/mbr -m /386/mbr /dev/$disk/data 389a747e4fSDavid du Colombier} 399a747e4fSDavid du Colombier 409a747e4fSDavid du Colombierlog Setting Plan 9 partition active. 419a747e4fSDavid du Colombierp9part=`{disk/fdisk /dev/$disk/data >[2]/dev/null </dev/null | 429a747e4fSDavid du Colombier grep PLAN9 | sed 1q | sed 's/ *(p.) .*/\1/'} 439a747e4fSDavid du Colombierif(~ $#p9part 0){ 449a747e4fSDavid du Colombier echo 'You have no Plan 9 partitions (How could this happen?)' >[1=2] 459a747e4fSDavid du Colombier exit 'no plan 9 partition found' 469a747e4fSDavid du Colombier} 479a747e4fSDavid du Colombierp9part=$p9part(1) 489a747e4fSDavid du Colombier{ echo 'A '^$p9part; echo w } | disk/fdisk /dev/$disk/data >[2]/dev/null >/dev/null 499a747e4fSDavid du Colombierx=$status 509a747e4fSDavid du Colombierif(~ $x '' '|'){ 519a747e4fSDavid du Colombier echo 529a747e4fSDavid du Colombier echo 'The Plan 9 partition is now marked as active.' 539a747e4fSDavid du Colombier exit '' 549a747e4fSDavid du Colombier} 559a747e4fSDavid du Colombierexit $x 56