Mover la carpeta /home a un disco nuevo en Ubuntu 14.04 LTS

Con el paso del tiempo, la información se va acumulando en nuestros discos duros hasta el punto de que supone un problema. En esos casos, la solución puede pasar por remangarnos y hacer limpieza a fondo, eliminando todos esos archivos que, probablemente, no volvamos a utilizar jamás.

Sin embargo, el precio por unidad de almacenamiento en los discos duros va disminuyendo casi a diario y, a cambio de una cantidad de euros bastante razonable, podemos evitar ponernos tan drásticos. Al fin y al cabo, añadiendo un nuevo disco al sistema podemos evitar la desazón que nos produce borrar algo que podemos necesitar en un futuro.

Por ese motivo, hoy vamos a aprender a añadir un nuevo disco al sistema y conseguir que todo el contenido de la carpeta /home (la que contiene todos los archivos de los usuarios) se mueva hasta él, liberando al mismo tiempo el espacio que estaban ocupando en el directorio principal. Y lo que es mejor, lo conseguiremos sin reinstalar el sistema y sin que se note la diferencia una vez terminado el trabajo.

Una precaución que debemos tener en cuenta es que la carpeta de los usuarios no debe estar cifrada. De lo contrario, no podrán iniciar sesión una vez concluido el trabajo.

Tampoco debes olvidar hacer una copia de seguridad de tus datos antes de comenzar. Piensa que un contratiempo podría hacerte perder toda la información del equipo.

 
Aunque el proceso es muy sencillo, queremos explicarlo con mucho detalle para que no puedas perderte. Por eso, vamos a dividirlo en varias etapas que permitan seguirlo de una forma muy sencilla. Serán las siguientes:

  • Habilitar la cuenta del usuario root
  • Preparar el disco nuevo
  • Cerrar la sesión actual e iniciar sesión como root
  • Montar el disco nuevo y copiar en él la carpeta /home actual
  • Modificar el punto de montaje predeterminado de la carpeta /home
  • Reiniciar y limpiar

Bueno, pues si estás listo, comencemos…

Habilitar la cuenta del usuario root

Una precaución importante para alcanzar nuestro objetivo es que ninguno de los archivos contenidos en la carpeta /home se encuentre en uso. La forma más sencilla es trabajar con la cuenta root, cuyos archivos se encuentran dentro de la carpeta /root. Sin embargo, por motivos de seguridad, esta cuenta se encuentra deshabilitada en Ubuntu.

Nosotros la habilitaremos siguiendo las indicaciones del artículo Habilitar y deshabilitar la cuenta de root en Ubuntu 14.04 LTS. Después, una vez terminada la tarea, recurriremos a las indicaciones del mismo artículo para deshabilitarla.

Preparar el disco nuevo

Para la explicación de hoy, supondremos que la parte hardware ya está resuelta. Es decir, que ya has abierto el ordenador y has conectado correctamente un nuevo disco duro en su interior.

Lo normal es que, una vez conectado físicamente el disco al ordenador, al arrancarlo por primera vez, la BIOS lo detecte automáticamente. Si no es así, deberás recurrir a la documentación de tu ordenador para habilitar la detección automática de dispositivos.

Es bastante habitual que los discos nuevos vengan formateados de fábrica. Si es así, tendrá una sola partición, que estará formateada en NTFS.

Puedes abrir el Dash haciendo clic sobre el primer icono del Launcher, Lanzador en español, o pulsando la techa Windows de tu teclado.

 
En cualquier caso, lo primero que tendremos que hacer será iniciar sesión como habitualmente y ejecutar la herramienta de discos de Ubuntu. Para lograrlo, sólo tienes que abrir el Dash y comenzar a escribir el texto Discos.

Mucho antes de que acabes, aparecerá en la pantalla el icono que representa a la herramienta.

1

Hacemos clic sobre ella.

Cuando se abra la ventana Discos, identificamos el disco nuevo y hacemos clic sobre él.

Aquí podemos comprobar el tamaño, el formato actual y el archivo de dispositivo asignado, entre otras características. Como puedes ver en la imagen, en nuestro ejemplo, el formato que tiene en este momento el disco es NTFS, y se encuentra asociado a /dev/sdb1. Sin embargo, esto puede ser diferente en tu caso particular.

2

Características del disco nuevo.

En cualquier caso, tanto si el disco no tiene formato, como si su formato es diferente de ext4, lo siguiente será darle formato. Incluso si ya dispone del formato adecuado, volver a formatearlo te asegurará que eliminas todo su contenido y lo dejas listo para la tarea que vamos a realizar.

