Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1275 - (hide annotations) (download) (as text)
Fri Feb 4 22:20:50 2011 UTC (13 years, 3 months ago) by niro
File MIME type: application/x-sh
File size: 2084 byte(s)
- initial release
1 niro 1275 #!/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