Redimensionando /boot y /var

Haciendo un backup de la partición

Puesto que voy a jugar con la tabla de particiones, lo mejor es hacer un backup de los datos. Tanto en /var como en /boot hay datos fundamentales para el normal funcionamiento del sistema, así que nos debemos asegurar de que no perdemos nada.

El método que he utilizado, siguiendo la recomendación del XML+Linux-HOWTO, es:

	[root@supra/]$ telinit 1
	[root@supra/]$ mkdir /otro-boot
	[root@supra/]$ cd /boot
	[root@supra/]$ tar lcf - .|(cd /otro-boot; tar xpvf -)
      

y algo similar para /var, con la diferencia de que éste lo vuelco en /pruebas.

Seguidamente, varío [1] /etc/fstab de forma que ya no monte /boot, y que monte en /var /dev/hda2 (que es lo que está montado en /pruebas). Desmonto /boot, elimino el directorio, y renombre /otro-boot como /boot. Por si acaso, ejecuto lilo, y reinicio de nuevo en modo monousuario.

Usando GNU/parted

Ahora empiezo a usar parted, que me permite redimensionar las particiones. En principio, no deberían de perderse datos, pero por si acaso tenemos el backup.

Ejecuto parted, y tras la información sobre la GPL, obtengo un prompt [2] , y con el comando print obtengo la situación actual de la tabla de particiones:

	(parted) print
	Disk geometry for /dev/hda: 0.000-19077,187 megabytes
	Disk label type: msdos
	Minor    Start       End     Type      Filesystem  Flags
	1          0,031   5004,624  primary   FAT         boot
	2       5004,624   7867,771  primary   xfs         
	3       7867,771   8056,032  primary   ext2        
	4       8056,033  19077,187  extended              
	5       8056,063   8534,531  logical   linux-swap  
	6       8534,562   8753,285  logical   ext2         
	7       8753,315   9005      logical   ext2        
	8       9005,216  12817,485  logical   ext2         
	9      12817,516  19077,187  logical   ext2        
	(parted)
      

El primer objetivo es reducir unos 150 Mb hda6 (/boot), y pasárselo a hda7 (/var). [3]

Lo primero que debemos hacer es reducir hda6. La sintaxis es:

	resize n_particion Mb_inicial Mb_final
      

donde n_particion es el número de la partición (el número en la columna "Minor" en la salida del print), Mb_inicial es el principio de la partición (expresado en Mb, aunque sea un poco chocante; nos valen como guía los valores en la columna "Start"), y Mb_final es el final de la partición (en Mb, la columna "End").

Con estos datos, el comando que ejecuto es:

	(parted) resize 6 8534 8600
      

Ahora debemos seguir con la redimensión de hda7; existe un problema: parted no es capaz de mover el punto de inicio de una partición ext2, así que tendremos que hacer un poco de trampa: la eliminamos, y luego creamos una que ocupe todo el espacio vacío: [4]

	(parted) rm 7
	(parted) mkpartfs logical ext2 8600 9005
      

Hay que andar con mucho cuidado con lo que acabo de hacer!!!. He eliminado la partición 7, con lo que las particiones 8 y 9 pasan a ser la 7 y la 8, y la nueva que creemos será la 9. Si no reflejamos estos cambios en /etc/fstab antes de reiniciar, tendremos que montar a mano las particiones... Yo no me dí cuenta y tuve que hacerlo...

Ahora nos queda revisar que los cambios hayan funcionado. Bien con fdisk, bien con parted, o bien montandolos en /mnt, revisamos que las particiones estén integras y con sus nuevos tamaños.

Notas

[1]

Antes de tocar /etc/fstab, es importante verificar que efectivamente los archivos están donde los hemos querido poner.

[2]

El listado es aproximado, puesto que lo he sacado despues de hacer los cambios...

[3]

**Creo** que sólo lo puedo hacer porque son particiones contiguas, aunque si no lo fueran podría hacer algunas cosas... pero sería bastante más largo.

[4]

Es posible que entre el rm y el mkpartfs tengamos que reiniciar el equipo, en el caso de que parted se queje de que la partición está en uso. Al menos en mi caso, ha sido la única forma de hacerlo.