1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
#!/bin/bash
#_______________________________________________________________________________________________________________________________
#
# Formato de entrada:
# $1 disco
# $2 par=Número de particion#cod=Código de partición#sfi=Sistema de ficheros#tam=Tamaño de la partición#ope=Operación$
#_______________________________________________________________________________________________________________________________
particiones=$(echo $2 | awk '{n=split($0,sep,"$");print n}')
#___________________________________________________________________
#
# Activa navegador para ver progreso
#___________________________________________________________________
coproc /opt/opengnsys/bin/browser -qws http://localhost/cgi-bin/httpd-log.sh
#___________________________________________________________________
declare -a TBP
declare -a TBF
for ((par=1;par<$particiones;par++));
do
TBP[$par]=$(echo $2 | awk -v p=$par '{
n=split($0,sep,"$");
split(sep[p],dua,"#");
split(dua[1],prm,"=");
par=prm[2];
split(dua[2],prm,"=");
cpt=prm[2];
split(dua[3],prm,"=");
sfi=prm[2];
split(dua[4],prm,"=");
tam=prm[2];
split(dua[5],prm,"=");
ope=prm[2];
printf("%s %x %s %s %s",par,cpt,sfi,tam,ope);
}')
done
# Prepara cadena de particiones _______________________________________
cP=""
for ((par=1;par<$particiones;par++));
do
cfg=${TBP[$par]}
cP=$cP$(echo $cfg | awk '{
n=split($0,prm," ");
par=prm[1];
cpt=prm[2];
sfi=prm[3];
tam=prm[4];
ope=prm[5];
if(ope==1)
printf("%s:%s ",sfi,tam);
else{
if(ope==2)
printf("H%s:%s ",sfi,tam);
else
printf("%s:%s ",sfi,tam);
}
}')
TBF[$par]=$(echo $cfg | awk '{
n=split($0,prm," ");
sfi=prm[3];
ope=prm[5];
if(ope==1)
printf("%s",sfi);
else
printf("EMPTY");
}')
done
# Crea tabla de particiones MSDOS
ogCreatePartitionTable 1 MSDOS
# Desmonta todas las particiones y la caché
ogUnmountCache
ogUnmountAll 1
echo "Creando la tabla de particiones $1 $cP" | tee -a $OGLOGSESSION $OGLOGFILE
ogCreatePartitions $1 $cP
#ogDeletePartitionTable 1
#ogSetPartitionActive 1 1
#ogUpdatePartitionTable 1
#ms-sys /dev/sda | grep unknow && ms-sys /dev/sda
# Formatear _______________________________________
for ((par=1;par<$particiones;par++));
do
sfi=${TBF[$par]}
if [ $sfi == "EMPTY" ]; then
TBF[$par]=" "
else
echo "Formateando particion: $par con sistema de fichero: $sfi" | tee -a $OGLOGSESSION $OGLOGFILE
ogFormatFs $1 $par $sfi
fi
done
#___________________________________________________________________
#
# Retorno
#___________________________________________________________________
kill $COPROC_PID
exit 0
|