summaryrefslogtreecommitdiffstats
path: root/admin/Interface
diff options
context:
space:
mode:
authorramon <ramongomez@us.es>2013-01-30 11:55:56 +0000
committerramon <ramongomez@us.es>2013-01-30 11:55:56 +0000
commitd8d86ff99d2ec2c2e19e66b0e3d599f6b22db9a0 (patch)
treed6348d14f8710a9f16ca02045f2ce0032845eea7 /admin/Interface
parentd843835d77f48ec87e367951e343ebdfcc662ba9 (diff)
Versión 1.0.5, #526 #568: Obtener configuración de todos los discos, incluyendo el tipo de tabla de particiones y guardarla en fichero de configuración local.
git-svn-id: https://opengnsys.es/svn/branches/version1.0@3507 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'admin/Interface')
-rwxr-xr-xadmin/Interface/getConfiguration52
1 files changed, 34 insertions, 18 deletions
diff --git a/admin/Interface/getConfiguration b/admin/Interface/getConfiguration
index 53ec9fa6..79444100 100755
--- a/admin/Interface/getConfiguration
+++ b/admin/Interface/getConfiguration
@@ -3,37 +3,53 @@
#_______________________________________________________________________________________________________________________________
#
# Formato de salida:
-# par=Número de particion\tcod=Código de partición\tsfi=Sistema de ficheros\tsoi=Sistema instalado\ttam=Tamaño de la partición\n
+# disk=Número de disco\tpar=Número de particion\tcod=Código de partición\tsfi=Sistema de ficheros\tsoi=Sistema instalado\ttam=Tamaño de la partición\n
#_______________________________________________________________________________________________________________________________
-particiones=$(ogGetPartitionsNumber 1) # Incluir todas las particiones
-cfg="0::::$(ogGetDiskSize 1);" # e información de disco (partición 0)
-for ((par=1;par<=$particiones;par++)); do
+cfg=""
+disks=$(ogDiskToDev | wc -w)
+for ((dsk=1; dsk<=$disks; dsk++)); do
+ particiones=$(ogGetPartitionsNumber $dsk)
+ # Tipo de tabla de particiones: 1=MSDOS, 2=GPT
+ ptt=$(ogGetPartitionTableType $dsk)
+ case "$ptt" in
+ MSDOS) ptt=1 ;;
+ GPT) ptt=2 ;;
+ *) ptt=0 ;;
+ esac
+ # Información de disco (partición 0)
+ cfg="$cfg$dsk:0:$ptt:::$(ogGetDiskSize $dsk);"
+ for ((par=1;par<=$particiones;par++)); do
# Código del identificador de tipo de partición
- cod=$(ogGetPartitionId 1 $par 2>/dev/null)
+ cod=$(ogGetPartitionId $dsk $par 2>/dev/null)
# Tipo de partición o sistema de fichero
- fsi=$(getFsType 1 $par 2>/dev/null)
+ fsi=$(getFsType $dsk $par 2>/dev/null)
fsi=${fsi:-"EMPTY"}
# Tamaño de la particón
- tam=$(ogGetPartitionSize 1 $par 2>/dev/null)
+ tam=$(ogGetPartitionSize $dsk $par 2>/dev/null)
tam=${tam:-"0"}
# Sistema de fichero instalado
case "$cod" in
""|82|8200|A502|BF02|EE|EF0[012])
- soi=" " ;;
- *) soi=$(getOsVersion 1 $par 2>/dev/null | cut -f2 -d:) ;;
+ soi="" ;;
+ *) soi=$(getOsVersion $dsk $par 2>/dev/null | cut -f2 -d:) ;;
esac
- cfg="$cfg$par:$cod:$fsi:$soi:$tam;"
+ cfg="$cfg$dsk:$par:$cod:$fsi:$soi:$tam;"
+ done
done
-echo $cfg | awk '{
- n=split($0,sep,";");
- for (i=1; i<n; i++){
- split (sep[i],dua,":");
- printf ("disk=1\tpar=%s\tcpt=%s\tfsi=%s\tsoi=%s\ttam=%s\n",
- dua[1],dua[2],dua[3],dua[4],dua[5]);
- }
- }'
+# Guardar salida en fichero temporal.
+cfgfile=/tmp/getconfig
+echo $cfg > $cfgfile
+
+# Componer salida formateada.
+awk '{ n=split($0,sep,";");
+ for (i=1; i<n; i++){
+ split (sep[i],dua,":");
+ printf ("disk=%s\tpar=%s\tcpt=%s\tfsi=%s\tsoi=%s\ttam=%s\n",
+ dua[1],dua[2],dua[3],dua[4],dua[5],dua[6]);
+ }
+ }' $cfgfile