diff options
author | Taru Karttunen <taruti@taruti.net> | 2011-03-30 17:14:36 +0300 |
---|---|---|
committer | Taru Karttunen <taruti@taruti.net> | 2011-03-30 17:14:36 +0300 |
commit | 2959e1ede0ebc6fdffd7b8660f43c2ce14c9696f (patch) | |
tree | f6343b1ce11a8c87251dd27cf3d3e26b50693fa7 /rc/bin/diskparts | |
parent | e463eb40363ff4c68b1d903f4e0cdd0ac1c5977f (diff) |
Import sources from 2011-03-30 iso image - rc
Diffstat (limited to 'rc/bin/diskparts')
-rwxr-xr-x | rc/bin/diskparts | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/rc/bin/diskparts b/rc/bin/diskparts new file mode 100755 index 000000000..0088f5cc1 --- /dev/null +++ b/rc/bin/diskparts @@ -0,0 +1,34 @@ +#!/bin/rc +# set up any disk partitions +rfork e +if (! test -e /dev/sdctl) + bind -b '#S' /dev + +# set up any /dev/sd partitions. +# note that really big disks (e.g., aoe devices) may have no mbr +# partition table because the mbr partition table can't cope with large +# block numbers, so we may have to examine the data file with prep if +# there's no plan9 file. beware that `disk/prep -p data' on a disk with +# no plan 9 partition table will delete all extant partitions. +for(disk in /dev/sd*) { + if(test -f $disk/data && test -f $disk/ctl) + { disk/fdisk -p $disk/data | + grep -v '^delpart ' >$disk/ctl } >[2]/dev/null + if(test -f $disk/plan9) + parts=($disk/plan9*) + if not + parts=($disk/data) + for(part in $parts) + if(test -f $part) + { disk/prep -p $part | + grep -v '^delpart ' >$disk/ctl } >[2]/dev/null +} + +sysname=`{cat /dev/sysname} + +# set up any fs(3) partitions +if (! test -e /dev/fs/ctl && test -e '#k/fs') + bind -b '#k' /dev +if (~ $#sysname 1 && ! ~ $sysname '' && + test -r /cfg/$sysname/fsconfig && test -w /dev/fs/ctl) + read -m /cfg/$sysname/fsconfig >/dev/fs/ctl |