89 lines
2.8 KiB
Bash
89 lines
2.8 KiB
Bash
#!/bin/bash
|
|
|
|
#_______________________________________________________________________________________________________________________________
|
|
#
|
|
# Formato de salida:
|
|
# 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
|
|
#_______________________________________________________________________________________________________________________________
|
|
|
|
|
|
# No registrar los errores.
|
|
export DEBUG="no"
|
|
|
|
ser=$(ogGetSerialNumber)
|
|
cfg=""
|
|
disks=$(ogDiskToDev | wc -w)
|
|
for ((dsk=1; dsk<=$disks; dsk++)); do
|
|
particiones=$(ogGetPartitionsNumber $dsk)
|
|
particiones=${particiones:-0}
|
|
# Tipo de tabla de particiones: 1=MSDOS, 2=GPT
|
|
ptt=$(ogGetPartitionTableType $dsk)
|
|
case "$ptt" in
|
|
MSDOS) ptt=1 ;;
|
|
GPT) ptt=2 ;;
|
|
LVM) ptt=3 ;;
|
|
ZPOOL) ptt=4 ;;
|
|
*) ptt=0 ;;
|
|
esac
|
|
# Información de disco (partición 0)
|
|
cfg="$cfg$dsk:0:$ptt:::$(ogGetDiskSize $dsk):0;"
|
|
for ((par=1;par<=$particiones;par++)); do
|
|
# Código del identificador de tipo de partición
|
|
cod=$(ogGetPartitionId $dsk $par 2>/dev/null)
|
|
# Tipo del sistema de ficheros
|
|
fsi=$(getFsType $dsk $par 2>/dev/null)
|
|
fsi=${fsi:-"EMPTY"}
|
|
# Tamaño de la particón
|
|
tam=$(ogGetPartitionSize $dsk $par 2>/dev/null)
|
|
tam=${tam:-"0"}
|
|
# Sistema operativo instalado
|
|
case "$fsi" in
|
|
""|EMPTY|LINUX-SWAP|LINUX-LVM|ZVOL)
|
|
soi=""; uso=0 ;;
|
|
*) if [ -n "$(ogMount $dsk $par 2>/dev/null)" ]; then
|
|
soi=$(getOsVersion $dsk $par 2>/dev/null | cut -f2 -d:)
|
|
# Hacer un 2º intento para algunos casos especiales.
|
|
[ -z "$soi" ] && soi=$(getOsVersion $dsk $par 2>/dev/null | cut -f2 -d:)
|
|
# Sistema de archivos para datos (sistema operativo "DATA")
|
|
[ -z "$soi" -a "$fsi" != "EMPTY" -a "$fsi" != "CACHE" ] && soi="DATA"
|
|
# Obtener porcentaje de uso.
|
|
uso=$(df $(ogGetMountPoint $dsk $par) | awk '{getline; printf "%d",$5}')
|
|
uso=${uso:0}
|
|
else
|
|
soi=""; uso=0
|
|
fi
|
|
;;
|
|
esac
|
|
cfg="$cfg$dsk:$par:$cod:$fsi:$soi:$tam:$uso;"
|
|
done
|
|
done
|
|
|
|
# Crear configuración por defecto para cliente sin disco.
|
|
[ -z "$cfg" ] && cfg="1:0:0:::0;"
|
|
|
|
# Guardar salida en fichero temporal.
|
|
cfgfile=/tmp/getconfig
|
|
echo "${ser:+$ser;}$cfg" > $cfgfile
|
|
|
|
# Crear el menú por defecto a partir del fichero generado (no dar ninguna salida).
|
|
generateMenuDefault &>/dev/null
|
|
|
|
# Componer salida formateada.
|
|
awk '{ n=split($0,sep,";");
|
|
for (i=1; i<n; i++){
|
|
c=split (sep[i],dua,":");
|
|
if (i==1 && c==1)
|
|
printf ("ser=%s\n", dua[1]);
|
|
else
|
|
printf ("disk=%s\tpar=%s\tcpt=%s\tfsi=%s\tsoi=%s\ttam=%s\tuso=%s\n",
|
|
dua[1],dua[2],dua[3],dua[4],dua[5],dua[6],dua[7]);
|
|
}
|
|
}' $cfgfile
|
|
|
|
# Borramos marcas de arranque de Windows
|
|
rm -f /mnt/*/ogboot.* /mnt/*/*/ogboot.*
|
|
|
|
# Volver a registrar los errores.
|
|
unset DEBUG
|
|
|