Magellan Linux

Contents of /trunk/installer/read_disk.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 719 - (show annotations) (download) (as text)
Fri Apr 18 20:40:28 2008 UTC (16 years ago) by niro
File MIME type: application/x-sh
File size: 2437 byte(s)
-first import

1 #!/bin/bash
2 # $Header: /home/cvsd/magellan-cvs/magellan-src/installer/read_disk.sh,v 1.1 2008-04-18 20:40:28 niro Exp $
3
4 source hwdetection.sh
5
6 # use C locale
7 export LC_ALL=C
8
9 nocdrom()
10 {
11 local i
12 local item="$1"
13
14 for i in ${ALL_CDROMS}
15 do
16 [[ ${i} = ${item} ]] && return 1
17 done
18
19 return 0
20 }
21
22 # converts partition id to filesystem name
23 partition_id_2_fs_name()
24 {
25 local x="$1"
26 local id
27 local desc
28
29 while read id desc
30 do
31 if [[ ${x} = ${id} ]]
32 then
33 echo "${desc}"
34 return 0
35 fi
36 done << EOF
37 $(/sbin/sfdisk -T)
38 EOF
39
40 # if we get here the id is unkown
41 echo "unkown"
42 }
43
44 query_partition_disk_setup()
45 {
46 local i
47 local partition
48 local filesystem
49 local mountpoint
50 local command="$1"
51 local given_partition="$2"
52
53 #
54 #--overwrite
55
56 for i in ${PARTITION_DISK_SETUP}
57 do
58 partition=$(echo ${i} | cut -d: -f1)
59 filesystem=$(echo ${i} | cut -d: -f2)
60 mountpoint=$(echo ${i} | cut -d: -f3)
61
62 if [[ ${partition} = ${given_partition} ]]
63 then
64 case ${command} in
65 --filesystem) echo "${filesystem}"; return 0;;
66 --mountpoint) echo "${mountpoint}"; return 0;;
67 --delete) export PARTITION_DISK_SETUP="${PARTITION_DISK_SETUP/${i}/}"; return 0;;
68 esac
69 fi
70 done
71 }
72
73 ALL_DISKS="$(get_hwinfo disk)"
74 ALL_CDROMS="$(get_hwinfo cdrom)"
75
76 for disk in ${ALL_DISKS}
77 do
78 # exclude cdroms
79 nocdrom ${disk} || continue
80
81 OLDIFS="$IFS"
82 IFS=,
83
84 echo "${disk}|${disk}"
85 while read partition size id boot
86 do
87 # partition name
88 partition="$(echo ${partition} | cut -d: -f1 | sed -e s:$'\t'::g -e s:\ ::g)"
89 # size
90 size="$(echo ${size} | sed -e s:size=::g -e s:\ ::g)"
91 # id but converted
92 id="$(echo ${id} | sed -e s:Id=::g -e s:\ ::g)"
93 idname="$(IFS=${OLDIFS} partition_id_2_fs_name ${id})"
94 # bootable flag
95 boot="$(echo ${boot} | sed -e s:\ ::g -e s:bootable:b:g)"
96
97 # # swap
98 # if [[ ${id} = 82 ]]
99 # then
100 # mountpoint="swap"
101 # format="swap"
102 # export PARTITION_DISK_SETUP="${PARTITION_DISK_SETUP} ${disk}:swap:swap"
103 # else
104 # mountpoint, but detect any swap
105 mountpoint="$(IFS=${OLDIFS} query_partition_disk_setup --mountpoint ${partition})"
106 # filesystem to format
107 format="$(IFS=${OLDIFS} query_partition_disk_setup --filesystem ${partition})"
108 # fi
109
110 echo -n "|${partition}"
111 echo -n "|${size}"
112 echo -n "|${idname}"
113 echo -n "|${boot}"
114 echo -n "|${mountpoint}"
115 echo -n "|${format}"
116 echo
117
118 done << EOF
119 $(${sudo} /sbin/sfdisk --dump ${disk} | sed '1,3d')
120 EOF
121 IFS="${OLDIFS}"
122 done

Properties

Name Value
svn:executable *