[c255425] | 1 | #!/bin/bash |
---|
| 2 | #/** |
---|
| 3 | # smartPartition.template |
---|
| 4 | #@brief particiona los clientes del laboratorio virtual. |
---|
| 5 | #@param 1 |
---|
| 6 | #@ejemplo: |
---|
| 7 | #@return: Scripts de ejemplo para establecer particionado según tamaño. |
---|
| 8 | #@exception OG_ERR_ NOTFOUND Disco duro no encontrador. |
---|
| 9 | #@note |
---|
| 10 | #@todo: |
---|
| 11 | #@version 0.1 primera version |
---|
| 12 | #@author adv |
---|
| 13 | #@date 2018/07/08 |
---|
| 14 | |
---|
| 15 | #Calculamos el numero de discos |
---|
| 16 | NDISK=$(ogDiskToDev | wc -w) |
---|
| 17 | |
---|
| 18 | #Si no hay discos, error |
---|
| 19 | [ -z $NDISK ] && exit $(ogRaiseError $OG_ERR_NOTFOUND "ogDiskToDev | wc -w") |
---|
| 20 | |
---|
| 21 | #asignamos contador al primer disco de OpenGnsys |
---|
| 22 | COUNTER=1 |
---|
| 23 | until [ $COUNTER -gt $NDISK ]; do |
---|
| 24 | ogUnmountAll $COUNTER |
---|
| 25 | ogDeletePartitionTable $COUNTER |
---|
| 26 | ogCreatePartitionTable $COUNTER MSDOS |
---|
| 27 | ogUpdatePartitionTable $COUNTER |
---|
| 28 | let COUNTER=COUNTER+1 |
---|
| 29 | done |
---|
| 30 | |
---|
| 31 | #Establecemos las Particiones CACHE con tamaños diferentes según la capacidad del disco. |
---|
| 32 | #Si el PC tiene dos discos duros, el segundo será completo para la CACHE. |
---|
| 33 | #establecemos rangos de las capacidades con expresiones regulares: https://goo.gl/gJnK7g |
---|
| 34 | case $NDISK in |
---|
| 35 | 1) |
---|
| 36 | #Calcular el tamaño máximo del disco duro redondeando a la baja en 500 MB para evitar problemas de calculo" |
---|
| 37 | SIZE_DISK1=$(expr $(ogGetDiskSize 1) - 500000) |
---|
| 38 | #entre 70 y 73'9GB |
---|
| 39 | ogCheckStringInReg $SIZE_DISK1 "^7[0-3][0-9]{6}$" && initCache 1 4 32000000 NOMOUNT |
---|
| 40 | #entre 50 y 52'9 |
---|
| 41 | ogCheckStringInReg $SIZE_DISK1 "^5[0-2][0-9]{6}$" && initCache 1 4 12000000 NOMOUNT |
---|
| 42 | ;; |
---|
| 43 | 2) |
---|
| 44 | #Calcular el tamaño máximo del disco duro redondeando a la baja en 500 MB para evitar problemas de calculo" |
---|
| 45 | SIZE_DISK2=$(expr $(ogGetDiskSize 1) - 500000) |
---|
| 46 | initCache 2 4 $SIZE_DISK2 NOMOUNT |
---|
| 47 | ;; |
---|
| 48 | esac |
---|
| 49 | |
---|
| 50 | #El particionado para los sistemas operativos identicos para todos. |
---|
| 51 | #Requiere tener una tabla de particiones previa. |
---|
| 52 | ogCreatePartitions 1 NTFS:19000000 LINUX:19000000 EMPTY:0; |
---|
| 53 | |
---|
| 54 | #asignamos contador al primer disco de OpenGnsys |
---|
| 55 | COUNTER=1 |
---|
| 56 | until [ $COUNTER -gt $NDISK ]; do |
---|
| 57 | ogBootMbrGeneric $COUNTER |
---|
| 58 | ogSetPartitionActive 1 $COUNTER |
---|
| 59 | ogListPartitions $COUNTER |
---|
| 60 | ogGetPartitionActive $COUNTER |
---|
| 61 | let COUNTER=COUNTER+1 |
---|
| 62 | done |
---|