Annotation of /trunk/installer-simple/functions/findhdd.sh
Parent Directory | Revision Log
Revision 2320 -
(hide annotations)
(download)
(as text)
Fri Jan 3 13:12:33 2014 UTC (10 years, 4 months ago) by niro
File MIME type: application/x-sh
File size: 2191 byte(s)
Fri Jan 3 13:12:33 2014 UTC (10 years, 4 months ago) by niro
File MIME type: application/x-sh
File size: 2191 byte(s)
-import alxinstall-ng-0.3.16
1 | niro | 2320 | #!/bin/bash |
2 | # | ||
3 | # $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 | ||
15 | while read major minor blocks name blurp | ||
16 | do | ||
17 | case "${name}" in | ||
18 | hd?) idedisks="$idedisks /dev/${name}" ;; | ||
19 | sd?) scsidisks="$scsidisks /dev/${name}" ;; | ||
20 | ide*) ide="$ide $name" ;; | ||
21 | sc*) scsi="$scsi $name" ;; | ||
22 | esac | ||
23 | done << EOF | ||
24 | $(cat /proc/partitions) | ||
25 | EOF | ||
26 | |||
27 | |||
28 | ### ergebnis $ide ist ide/host0/bus0 ... | ||
29 | ### ermitteln des device link namens: | ||
30 | if [[ ! -z ${ide} ]] | ||
31 | then | ||
32 | for i in ${ide} | ||
33 | do | ||
34 | devs=$(ls /dev/hd?) | ||
35 | for x in ${devs} | ||
36 | do | ||
37 | devname="$(readlink $x)" | ||
38 | [[ ${i} = ${devname} ]] && idedisks="${idedisks} ${x}" | ||
39 | done | ||
40 | done | ||
41 | fi | ||
42 | |||
43 | |||
44 | ### ergebnis $scsi ist scsi/host0/bus0 ... | ||
45 | ### ermitteln des device link namens: | ||
46 | if [[ ! -z ${scsi} ]] | ||
47 | then | ||
48 | for i in ${scsi} | ||
49 | do | ||
50 | devs=$(ls /dev/sd?) | ||
51 | for x in ${devs} | ||
52 | do | ||
53 | devname="$(readlink ${x})" | ||
54 | [[ ${i} = ${devname} ]] && scsidisks="${scsidisks} ${x}" | ||
55 | done | ||
56 | done | ||
57 | fi | ||
58 | |||
59 | ### device name des cdroms rausfinden | ||
60 | |||
61 | ## ermitteln des device ## | ||
62 | ## link nach /dev/cdrom/cdromX ## | ||
63 | cdrom="$(readlink /dev/cdrom)" | ||
64 | ## link nach dem hostcontroller ## | ||
65 | cdrom="$(readlink /dev/${cdrom} | sed -e 's/..\///')" | ||
66 | ### ide devices nach cdrom durchsuchen: | ||
67 | if [[ ! -z ${idedisks} ]] | ||
68 | then | ||
69 | for i in ${idedisks} | ||
70 | do | ||
71 | idehost="$(readlink ${i})" | ||
72 | [[ ${idehost} = ${cdrom} ]] && cdromdev="${cdromdev} ${i}" | ||
73 | done | ||
74 | fi | ||
75 | |||
76 | ### scsi devices nach cdrom durchsuchen: | ||
77 | if [[ ! -z ${scsidisks} ]] | ||
78 | then | ||
79 | for i in ${scsidisks} | ||
80 | do | ||
81 | scsihost="$(readlink ${x})" | ||
82 | [[ ${scsihost} = ${cdrom} ]] && cdromdev="${cdromdev} ${i}" | ||
83 | done | ||
84 | 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" | ||
96 | #echo "scsidisks: $scsidisks" | ||
97 | #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 |