63 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
| #!/bin/bash
 | |
| #/**
 | |
| #      smartPartition.template
 | |
| #@brief  particiona los clientes del laboratorio virtual.
 | |
| #@param 1
 | |
| #@ejemplo:
 | |
| #@return: Scripts de ejemplo para establecer particionado según tamaño.
 | |
| #@exception OG_ERR_ NOTFOUND      Disco duro no encontrador.
 | |
| #@note
 | |
| #@todo:
 | |
| #@version 0.1 primera version
 | |
| #@author  adv
 | |
| #@date    2018/07/08
 | |
| 
 | |
| #Calculamos el numero de discos
 | |
| NDISK=$(ogDiskToDev | wc -w)
 | |
| 
 | |
| #Si no hay discos, error
 | |
| [ -z $NDISK ] && exit $(ogRaiseError $OG_ERR_NOTFOUND "ogDiskToDev | wc -w")
 | |
| 
 | |
| #asignamos contador al primer disco de OpenGnsys
 | |
| COUNTER=1
 | |
| until [ $COUNTER -gt $NDISK ]; do
 | |
|         ogUnmountAll $COUNTER
 | |
|         ogDeletePartitionTable $COUNTER
 | |
|     ogCreatePartitionTable $COUNTER MSDOS
 | |
|     ogUpdatePartitionTable $COUNTER
 | |
|         let COUNTER=COUNTER+1
 | |
| done
 | |
| 
 | |
| #Establecemos las Particiones CACHE con tamaños diferentes según la capacidad del disco.
 | |
| #Si el PC tiene dos discos duros, el segundo será completo para la CACHE.
 | |
| #establecemos rangos de las capacidades con expresiones regulares:  https://goo.gl/gJnK7g
 | |
| case $NDISK in
 | |
|         1)
 | |
|                 #Calcular el tamaño máximo del disco duro redondeando a la baja en 500 MB para evitar problemas de calculo"
 | |
|                 SIZE_DISK1=$(expr $(ogGetDiskSize 1) - 500000)
 | |
|                 #entre 70 y 73'9GB
 | |
|                 ogCheckStringInReg $SIZE_DISK1 "^7[0-3][0-9]{6}$" &&  initCache 1 4 32000000 NOMOUNT
 | |
|                 #entre 50 y 52'9
 | |
|                 ogCheckStringInReg $SIZE_DISK1 "^5[0-2][0-9]{6}$" &&  initCache 1 4 12000000 NOMOUNT
 | |
|         ;;
 | |
|         2)
 | |
|                 #Calcular el tamaño máximo del disco duro redondeando a la baja en 500 MB para evitar problemas de calculo"
 | |
|                 SIZE_DISK2=$(expr $(ogGetDiskSize 1) - 500000)
 | |
|                 initCache 2 4 $SIZE_DISK2 NOMOUNT
 | |
|         ;;
 | |
| esac
 | |
| 
 | |
| #El particionado para los sistemas operativos identicos para todos.
 | |
| #Requiere tener una tabla de particiones previa.
 | |
| ogCreatePartitions 1  NTFS:19000000 LINUX:19000000 EMPTY:0;
 | |
| 
 | |
| #asignamos contador al primer disco de OpenGnsys
 | |
| COUNTER=1
 | |
| until [ $COUNTER -gt $NDISK ]; do
 | |
|         ogBootMbrGeneric $COUNTER
 | |
|         ogSetPartitionActive 1 $COUNTER
 | |
|         ogListPartitions $COUNTER
 | |
|         ogGetPartitionActive $COUNTER
 | |
|         let COUNTER=COUNTER+1
 | |
| done
 |