Magellan Linux

Contents of /mcore-src/trunk/mcore-install/functions/findhdd.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1275 - (show annotations) (download) (as text)
Fri Feb 4 22:20:50 2011 UTC (13 years, 2 months ago) by niro
File MIME type: application/x-sh
File size: 2084 byte(s)
- initial release
1 #!/bin/bash
2 # $Id$
3
4 # initialize values
5 idedisks=""
6 scsidisks=""
7 ide=""
8 scsi=""
9 cdromdev=""
10 bootdev=""
11
12 ### partitionen auslesen in proc
13 while read major minor blocks name blurp
14 do
15 case "${name}" in
16 hd?) idedisks="$idedisks /dev/${name}" ;;
17 sd?) scsidisks="$scsidisks /dev/${name}" ;;
18 ide*) ide="$ide $name" ;;
19 sc*) scsi="$scsi $name" ;;
20 esac
21 done << EOF
22 $(cat /proc/partitions)
23 EOF
24
25
26 ### ergebnis $ide ist ide/host0/bus0 ...
27 ### ermitteln des device link namens:
28 if [[ ! -z ${ide} ]]
29 then
30 for i in ${ide}
31 do
32 devs=$(ls /dev/hd?)
33 for x in ${devs}
34 do
35 devname="$(readlink $x)"
36 [[ ${i} = ${devname} ]] && idedisks="${idedisks} ${x}"
37 done
38 done
39 fi
40
41
42 ### ergebnis $scsi ist scsi/host0/bus0 ...
43 ### ermitteln des device link namens:
44 if [[ ! -z ${scsi} ]]
45 then
46 for i in ${scsi}
47 do
48 devs=$(ls /dev/sd?)
49 for x in ${devs}
50 do
51 devname="$(readlink ${x})"
52 [[ ${i} = ${devname} ]] && scsidisks="${scsidisks} ${x}"
53 done
54 done
55 fi
56
57 ### device name des cdroms rausfinden
58
59 ## ermitteln des device ##
60 ## link nach /dev/cdrom/cdromX ##
61 cdrom="$(readlink /dev/cdrom)"
62 ## link nach dem hostcontroller ##
63 cdrom="$(readlink /dev/${cdrom} | sed -e 's/..\///')"
64 ### ide devices nach cdrom durchsuchen:
65 if [[ ! -z ${idedisks} ]]
66 then
67 for i in ${idedisks}
68 do
69 idehost="$(readlink ${i})"
70 [[ ${idehost} = ${cdrom} ]] && cdromdev="${cdromdev} ${i}"
71 done
72 fi
73
74 ### scsi devices nach cdrom durchsuchen:
75 if [[ ! -z ${scsidisks} ]]
76 then
77 for i in ${scsidisks}
78 do
79 scsihost="$(readlink ${x})"
80 [[ ${scsihost} = ${cdrom} ]] && cdromdev="${cdromdev} ${i}"
81 done
82 fi
83
84
85 ### boot device ermitteln und entfernen wenn usbstick oder eine disk ###
86 bootdev=$(grep '[[:space:]]/mnt/cdrom[[:space:]]' /proc/mounts | sed 's:^\(.*\)[0-9]\ /mnt/cdrom.*:\1:')
87 if [[ ! -z ${bootdev} ]]
88 then
89 idedisks=${idedisks//${bootdev}}
90 scsidisks=${scsidisks//${bootdev}}
91 fi
92
93 #echo "idedisks: $idedisks"
94 #echo "scsidisks: $scsidisks"
95 #echo "cdromdev: $cdromdev"
96
97 # mhm doesn't work with udev any longer,
98 # need to fix this ...
99 # 'unset cdromdev' should solve this issue temporally
100 unset cdromdev