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.
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.
| [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. |