From 315676028e6a21b0f13681e46e9ebb56a1fa0ba8 Mon Sep 17 00:00:00 2001 From: ramon Date: Wed, 28 May 2014 17:13:19 +0000 Subject: #541: Corrección en función {{{ogFindCache}}} para localizar caché en varios discos, tanto MSDOS como GPT. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://opengnsys.es/svn/branches/version1.0@4289 a21b9725-9963-47de-94b9-378ad31fedc9 --- client/engine/Cache.lib | 40 ++++++++++++++++------------------------ 1 file changed, 16 insertions(+), 24 deletions(-) (limited to 'client/engine/Cache.lib') diff --git a/client/engine/Cache.lib b/client/engine/Cache.lib index 234a54b2..4073cc02 100755 --- a/client/engine/Cache.lib +++ b/client/engine/Cache.lib @@ -166,42 +166,34 @@ rm -f /dev/disk/by-label/CACHE #@version 0.91 - Adaptacion a la cache local de OpenGnSys. #@author Ramon Gomez, ETSII Universidad de Sevilla #@date 2010/03/16 +#@version 1.0.5 - Obtener caché en discos GPT. +#@author Alberto García, Universidad de Málaga y Ramon Gomez, ETSII Universidad de Sevilla +#@date 2014/05/28 #*/ ## function ogFindCache () { # Variables locales -local PART +local DISK PART # Si se solicita, mostrar ayuda. if [ "$*" == "help" ]; then ogHelp "$FUNCNAME" "$FUNCNAME" "$FUNCNAME => 1 4" return fi -# Obtener el sistema de archivos etiquetado con "CACHE". -PART=$(realpath /dev/disk/by-label/CACHE 2>/dev/null) -# Si no, obtener la 1ª partición marcada como de tipo caché. +# Obtener el dispositivo del sistema de archivos etiquetado como "CACHE". +PART=$(blkid -L "CACHE") + +# Si no se detecta, obtener particiones marcadas de tipo caché en discos MSDOS. PART=${PART:-$(sfdisk -l 2>/dev/null | awk '$6~/ca|a7/ {print $1}')} -PART=${PART%% *} -# Si Tipo de de Disco es GPT #agp -TIPODISK=$(ogGetPartitionTableType 1) -if [ "$TIPODISK" == "GPT" ]; then - if [ ! -z $(blkid | grep 'CACHE' | cut -d ':' -f1 ) ]; then ## Si esta creada la etiqueta CACHE - PART=$(blkid | grep 'CACHE' | cut -d ':' -f1 ) - else - if [ -z $(sgdisk /dev/sda -p | grep CACHE | cut -d" " -f3) ];then ## Busco el tercer campo si tiene numero - PART=$(sgdisk /dev/sda -p | grep CACHE | cut -d" " -f4) ## Si tiene numero la particion < 10 - else - PART=$(sgdisk /dev/sda -p | grep CACHE | cut -d" " -f3-4) ## Si tiene numero la particion > 10 - fi - PART=$(ogDiskToDev 1 $PART) - fi -else - # Si no, obtener la 1ª partición marcada como de tipo caché. - PART=$(sfdisk -l 2>/dev/null | awk '$6~/ca|a7/ {print $1}') -fi -#agp +# Por último revisar todos los discos GPT y obtener las particiones etiquetadas como caché. +if [ -z "$PART" ]; then + for DISK in $(ogDiskToDev); do + PART="$PART $(sgdisk -p $DISK 2>/dev/null | awk -v d=$DISK '$7~/CACHE/ {printf "%s%s",d,$1;}')" + done +fi -ogDevToDisk $PART 2>/dev/null +# Devolver número de disco y número de partición de la 1ª partición encontrada. +ogDevToDisk ${PART%% *} 2>/dev/null } -- cgit v1.2.3-18-g5258