Por lo tanto, el siguiente paso será hacer clic sobre el botón que representa unos engranajes…

3

Y en el menú que aparece, elegir la opción Formatear

Al hacerlo, obtendremos una nueva ventana titulada Formatear volumen. En ella, elegiremos las características del nuevo formato. En este caso, nos aseguramos de que el tipo sea Compatible con sistemas Linux (Ext4) y le asignamos un nombre que nos permita identificarlo (en este caso, hemos escrito Nuevo)

4

Cuando hayamos concluido, hacemos clic sobre el botón Formatear

Como hemos elegido un formato rápido en la ventana anterior, el sistema nos avisa de que los datos podrían ser recuperados si el disco pasara a manos de otras personas.

5

Como no es el caso, hacemos clic sobre el botón Formato.

Al tratarse de una tarea administrativa, antes de continuar, se nos solicita la contraseña de administración.

6

La escribimos y hacemos clic sobre el botón Autenticar.

Poco después, comprobaremos que el disco ha sido formateado y que presenta la información correcta.

7

Ya podemos cerrar la ventana Discos.

Cerrar la sesión actual e iniciar sesión como root

Como hemos dicho más arriba, para evitar que ninguno de los archivos contenidos en la carpeta /home se encuentre en uso, debemos realizar la tarea con la cuenta root que de forma predeterminada, guarda sus archivos en la carpeta /root.

Por lo tanto, comenzaremos cerrando la sesión actual.

1

Hacemos clic sobre el icono que hay a la derecha del panel superior y, en el menú que aparece, elegimos la opción Cerrar sesión

De esta forma, conseguimos una ventana con dos opciones: Bloquear y Cerrar la sesión.

2

Hacemos clic sobre Cerrar la sesión.

De esta forma, se habrán cerrado todos los archivos que dependen de la sesión actual y el sistema nos presentará la pantalla de autenticación de LightDM. Sin embargo, ahora, en lugar de escribir la contraseña, pulsamos la combinación de teclas Alt + Ctrl + F1.

3

En la pantalla de autenticación pulsamos Alt + Ctrl + F1.

Para volver a la consola gráfica sólo tenemos que usar la combinación de teclas Alt + Ctrl + F7.

Al hacerlo, veremos que la interfaz gráfica desaparece y nos encontramos únicamente en una consola de texto.

A continuación, iniciaremos sesión con la cuenta root. Ten en cuenta que esto sólo funcionará si antes hemos seguido el artículo que mencionábamos más arriba para habilitar la cuenta del administrador.

4

Escribimos el nombre del usuario (root) y la contraseña que le hayamos asignado.

Montar el disco nuevo y copiar en él la carpeta /home actual

No hace falta incluir sudo porque ya estamos ejecutando las ordenes como root.

El siguiente paso será montar el disco nuevo, de forma temporal, para hacer una copia del contenido completo de la carpeta /home actual.

Para lograrlo, necesitaremos dos cosas: una carpeta donde realizar el montaje y el archivo de dispositivo al que se encuentra vinculado el nuevo disco duro.

Para crear la carpeta, bastará con utilizar el comando mkdir, escribiendo algo parecido a esto:

mkdir /mnt/home

Así, habremos creado una nueva carpeta llamada home, dentro de la carpeta actual mnt, que es donde suelen crearse todas las carpetas de montaje para dispositivos.

1

Escribimos la orden y pulsamos la tecla Intro.

blkid determina el sistema de archivos, la etiqueta, el archivo de dispositivo y el identificador (UUID) de los dispositivos de bloque presentes en el equipo.

En cuanto al archivo de dispositivo, cuando formateamos el disco más arriba, pudimos observar que se trataba de /dev/sdb1. Lógicamente, en tu sistema podrá ser diferente, pero, si no tomaste nota en su momento, siempre puedes recurrir al siguiente comando para consultarlo:

blkid

2

Comprobamos que, en nuestro caso, el archivo de dispositivo es, efectivamente, /dev/sdb1.

Después de esto, estaremos listos para montar el disco, para lo que escribiremos algo como esto:

mount /dev/dsb1 /mnt/home

Aunque la orden podrá cambiar si tu disco se encuentra vinculado a un archivo de dispositivo diferente o si has decidido darle otro nombre a la carpeta de montaje.

3

Una vez que escribamos la orden, pulsamos la tecla Intro.

Si todo ha sido correcto, sólo queda copiar el contenido de la carpeta /home actual en el disco que acabamos de montar. Para lograrlo, basta con escribir una orden como esta:

