diff options
-rwxr-xr-x | client/engine/Cache.lib | 14 | ||||
-rwxr-xr-x | client/engine/Disk.lib | 2 |
2 files changed, 9 insertions, 7 deletions
diff --git a/client/engine/Cache.lib b/client/engine/Cache.lib index 64196620..a63baa12 100755 --- a/client/engine/Cache.lib +++ b/client/engine/Cache.lib @@ -31,7 +31,7 @@ function ogCreateCache () { # Variables locales. -local DISK PART START END ENDPREVPART SIZE MINSIZE MAXSIZE ID +local FINDCACHE NDSK PART DISK START END ENDPREVPART SIZE MINSIZE MAXSIZE ID # Si se solicita, mostrar ayuda. if [ "$*" == "help" ]; then ogHelp "$FUNCNAME" "$FUNCNAME int_partsize" "$FUNCNAME 10000000" @@ -40,13 +40,15 @@ fi # Error si no se recibe 1 parámetro. [ $# == 1 ] || ogRaiseError $OG_ERR_FORMAT || return $? -DISK=$(ogDiskToDev 1) || return $? -PART="4" -END=$(ogGetLastSector $1) # Sector final del disco. +FINDCACHE="1 4" # Partición de caché (ndisco npart). +NDSK=${FINDCACHE#* } +PART=${FINDCACHE% *} +DISK=$(ogDiskToDev $NDSK) || return $? +END=$(ogGetLastSector $NDSK) # Sector final del disco. SIZE=$(echo $1|awk '{print $0*2}') # En sectores de 512 B. START=$[END-SIZE+1] ENDPREVPART=$(ogGetLastSector $[PART-1]) -# Error si tamaño no está entre límites permitidos o si se solapa con la partición 3. +# Error si tamaño no está entre límites permitidos o si se solapa con la partición anterior. MINSIZE=100000 # Error de formateo si tamaño < 50 MB. MAXSIZE=$[END/2] # No permitir tamaño > mitad del disco. if [ $SIZE -lt $MINSIZE -o $SIZE -gt $MAXSIZE -o $START -le $ENDPREVPART ]; then @@ -58,7 +60,7 @@ ogUnmountAll 1 2>/dev/null # Definir particiones y notificar al kernel. # En el caso de ser disco GPT, de momento se borra la particion y se vuelve a crear por # lo que se pierden los datos. -case "$(ogGetPartitionTableType $1)" in +case "$(ogGetPartitionTableType $NDSK)" in GPT) # Si la tabla de particiones no es valida, volver a generarla. [ ! $(sgdisk -p $DISK 2>&1 >/dev/null) ] || echo -e "2\nw\nY\n" | gdisk $DISK diff --git a/client/engine/Disk.lib b/client/engine/Disk.lib index c89e3b3d..66dc0a73 100755 --- a/client/engine/Disk.lib +++ b/client/engine/Disk.lib @@ -678,7 +678,7 @@ case "$PTTYPE" in CYLS=$(sfdisk -g $DISK | cut -f2 -d" ") LASTSECTOR=$[SECTORS/CYLS*CYLS-1] else - LASTSECTOR=$(sfdisk -uS -l $DISK | \ + LASTSECTOR=$(sfdisk -uS -l $DISK 2>/dev/null | \ awk -v P="$PART" '{if ($1==P) {if ($2=="*") print $4; else print $3} }') fi ;; |