Magellan Linux

Annotation of /trunk/installer-simple/functions/findhdd.sh

Parent Directory Parent Directory | Revision Log 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)
-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