Mover la partición Root a otro disco

En el tutorial de hoy, voy a explicaros cómo se puede mover la partición Root de nuestra distribución Linux a otra partición (sea en el mismo disco duro o no). Esta necesidad se me presentó a mediados del año pasado, cuando todavía usaba Chakra, y desde entonces es un proceso que he usado en mÔs de una ocasión con resultados satisfactorios y cero problemas.

Si se siguen los pasos al pie de la letra es una operación 100% segura, relativamente rÔpida y totalmente reversible. Solo necesitaremos un Live CD de alguna distro que tengamos por ahí (uno de Ubuntu, por ejemplo, servirÔ para nuestro cometido), e identificar correctamente cuÔl es la partición de origen y la de destino.

Para obtener tal información, podemos recurrir a GParted o al Editor de Particiones de KDE. Al ejecutarlos, veremos una ventana similar a la de la captura de abajo. AhĆ­, debemos buscar nuestra partición root original y mirar a quĆ© disco pertenece (sda, sdb, sdc…), quĆ© nĆŗmero tiene (sda2, sdb1, sdj5, etc.) y cuĆ”l es su UUID (un código alfanumĆ©rico que encontrarĆ©is en el apartado de Ā«información avanzadaĀ»). Obviamente, si vamos a mover una partición necesitaremos un lugar de destino, asĆ­ que tenemos que crear previamente un hueco en el disco duro para realizar la mudanza, y anotar los datos correspondientes.

Antes de seguir, quiero dejar constancia de que en este tutorial solo hago referencia a Grub2; si usÔis otro gestor de arranque algunos pasos o comandos pueden variar -de hecho, es mucho mÔs sencillo con Grub Legacy-. Así pues, con la información de antes apuntada en un papel, nos ponemos manos a la obra:

1) Iniciamos el ordenador con el Live CD y esperamos a que se cargue el escritorio.

2) En una terminal metemos los dos siguientes comandos:

sudo mkdir /mnt/old

sudo mkdir /mnt/new

3) Acto seguido, tecleamos los siguientes comandos:

sudo mount /dev/sdaX /mnt/old (donde sdaX es la partición root original).

sudo mount /dev/sdbX /mnt/new (donde sdbX es la partición root nueva).

4) Después de haber montado cada partición, procedemos al copiado de los archivos mediante dos comandos (uno para archivos normales y otro para datos ocultos). QuizÔ el segundo no es estrictamente necesario, pero yo lo ejecuto por si las moscas. Esta parte llevarÔ unos cuantos minutos:

sudo cp -rav /mnt/old/* /mnt/new
sudo cp -rav /mnt/old/.* /mnt/new

5) Desmontamos la partición vieja y tecleamos un par de comandos mÔs:

sudo umount /mnt/old
sudo mount -o bind /dev /mnt/new/dev
sudo mount -t proc none /mnt/new/proc

6) Ahora hacemos chroot en la nueva partición con el objeto de reinstalar Grub2. El comando de instalación cambia en función del LiveCD que tengÔis, puesto que cada distro tiene sus propias maneras de gestionar los paquetes. En Chakra y Arch se emplea sudo pacman -S grub, pero en las derivadas de Debian se hace así:

sudo chroot /mnt/new /bin/bash

sudo grub-install /dev/sdb (donde sdb es el disco duro en el que tenemos la nueva partición root, y no hay que ponerle número ni nada de eso).
7) Ahora, antes de reiniciar, tenemos que ajustar unos pequeƱos detalles del fstab y del grub.cfg. Para ello, editamos el grub.cfg con nuestro editor de texto preferido (kate, gedit, nano…):
sudo kate /boot/grub/grub.cfg

Como podéis ver en la imagen, he resaltado las partes mÔs importantes en las que tenemos que fijarnos, pero puede haber mÔs (buscadlas y modificadlas siguiendo la misma metodología). Con los datos de nuestra novísima partición root (UUID y compañía), procedemos a sustituir las referencias antiguas por las nuevas:
  • Donde ponga (hdX,Y), cambiamos las cifras de X y de Y atendiendo a lo siguiente:

X: indica el nĆŗmero de disco duro. Si el disco es sda, X es igual a 0. Si el disco es sdb, X es igual a 1. Si el disco es sdc, X es igual a 2, etc.
Y: indica el nĆŗmero de la partición. 1,2,3… Ejemplo: segunda partición del primer disco (hd0,2);Ā  segunda partición del tercer disco (hd2,2)… ĀæCaptĆ”is la idea?

  • El segundo campo a modificar es el UUID (el código de nĆŗmeros y letras tan largo), que todavĆ­a apunta a la partición vieja. Lo cambiamos por el UUID de la nueva partición (recordad que esto lo podĆ©is consultar en GParted, por ejemplo). Ā”Revisad bien los datos!
  • La tercera modificación, y una de las mĆ”s importantes, estĆ” relacionada con el pequeƱo rectĆ”ngulo rojo que hay debajo del UUID, y que pone en la imagen Ā«sdb2Ā». AhĆ­ es donde tenĆ©is que indicar la nueva partición de vuestro root que, por lógica, ha de corresponderse con (hdX,Y). Ejemplos: (hd0,1) –> sda1Ā  //Ā  (hd2,3) –> sdc3

Tened en cuenta que estos cambios, en principio, hay que repetirlos en función del número de entradas de nuestro sistema operativo presentes en el Grub. Yo tengo tres entradas de Chakra, por tanto he de cambiar esos datos 3 veces. Sin embargo, os aconsejo que cambiéis solo la primera entrada y, una vez que veÔis que todo arranca correctamente, procedÔis a modificar las restantes, ya desde vuestro sistema operativo real.

8 ) Solventado el asunto del Grub, pasamos al fstab.
sudo kate /etc/fstab
Buscamos el UUID de / y lo cambiamos por el nuevo, tal y como hicimos en el paso anterior. Guardamos.

9) Ya podemos reiniciar y comprobar que todo estÔ en orden. Si el sistema operativo funciona bien, podemos proceder a reemplazar los datos que dejamos sin cambiar en las entradas restantes del archivo grub.cfg, así como a borrar la vieja partición root -si tal es nuestro deseo-.

Eso es todo por hoy.