]> git.lizzy.rs Git - plan9front.git/blob - rc/bin/inst/partdisk
cat: remove stupid long cast
[plan9front.git] / rc / bin / inst / partdisk
1 #!/bin/rc
2
3 # desc: edit partition tables (e.g., to create a plan 9 partition)
4 # prereq: configfs
5
6 switch($1){
7 case go
8         disks=`{ls /dev/sd*/data >[2]/dev/null | sed 's!/dev/(sd.*)/data!\1!'}
9         if(~ $#disks 0) {
10                 echo 'No disk devices were found on your system.'
11                 echo 'The installation process cannot continue.'
12                 exit giveup
13         }
14         
15         echo 'The following disk devices were found.'
16         echo
17         for(i in $disks) {
18                 desc=`{cat /dev/$i/ctl | sed 1q | sed 's/inquiry //'}
19                 echo $i '-' $desc
20                 @{disk/edisk -r /dev/$i/data
21                 ||disk/fdisk -r /dev/$i/data} </dev/null >[2]/dev/null | grep -v '^   mbr'
22                 echo
23         }
24         
25         okay=no
26         defdisk=$disks(1)
27
28         if(~ $#disks 1)
29                 default=(-d $disks)
30         if not
31                 default=()
32         prompt $default 'Disk to partition' $disks
33         disk=$rd
34
35         diskedit=disk/fdisk
36         if(disk/edisk -p /dev/$disk/data >/dev/null >[2=1])
37                 diskedit=disk/edisk
38
39         if(~ $diskedit disk/fdisk && ! ./hasmbr /dev/$disk/data) {
40                 echo 'The disk you selected HAS NO master boot record on its first sector.'
41                 echo '(Perhaps it is a completely blank disk.)'
42                 echo 'Shall we create a blank EFI partition table (GPT)'
43                 echo 'or install traditional DOS partition table (MBR)?'
44                 echo
45                 prompt 'Install mbr or gpt' mbr gpt
46                 switch($rd) {
47                 case mbr
48                         disk/mbr -m /386/mbr /dev/$disk/data
49                 case gpt
50                         disk/edisk -bw /dev/$disk/data
51                         diskedit=disk/edisk
52                 }
53         }
54
55         echo
56         echo 'This is '$diskedit'; use it to create a Plan 9 partition.'
57         echo 'If there is enough room, a Plan 9 partition will be'
58         echo 'suggested; you can probably just type ''w'' and then ''q''.'
59         echo
60         $diskedit -a /dev/$disk/data
61         $diskedit -p /dev/$disk/data >/dev/$disk/ctl >[2]/dev/null
62         for(i in /dev/sd*/plan9*){
63                 if(test -f $i){
64                         d=`{basename -d $i}
65                         disk/prep -p $i >$d/ctl >[2]/dev/null
66                 }
67         }
68
69 case checkdone
70         # we want at least one disk with both an mbr and a plan9 partition
71         mbrandplan9=0
72         disks=`{ls /dev/sd*/plan9 >[2]/dev/null | sed 's!/dev/(sd.*)/plan9!\1!'}
73         for(disk in $disks) {
74                 if(./hasmbr /dev/$disk/data)
75                         mbrandplan9=1
76         }
77         if(~ $mbrandplan9 0){
78                 partdisk=notdone
79                 export partdisk
80         }
81 }