Magellan Linux

Annotation of /trunk/installer/read_disk.sh

Parent Directory Parent Directory | Revision Log Revision Log


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

1 niro 719 #!/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 *