41 lines
1.0 KiB
Bash
41 lines
1.0 KiB
Bash
#!/bin/sh
|
|
# Script to create device nodes for SMART array controllers
|
|
# Usage:
|
|
# mkdev.cciss [num controllers] [num log volumes] [num partitions]
|
|
#
|
|
# With no arguments, the script assumes 1 controller, 16 logical volumes,
|
|
# and 16 partitions/volume, which is adequate for most configurations.
|
|
#
|
|
# If you had 5 controllers and were planning on no more than 4 logical volumes
|
|
# each, using a maximum of 8 partitions per volume, you could say:
|
|
#
|
|
# mkdev.cciss 5 4 8
|
|
#
|
|
# Of course, this has no real benefit over "mkdev.cciss 5" except that it
|
|
# doesn't create so many device nodes in /dev/cciss.
|
|
|
|
NR_CTLR=${1-1}
|
|
NR_VOL=${2-16}
|
|
NR_PART=${3-16}
|
|
|
|
if [ ! -d /dev/cciss ]; then
|
|
mkdir -p /dev/cciss
|
|
fi
|
|
|
|
C=0; while [ $C -lt $NR_CTLR ]; do
|
|
MAJ=`expr $C + 104`
|
|
D=0; while [ $D -lt $NR_VOL ]; do
|
|
P=0; while [ $P -lt $NR_PART ]; do
|
|
MIN=`expr $D \* 16 + $P`
|
|
if [ $P -eq 0 ]; then
|
|
mknod /dev/cciss/c${C}d${D} b $MAJ $MIN
|
|
else
|
|
mknod /dev/cciss/c${C}d${D}p${P} b $MAJ $MIN
|
|
fi
|
|
P=`expr $P + 1`
|
|
done
|
|
D=`expr $D + 1`
|
|
done
|
|
C=`expr $C + 1`
|
|
done
|