1 |
#!/bin/bash |
#!/bin/bash |
2 |
# |
# |
3 |
# $Header: /home/cvsd/alx-cvs/alx-src/alxinstall-ng/functions/findhdd.sh,v 1.1.1.1 2005-04-18 19:01:41 niro Exp $ |
# $Header: /home/cvsd/alx-cvs/alx-src/alxinstall-ng/functions/findhdd.sh,v 1.3 2008-06-27 22:32:52 niro Exp $ |
4 |
# |
# |
5 |
|
|
6 |
|
# initialize values |
7 |
|
idedisks="" |
8 |
|
scsidisks="" |
9 |
|
ide="" |
10 |
|
scsi="" |
11 |
|
cdromdev="" |
12 |
|
bootdev="" |
13 |
|
|
14 |
### partitionen auslesen in proc |
### partitionen auslesen in proc |
15 |
while read major minor blocks name blurp |
while read major minor blocks name blurp |
16 |
do |
do |
17 |
case "$name" in |
case "${name}" in |
18 |
hd?) |
hd?) idedisks="$idedisks /dev/${name}" ;; |
19 |
idedisks="$idedisks /dev/${name}" |
sd?) scsidisks="$scsidisks /dev/${name}" ;; |
20 |
;; |
ide*) ide="$ide $name" ;; |
21 |
sd?) |
sc*) scsi="$scsi $name" ;; |
22 |
scsidisks="$scsidisks /dev/${name}" |
esac |
|
;; |
|
|
ide*) |
|
|
ide="$ide $name" |
|
|
;; |
|
|
sc*) |
|
|
scsi="$scsi $name" |
|
|
;; |
|
|
esac |
|
23 |
done << EOF |
done << EOF |
24 |
$(cat /proc/partitions) |
$(cat /proc/partitions) |
25 |
EOF |
EOF |
27 |
|
|
28 |
### ergebnis $ide ist ide/host0/bus0 ... |
### ergebnis $ide ist ide/host0/bus0 ... |
29 |
### ermitteln des device link namens: |
### ermitteln des device link namens: |
30 |
if [ ! -z "$ide" ] |
if [[ ! -z ${ide} ]] |
31 |
then |
then |
32 |
for I in $ide |
for i in ${ide} |
33 |
do |
do |
34 |
devs=`ls /dev/hd?` |
devs=$(ls /dev/hd?) |
35 |
for K in $devs |
for x in ${devs} |
36 |
do |
do |
37 |
devname="`readlink $K`" |
devname="$(readlink $x)" |
38 |
if [ "$I" == "$devname" ] |
[[ ${i} = ${devname} ]] && idedisks="${idedisks} ${x}" |
|
then |
|
|
idedisks="$idedisks $K" |
|
|
fi |
|
39 |
done |
done |
40 |
done |
done |
41 |
fi |
fi |
43 |
|
|
44 |
### ergebnis $scsi ist scsi/host0/bus0 ... |
### ergebnis $scsi ist scsi/host0/bus0 ... |
45 |
### ermitteln des device link namens: |
### ermitteln des device link namens: |
46 |
if [ ! -z "$scsi" ] |
if [[ ! -z ${scsi} ]] |
47 |
then |
then |
48 |
for I in $scsi |
for i in ${scsi} |
49 |
do |
do |
50 |
devs=`ls /dev/sd?` |
devs=$(ls /dev/sd?) |
51 |
for K in $devs |
for x in ${devs} |
52 |
do |
do |
53 |
devname="`readlink $K`" |
devname="$(readlink ${x})" |
54 |
if [ "$I" == "$devname" ] |
[[ ${i} = ${devname} ]] && scsidisks="${scsidisks} ${x}" |
|
then |
|
|
scsidisks="$scsidisks $K" |
|
|
fi |
|
55 |
done |
done |
56 |
done |
done |
57 |
fi |
fi |
60 |
|
|
61 |
## ermitteln des device ## |
## ermitteln des device ## |
62 |
## link nach /dev/cdrom/cdromX ## |
## link nach /dev/cdrom/cdromX ## |
63 |
cdrom="`readlink /dev/cdrom`" |
cdrom="$(readlink /dev/cdrom)" |
64 |
## link nach dem hostcontroller ## |
## link nach dem hostcontroller ## |
65 |
cdrom="`readlink /dev/${cdrom}|sed -e 's/..\///'`" |
cdrom="$(readlink /dev/${cdrom} | sed -e 's/..\///')" |
66 |
### ide devices nach cdrom durchsuchen: |
### ide devices nach cdrom durchsuchen: |
67 |
if [ ! -z "$idedisks" ] |
if [[ ! -z ${idedisks} ]] |
68 |
then |
then |
69 |
for I in $idedisks |
for i in ${idedisks} |
70 |
do |
do |
71 |
idehost="`readlink $I`" |
idehost="$(readlink ${i})" |
72 |
if [ "$idehost" == "$cdrom" ] |
[[ ${idehost} = ${cdrom} ]] && cdromdev="${cdromdev} ${i}" |
|
then |
|
|
cdromdev="$cdromdev $I" |
|
|
fi |
|
73 |
done |
done |
74 |
fi |
fi |
75 |
|
|
76 |
### scsi devices nach cdrom durchsuchen: |
### scsi devices nach cdrom durchsuchen: |
77 |
if [ ! -z "$scsidisks" ] |
if [[ ! -z ${scsidisks} ]] |
78 |
then |
then |
79 |
for I in $scsidisks |
for i in ${scsidisks} |
80 |
do |
do |
81 |
scsihost="`readlink $I`" |
scsihost="$(readlink ${x})" |
82 |
if [ "$scsihost" == "$cdrom" ] |
[[ ${scsihost} = ${cdrom} ]] && cdromdev="${cdromdev} ${i}" |
|
then |
|
|
cdromdev="$cdromdev $I" |
|
|
fi |
|
83 |
done |
done |
84 |
fi |
fi |
85 |
|
|
86 |
|
|
87 |
|
### boot device ermitteln und entfernen wenn usbstick oder eine disk ### |
88 |
|
bootdev=$(grep '[[:space:]]/mnt/cdrom[[:space:]]' /proc/mounts | sed 's:^\(.*\)[0-9]\ /mnt/cdrom.*:\1:') |
89 |
|
if [[ ! -z ${bootdev} ]] |
90 |
|
then |
91 |
|
idedisks=${idedisks//${bootdev}} |
92 |
|
scsidisks=${scsidisks//${bootdev}} |
93 |
|
fi |
94 |
|
|
95 |
#echo "idedisks: $idedisks" |
#echo "idedisks: $idedisks" |
96 |
#echo "scsidisks: $scsidisks" |
#echo "scsidisks: $scsidisks" |
97 |
#echo "cdromdev: $cdromdev" |
#echo "cdromdev: $cdromdev" |
98 |
|
|
99 |
|
# mhm doesn't work with udev any longer, |
100 |
|
# need to fix this ... |
101 |
|
# 'unset cdromdev' should solve this issue temporally |
102 |
unset cdromdev |
unset cdromdev |