cp -av /home/* /mnt/home

El argumento a nos permite preservar la estructura y los atributos que tenían los archivos originales. El argumento v muestra cada uno de los archivos copiados.

4

Escribimos el comando y pulsamos la tecla Intro.

 

5

… Al hacerlo, comprobaremos que se copian todos los archivos originales a su nuevo destino.

Una vez completado el trabajo, podemos desmontar la unidad con lo que, además, nos aseguramos de que se escriben los datos que puedan haber quedado en la memoria intermedia. Lo conseguimos escribiendo la siguiente orden:

umount /mnt/home

6

Desmontamos el dispositivo.

Modificar el punto de montaje predeterminado de la carpeta /home

Ya estamos casi listos. Sólo nos falta decirle al sistema operativo que, ahora, la carpeta /home se encuentra en un lugar diferente.

Para lograrlo, sólo tenemos que modificar el archivo fstab, que es donde se leen los parámetros de montaje de dispositivos durante el arranque del sistema.

Podemos editar su contenido con cualquier editor de textos. Por ejemplo, usando nano:

nano /etc/fstab

1

Escribimos el comando y pulsamos Intro.

Cuando tengamos el contenido del archivo en pantalla, nos desplazamos hasta el final y añadimos una línea como esta (bueno, yo he añadido también un comentario sobre ella):

UUID=5f33b082-5d15-4f4e-b6c5-0f8fac1d72c1  /home  ext4  defaults  0  2

Como es lógico, deberás cambiar el valor UUID por el de tu disco. Recuerda que lo obtuvimos con el comando blkid.

En cuanto al resto de opciones, debemos indicar la ruta donde se montará el dispositivo (como es lógico, indicaremos /home), el sistema de archivos utiliza (ext4), las opciones de montaje (defaults representa las opciones predeterminadas), el valor 0, para el programa dump (que se encarga de hacer copias de seguridad) ignore el dispositivo, y el valor 2 para indicar de comprobación del sistema de archivos (lo normal es que el sistema de archivos raíz tenga prioridad 1 y el resto 2).

2

Cuando hayamos terminado, salimos del editor nano pulsando la combinación de teclas Ctrl + X.

Al salir, nano nos pregunta si queremos guardar los cambios. Lógicamente, la respuesta debe ser (Yes).

3

Pulsamos la tecla Y.

Como última precaución, nano nos ofrece la posibilidad de cambiar el nombre del archivo, por si no queremos reescribirlo.

4

Como preferimos reescribirlo, pulsamos la tecla Intro.

El último paso consistirá en cambiar el nombre de la carpeta /home actual, para evitar que aparezcan dos ubicaciones con el mismo nombre la próxima vez que reiniciemos (algo que produciría un error). También podríamos eliminarla pero, por cuestiones de seguridad, no lo haremos hasta que comprobemos que todo ha funcionado correctamente.

El comando que usaremos para cambiar el nombre de la carpeta será el siguiente:

mv /home /home-old

Yo he elegido /home-old, pero tú puedes usar el nombre que prefieras.

5

Escribimos el comando y pulsamos la tecla Intro.

Después de esto, estaremos listos para reiniciar el equipo y comprobar que todo funciona.

Reiniciar y limpiar

Reiniciar el equipo desde la consola es tan sencillo como usar el siguiente comando:

reboot

1

Unos instantes después de pulsar la tecla Intro comenzará el reinicio.

Cuando se complete, volverá a aparecer la pantalla de autenticación y, si todo ha funcionado correctamente, no tendremos dificultad en iniciar sesión con nuestro usuario habitual.

Después, para comprobar que los dispositivos se han montado de forma correcta, podemos utilizar el siguiente comando, que nos aporta información sobre los dispositivos de almacenamiento de bloques disponibles:

lsblk -fm

El argumento f nos ofrece información sobre los sistemas de archivos instalados y el argumento m nos informa de quién es su propietario, su tamaño, etc.

2

Comprobamos que la carpeta /home se encuentra montada en el lugar correcto

También puedes abrir la carpeta principal del usuario, para comprobar que todo está en su sitio.

3

Contenido de la carpeta principal de la cuenta de usuario actual.

Si todo es correcto, ya podemos borrar los datos de la carpeta /home original (que ahora se llama /home-old) y la carpeta que creamos para montar de forma temporal el disco nuevo (/mnt/home). En ambos casos, recurriremos al comando rm:

sudo rm -R /mnt/home
sudo rm -R /home-old

4

Eliminamos las carpetas.

Como último detalle a tener en cuenta, deberíamos volver a deshabilitar la cuenta de root, tal y como indicábamos en el artículo Habilitar y deshabilitar la cuenta de root en Ubuntu 14.04 LTS.

Bueno, pues esto es todo por hoy. Espero que te resulte útil.