#!/bin/bash
#########
# Thomas Schueller 200408
#########
#
#Dieses Script legt alle Devices fuer einen Compaq/HP Smart Array Controller,
# Typ 5300 unter GNU/Linux an. Bei Knoppix fehlen diese Devices.
#
# Anfangswerte:
cn=0	# 1. Controller
dsk=0	# 1. Disk
man=104 # Major Number (Fuer Controller 1 ist die Major Number 104)
min=0	# Minor Number
maxcn=7	# Wir gehen davon aus, dass pro Server nicht mehr als
	# 7 Controller eingebaut werden. 9 sind moeglich
DEVDIR=/dev/cciss
#
# Major Number fuer den 2. Controller: 105 c1dxpx
# Ab Minor Number 16 beginnt die 2. Disk (cxd1px)
# Achtung! Ein Array auf dem Controller wird dem OS als physikalische
# Disk dargestellt, egal wieviele HDs eingebaut sind
#
echo -n "Verzeichnis $DEVDIR wird erstellt: ..."
mkdir $DEVDIR && echo " OK!" || echo " FAILED"
#
echo "Devices fuer cciss (SmartArrayController) werden erstellt, ...."

while [ $cn -le $maxcn ] # Wir legen Devices fuer 7 Controller an ************************++
do
dsk=0 # Die Disknummer muss bei jedem neuen Controller auf 0 gesetzt werden
min=0 # Ebenso die Minor Nummer
	while [ $dsk -le 9 ] # Wir legen Devices fuer 9 Platten auf jedem Controller an ****************+
	do	# Zuerst legen wir die Disk an
		echo -n  "...... fuer Controller $cn und Disk $dsk  (c$cn""d$dsk - $man $min) ...."
		mknod $DEVDIR'/c'$cn'd'$dsk b $man $min && echo " OK!"|| echo " FAILED"
		pn=1	# Die Partitionsnummer wird nach jeder Disk auf 1 gesetzt, waehrend die Minor Number
			# fuer jeden neuen Controller auf 0 Gesetzt werden muss
		while [ $pn -le 15 ]
		do	# Wir legen 15 Partitionen pro Disk an ******************++
			min=`expr $min + 1`
			echo -n "... partition $pn auf Controller $cn und Disk $dsk  (c$cn""d$dsk""p$pn- $man $min) ...."
			mknod $DEVDIR'/c'$cn'd'$dsk'p'$pn b $man $min && echo " OK!"|| echo " FAILED"
			pn=`expr $pn + 1`
		done
		dsk=`expr $dsk + 1`
		min=`expr $min + 1`
	done	
cn=`expr $cn + 1`
man=`expr $man + 1`
done

