xref: /plan9/sys/lib/dist/pc/inst/partdisk (revision a22b0629beb42d6ba21fb59ad976b0ded93891c9)
1#!/bin/rc
2
3# desc: edit partition tables (e.g., to create a plan 9 partition)
4# prereq: configfs
5
6switch($1){
7case 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		echo e | disk/fdisk -r /dev/$i/data >[2]/dev/null | grep -v '^   mbr'
21		echo
22	}
23
24	okay=no
25	defdisk=$disks(1)
26
27	if(~ $#disks 1)
28		default=(-d $disks)
29	if not
30		default=()
31	prompt $default 'Disk to partition' $disks
32	disk=$rd
33
34	if(! hasmbr /dev/$disk/data) {
35		echo 'The disk you selected HAS NO master boot record on its first sector.'
36		echo '(Perhaps it is a completely blank disk.)'
37		echo 'You need a master boot record to use the disk.'
38		echo 'Should we install a default master boot record?'
39		echo
40		prompt 'Install mbr' y n
41		switch($rd) {
42		case y
43			disk/mbr -m /386/mbr /dev/$disk/data
44			pickdisk=done
45		}
46	}
47	echo
48	echo 'This is disk/fdisk; use it to create a Plan 9 partition.'
49	echo 'If there is enough room, a Plan 9 partition will be'
50	echo 'suggested; you can probably just type ''w'' and then ''q''.'
51	echo
52	disk/fdisk -a /dev/$disk/data
53	disk/fdisk -p /dev/$disk/data >/dev/$disk/ctl >[2]/dev/null
54	for(i in /dev/sd*/plan9*){
55		if(test -f $i){
56			d=`{basename -d $i}
57			disk/prep -p $i >$d/ctl >[2]/dev/null
58		}
59	}
60
61case checkdone
62	# we want at least one disk with both an mbr and a plan9 partition
63	mbrandplan9=0
64	disks=`{ls /dev/sd*/plan9 >[2]/dev/null | sed 's!/dev/(sd..)/plan9!\1!'}
65	for(disk in $disks) {
66		if(hasmbr /dev/$disk/data)
67			mbrandplan9=1
68	}
69	if(~ $mbrandplan9 0){
70		partdisk=notdone
71		export partdisk
72	}
73}
74