lunes, 23 de mayo de 2016

Mover tu /home a otra partición

Una de las cosas que se lee, a veces, es el deseo de crear tu /home en una partición distinta a la que, originalmente, has asignado al instalar tu distro. Esto pasa, típicamente, a los novatos que instalan la distro sin fijar, previamente, una ‘estrategia del particionado’ y no se preocupan de separar la /home de su partición raiz (/) y, o bien porque se les queda pequeña, o bien porque, al final, se convencen de que es una buena práctica lo de separar la /home, se preguntan cómo hacerlo… sin tener que reinstalar de nuevo.

No es, habitualmente, mi caso pero, por aquello de que nunca puedes decir eso de que ‘de este agua no beberé’, o simplemente por tenerlo anotado entre mis ‘apuntes’, vamos a ver cómo puede hacerse.

(Debo decir que, buscando por Google, encuentras bastante información, y por distintos métodos. Yo voy a poner aquí el que me parece más sencillo. Y el más sencillo es apoyándose en un LiveCD (de cualquier distro) para hacer las operaciones necesarias. Y también me apresuro a decir que esto es ‘teórico’, en realidad nunca he tenido necesidad de hacerlo, así que… supongo que funcionará).
Pero vamos a ello:
Lo primero, para no complicarme la vida y usaré el mismo nombre de usuario y contraseña, que tenía. Y, como medida preventiva, yo me haría una copia de seguridad de los archivos de mi /home actual. Simplemente, copiaría en un disco externo (podría hacerse también en alguna partición ‘no involucrada’ del disco interno) todos los archivos (incluidos los ocultos) de la /home original.

Y, por supuesto, tendré creada en mi disco duro la partición que voy a asignar como nueva /home, de tamaño suficiente, y en formato ‘linux’, esto es, EXT4, que hoy en día es el formato más estandar. Esto, si no está creada, se hace con Gparted, en modo LiveCD. Supongamos que creado y elegido, como nueva /home, la partición /dev/sda6. Esto conviene hacerlo antes, en una sesión del LiveCD

Paso 1: arrancando el sistema (mi Debian), edito el archivo, de mi partición raiz (/), /etc/fstab, con
sudo nano /etc/fstab
y añado (siguiendo el ejemplo) las siguientes líneas
# Nueva partición /home en /dev/sda6
/dev/sda6  /home   ext4   defaults   0   2

NOTA: es aún más recomendable utilizar el UUID (el famoso ‘Universally Unique IDentifier’) . Para eso basta abrir consola y escribir
sudo blkid
ahí aparecen todos los UUID de las particiones, copias la de la partición /dev/sda6 elegida (¡sin las comillas…!) y lo pegas en la línea anterior, que entonces quedaría, por ejemplo, así
UUID=36a0b60a-0844-4148-8de8-a1f9ec856f32 /home ext4 defaults 0 2
y guardas y cierras este archivo.

Paso 2: reinicio el PC teniendo insertado el CD de arranque de cualquier distro con opción de poder hacerla funcionar en modo LiveCD ('probar antes de instalar'), para crear dicha sesión LiveCD. Una vez en ella, movemos todo el contenido de la /home a su nueva ubicación, en la /dev/sda6. Lo movemos tal cual, las carpetas completas que cuelgan de /home
NOTA: la única dificultad que tiene es trabajar con un LiveCD es la de identificar claramente las particiones y archivos en los que voy a actuar. Me refiero a que, al arrancar el sistema en ese modo LiveCD apareen las particiones y archivos tanto del CD como del propio disco duro, y hay que tener claro cuales son unos y cuales otros, para no liarla. Las particiones del disco duro suelen tener ‘nombres raros’, el del dispositivo que identifica el LiveCD.

Paso 3: sales del LiveCD, arrancas normalmente, el PC… y, en principio, te aparecerán tus archivos en la nueva partición de /home.

NOTA FINAL: el procedimiento, sin usar un LiveCD, sino trabajando desde el propio disco duro, es también sencillo, aunque requiere cierta experiencia. Una vez creada esa nueva partición (en el ejemplo /dev/sda6)
a) Arrancamos el PC y, en el GRUB, seleccionas ‘opciones avanzadas’ y, ahí, el ‘modo recuperación’, para entrar en terminal, sin nada cargado. Llegas hasta a loguearte como root. Y, en ese punto, con la consola con el 'prompt' de root (#]...
b) Montamos la nueva partición, por ejemplo en /mnt/home:
# mount /dev/sda6 /mnt/home

c) Copiamos los datos de la /home actual a la nueva, con:
# cp -dpR /home/* /mnt/home
d) Desmontamos de /mnt:
# umount /mnt/home
e) Montamos la nueva partición en /home
# mount -t ext4 /dev/sda6 /home
f) Modificamos el archivo /etc/fstab con
# nano /etc/fstab
copiando ahí la línea (líneas) antes indicadas, mejor con el UUID
# nueva partición /home en /dev/sda6

UUID=36a0b60a-0844-4148-8de8-a1f9ec856f32  /home   ext4   defaults   0   2
g) Reiniciamos con
# reboot

Y concluido.

Y un comentario: yo, personalmente, si alguna vez tengo que hacerlo, usaré este último método, el primero me da la impresión de ser 'demasiado simple'. Pero es posible que funcione..."
NOTA FINAL. Pues rectifico: lo he hecho por el primer método, y va estupendamente. Es más, si lo haces en una segunda distro que tengas en otra partición de tu ordenador (en mi caso, lo hice con un LinuxMint auxiliar que me había instalado), ni hace falta trabajar desde un LiveCD para crearle, posteriormente, una partición específica para /home y asignarla como nueva /home de esa distro: lo hice todo desde mi Debian. Perfecto... y, sabiendo lo que tienes que hacer, lo haces en un 'plis-plas'. 

No hay comentarios:

Publicar un comentario