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
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).
sudo cp -rav /mnt/old/* /mnt/new
sudo cp -rav /mnt/old/.* /mnt/new
sudo umount /mnt/old
sudo mount -o bind /dev /mnt/new/dev
sudo mount -t proc none /mnt/new/proc
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).
sudo kate /boot/grub/grub.cfg
- 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.
sudo kate /etc/fstab
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.
17 comentarios, deja el tuyo
Esto andaba buscando XD. gracias
Es un procedimiento muy seguro, lo he utilizado en muchas ocasiones años atrás, y lo bueno es que la nueva partición / no contendrá fragmentación de archivos…
Aunque no hace mucho intenté cambiar de partición raíz con la variante de cambiar también el sistema de archivos (de reiserfs a ext3), pero me fue imposible hacerlo por mas intentos y vueltas que dí, de alguna manera en el inicio del sistema fallaba la detección de / por el hecho de que buscaba una partición / con sistema reiserfs cuando la nueva fue formateada con ext3. Ingresando en modo mantenimiento y montando manualmente / como ext3 el sistema funcionaba correctamente, pero al siguiente inicio volvía a fallar por el mismo motivo. No hubo ni edición de grub o fstab que sirviera… siempre buscaba una partición / con reiserfs, no puede encontrar la solución…
Eso tiene toda la pinta de que había algún archivo apuntando a la partición reiserfs. Quizá una línea poco visible del gestor de arranque o algo por el estilo, ya que en caso contrario debería haberse cargado correctamente la ext3.
Si es lo que pensé… y pase horas buscando algo pero no encontré nada… ni siquiera buscando en Internet.
Igual no puedo asegurar que en el pasado haya hecho el procedimiento sin problemas, es que pasarón unos 6 o 7 años de cuando solía realizarlo casi por gusto… la última vez lo intente hacer con Debian Lenny, probablemente la diferencia mas grande sea el kernel, antes tal vez utilizaba alguna distro con linux 2.4.x.
En fin si legas a encontrar la solución, espero la compartas…
Buen tip, …si lo hubiese sabido antes.
Saludos.
Sí muy buen tip se parece mucho al procedimiento de cambiar el /home de disco, pero no sabía que se podía hacer con root.
Muy buena info aunque tal vez no la use es bueno saberlo por sí las moscas. 🙂
Sí, con el /home es mucho más sencillo, porque no tienes que reinstalar el Grub ni modificar el archivo de configuración del mismo. Con copiar todo lo necesario y editar el fstab es suficiente.
Pues claro estamos hablando del /home, es obvio que el /root requiere de más atención.
No es como /Home que generalmente casi solo es cortar y pegar o en su defecto copiar y pegar.
muy buen manual,amigo, muchas gracias, me gustaria saber si se puede descargar de algún lado la versión pdf o cualquier otra, un saludo
Aquí tienes, recién salida del horno ;):
https://sites.google.com/site/rsvnna/baul/Mover%20Root.pdf
gracias amigo, esta muy bien
Muchas gracias! andaba buscando algo similar y lo que se me había ocurrido era hacer imágenes de las particiones y luego restaurarlas pero claro, faltaban más cosas como puntos de montaje etc. Asi que me va como anillo al dedo!
Muy buena info, siempre es útil tener estas cosas a mano por si acaso. Muchas gracias.
Si estás utilizando Grub2 ¿no sería grub2-install?
Tened cuidado cuando hacéis estos manuales que metéis en un lio a cualquiera como no pongáis bien los comandos.
En Arch la vercion antigua de grub se renombro a grub-legacy y grub 2 quedo como grub solamente asi que es correcto pero de igual manera es recomendable leer la documentacion de tu distribucion antes de hacer un movimiento importante como este para estar seguro de los nombres de los paquetes
y gracias al autor andaba buscando el proceso detallado y esto me sirvio bien
El par de comandos más del punto 5 no me han funcionado, mejor esto:
sudo su
mkdir /media/kk (lugar donde esté montado la raíz del sistema instalado)
mount -t ext4 -o rw /dev/sda /media/kk
mount –bind /proc /media/kk/proc
mount –bind /dev /media/kk/dev
mount –bind /sys /media/kk/sys
chroot /media/kk
update-grub
grub-install /dev/sda (o sdb, …)
Muchas gracias me sirvió de mucho, como alternativa después de copiar todo a la partición nueva pueden mover la instalación del grub con la herramienta boot-repair, asi se evita tener que hacer los pasos 5 en adelante
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install boot-repair
se ejecuta la aplicacion grafifa se activa opciones avanzadas; ubicación del grub y se elige la nueva partición para la instalación del grub.