06 diciembre 2012

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.

Tomado de: http://blog.desdelinux.net/mover-la-particion-root-a-otro-disco/

No hay comentarios: