xref: /plan9/rc/bin/diskparts (revision aa554c499914bbaa627a268a8956f0198814fe51)
101a344a2SDavid du Colombier#!/bin/rc
2*aa554c49SDavid du Colombier# diskparts [/dev/sd?? ...] - set up any disk partitions
301a344a2SDavid du Colombierrfork e
476783259SDavid du Colombierif (! test -e /dev/sdctl)
5431b537fSDavid du Colombier	bind -b '#S' /dev
6*aa554c49SDavid du Colombierif (~ $#* 0)
7*aa554c49SDavid du Colombier	*=`{ls -d /dev/sd* | uniq}
8*aa554c49SDavid du Colombier
923173ec1SDavid du Colombierbind -a /bin/disk /bin >[2]/dev/null		# work with /boot too
1076783259SDavid du Colombier
113fa8a72dSDavid du Colombier# set up any /dev/sd partitions.
123fa8a72dSDavid du Colombier# note that really big disks (e.g., aoe devices) may have no mbr
133fa8a72dSDavid du Colombier# partition table because the mbr partition table can't cope with large
143fa8a72dSDavid du Colombier# block numbers, so we may have to examine the data file with prep if
15db30dc72SDavid du Colombier# there's no plan9 file.  beware that `disk/prep -p data' on a disk with
16db30dc72SDavid du Colombier# no plan 9 partition table will delete all extant partitions.
17*aa554c49SDavid du Colombierfor(disk) {
1801a344a2SDavid du Colombier	if(test -f $disk/data && test -f $disk/ctl)
1923173ec1SDavid du Colombier		{ fdisk -p $disk/data |
2036066be0SDavid du Colombier			grep -v '^delpart ' >$disk/ctl } >[2]/dev/null
213fa8a72dSDavid du Colombier	if(test -f $disk/plan9)
223fa8a72dSDavid du Colombier		parts=($disk/plan9*)
233fa8a72dSDavid du Colombier	if not
243fa8a72dSDavid du Colombier		parts=($disk/data)
253fa8a72dSDavid du Colombier	for(part in $parts)
2601a344a2SDavid du Colombier		if(test -f $part)
2723173ec1SDavid du Colombier			 { prep -p $part |
2836066be0SDavid du Colombier				grep -v '^delpart ' >$disk/ctl } >[2]/dev/null
2901a344a2SDavid du Colombier}
3001a344a2SDavid du Colombier
3176783259SDavid du Colombiersysname=`{cat /dev/sysname}
3276783259SDavid du Colombier
3301a344a2SDavid du Colombier# set up any fs(3) partitions
34670efe9aSDavid du Colombierif (! test -e /dev/fs/ctl && test -e '#k/fs')
35431b537fSDavid du Colombier	bind -b '#k' /dev
36444b6693SDavid du Colombierif (~ $#sysname 1 && ! ~ $sysname '' &&
37444b6693SDavid du Colombier    test -r /cfg/$sysname/fsconfig && test -w /dev/fs/ctl)
3801a344a2SDavid du Colombier	read -m /cfg/$sysname/fsconfig >/dev/fs/ctl
39