19a747e4fSDavid du Colombier#!/bin/rc 29a747e4fSDavid du Colombier 39a747e4fSDavid du Colombier# desc: edit partition tables (e.g., to create a plan 9 partition) 4*a22b0629SDavid du Colombier# prereq: configfs 59a747e4fSDavid du Colombier 69a747e4fSDavid du Colombierswitch($1){ 79a747e4fSDavid du Colombiercase go 89a747e4fSDavid du Colombier disks=`{ls /dev/sd*/data >[2]/dev/null | sed 's!/dev/(sd..)/data!\1!'} 99a747e4fSDavid du Colombier if(~ $#disks 0) { 109a747e4fSDavid du Colombier echo 'No disk devices were found on your system.' 119a747e4fSDavid du Colombier echo 'The installation process cannot continue.' 129a747e4fSDavid du Colombier exit giveup 139a747e4fSDavid du Colombier } 149a747e4fSDavid du Colombier 159a747e4fSDavid du Colombier echo 'The following disk devices were found.' 169a747e4fSDavid du Colombier echo 179a747e4fSDavid du Colombier for(i in $disks) { 189a747e4fSDavid du Colombier desc=`{cat /dev/$i/ctl | sed 1q | sed 's/inquiry //'} 199a747e4fSDavid du Colombier echo $i '-' $desc 209a747e4fSDavid du Colombier echo e | disk/fdisk -r /dev/$i/data >[2]/dev/null | grep -v '^ mbr' 219a747e4fSDavid du Colombier echo 229a747e4fSDavid du Colombier } 239a747e4fSDavid du Colombier 249a747e4fSDavid du Colombier okay=no 259a747e4fSDavid du Colombier defdisk=$disks(1) 269a747e4fSDavid du Colombier 279a747e4fSDavid du Colombier if(~ $#disks 1) 289a747e4fSDavid du Colombier default=(-d $disks) 299a747e4fSDavid du Colombier if not 309a747e4fSDavid du Colombier default=() 319a747e4fSDavid du Colombier prompt $default 'Disk to partition' $disks 329a747e4fSDavid du Colombier disk=$rd 339a747e4fSDavid du Colombier 349a747e4fSDavid du Colombier if(! hasmbr /dev/$disk/data) { 3539734e7eSDavid du Colombier echo 'The disk you selected HAS NO master boot record on its first sector.' 369a747e4fSDavid du Colombier echo '(Perhaps it is a completely blank disk.)' 379a747e4fSDavid du Colombier echo 'You need a master boot record to use the disk.' 389a747e4fSDavid du Colombier echo 'Should we install a default master boot record?' 399a747e4fSDavid du Colombier echo 409a747e4fSDavid du Colombier prompt 'Install mbr' y n 419a747e4fSDavid du Colombier switch($rd) { 429a747e4fSDavid du Colombier case y 439a747e4fSDavid du Colombier disk/mbr -m /386/mbr /dev/$disk/data 449a747e4fSDavid du Colombier pickdisk=done 459a747e4fSDavid du Colombier } 469a747e4fSDavid du Colombier } 479a747e4fSDavid du Colombier echo 489a747e4fSDavid du Colombier echo 'This is disk/fdisk; use it to create a Plan 9 partition.' 499a747e4fSDavid du Colombier echo 'If there is enough room, a Plan 9 partition will be' 509a747e4fSDavid du Colombier echo 'suggested; you can probably just type ''w'' and then ''q''.' 519a747e4fSDavid du Colombier echo 529a747e4fSDavid du Colombier disk/fdisk -a /dev/$disk/data 539a747e4fSDavid du Colombier disk/fdisk -p /dev/$disk/data >/dev/$disk/ctl >[2]/dev/null 549a747e4fSDavid du Colombier for(i in /dev/sd*/plan9*){ 559a747e4fSDavid du Colombier if(test -f $i){ 569a747e4fSDavid du Colombier d=`{basename -d $i} 579a747e4fSDavid du Colombier disk/prep -p $i >$d/ctl >[2]/dev/null 589a747e4fSDavid du Colombier } 599a747e4fSDavid du Colombier } 609a747e4fSDavid du Colombier 619a747e4fSDavid du Colombiercase checkdone 6239734e7eSDavid du Colombier # we want at least one disk with both an mbr and a plan9 partition 6339734e7eSDavid du Colombier mbrandplan9=0 6439734e7eSDavid du Colombier disks=`{ls /dev/sd*/plan9 >[2]/dev/null | sed 's!/dev/(sd..)/plan9!\1!'} 6539734e7eSDavid du Colombier for(disk in $disks) { 6639734e7eSDavid du Colombier if(hasmbr /dev/$disk/data) 6739734e7eSDavid du Colombier mbrandplan9=1 6839734e7eSDavid du Colombier } 6939734e7eSDavid du Colombier if(~ $mbrandplan9 0){ 709a747e4fSDavid du Colombier partdisk=notdone 719a747e4fSDavid du Colombier export partdisk 729a747e4fSDavid du Colombier } 739a747e4fSDavid du Colombier} 74