Magellan Linux

Contents of /alx-src/trunk/alxinstall-ng/functions/findhdd.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1576 - (show annotations) (download) (as text)
Mon Oct 18 13:20:33 2010 UTC (13 years, 6 months ago) by niro
File MIME type: application/x-sh
File size: 2191 byte(s)
-remove bootdevices from install list
1 #!/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