Cómo mover el directorio Home de Linux a otra unidad

¿Deseas mover tu carpeta de inicio (Home) de Linux a otra unidad? Aquí te presento una manera sencilla y paso a paso de hacerlo que debería funcionar en cualquier distribución.

Mover tu carpeta home significa que puedes reinstalar Linux y no tener que preocuparte por tus archivos personales.

¿Por qué mantener la carpeta home separada?

Si estás configurando una nueva máquina o agregando un disco duro a uno existente, es posible que desees tener tu directorio home en una unidad diferente a la ubicación predeterminada.

Una configuración cada vez más popular para las computadoras personales modernas es tener una Unidad de Estado Sólido (SSD) de tamaño mediano que contenga el sistema operativo y una Unidad Híbrida de Estado Sólido (SSHD) o disco duro tradicional (HD) más grande como tu unidad principal de almacenamiento de datos.

O puedes tener un solo disco duro tradicional en tu sistema, y ​​has agregado un nuevo disco duro para un mayor almacenamiento. Cualesquiera que sean tus razones, aquí hay un sencillo y paso a paso de cómo mover tu directorio de inicio.

Por cierto, si estás instalando un sistema Linux desde cero, probablemente verás una opción para crear un directorio de inicio separado en el instalador de tu distribución de Linux.

En general, solo tendrás que acceder a las opciones de partición, crear una partición separada y montarla en “/home”. Pero, si ya has instalado una distribución de Linux, puedes usar estas instrucciones para mover tu directorio.

Un aspecto importante antes de iniciar, debes realizar una copia de seguridad.

Identificar la unidad

Si acabas de instalar una unidad en una computadora con Linux, o instalaste Linux en una de las unidades en una nueva computadora con varias unidades, y reiniciaste, hay poca evidencia de que la nueva unidad esté presente.

El comando fdisk enumerará las unidades y tus particiones.

Desplázate por la salida hasta que hayas identificado la nueva unidad.  La primera unidad es llamada /dev/sda, la segunda es /dev/sdb y así sucesivamente, y la última letra aumenta cada vez. Entonces /dev/sde sería el quinto disco duro del sistema.

En este ejemplo, la nueva unidad es la segunda unidad que se instala en el sistema. Entonces necesitamos buscar una entrada para /dev/sdb.

/dev/sdb se resalta arriba. Notarás que no tiene una línea que describa una partición. Es un disco completamente nuevo, por lo que todavía no tendrá una.

Necesitamos crear la partición. Podemos hacerlo usando fdisk. Si tu disco duro no es /dev/sdb, asegúrate de sustituir /dev/sdb con el identificador de disco real para tu nuevo disco duro en el comando.

Cuando fdisk te pide un comando, debes pulsar la letra p. Esto imprime la tabla de particiones para el disco duro. Sabemos que no tendrá una, pero obtenemos información útil sobre el disco.

Nos da una buena oportunidad para asegurarnos de que la unidad para la que vamos a crear una partición sea la unidad con la que pretendemos trabajar.

Nos dice que la unidad es una unidad de 1 TB, que coincide con lo que esperamos en esta máquina de prueba, por lo que procederemos.

Crear una partición

Presiona la letra n para una nueva partición y luego presiona p para una partición primaria. Cuando se te solicite el número de partición, presiona el número 1.

Vamos a crear una única partición para todo el disco, de modo que cuando se nos solicite el primer sector, podemos presionar Enter para aceptar el valor predeterminado. Luego se te solicitará el último sector, y Enter aceptará el valor predeterminado.

Aunque fdisk confirma que ha creado una partición Linux de 1 TB, que es la partición número 1, todavía no ha cambiado nada en el disco duro. Hasta que el uses comando fdisk para escribir los cambios en la unidad, la unidad no se ha tocado.

Una vez que estés seguro de que está satisfecho con las opciones, presiona la letra w para escribir los cambios en la unidad.

La partición ha sido escrita en /dev/sdb. Veamos qué acaba de pasar. Usaremos fdisk una vez más en /dev/sdb.

Presiona la letra p para imprimir esa tabla de particiones, y verás que hay una partición listada para la unidad ahora. Debido a que fue la primera partición en esta unidad, se llama /dev/sdb1.  Una segunda partición se llamaría /dev/sdb2, y así sucesivamente.

No queremos hacer ningún cambio en la partición, así que presiona la letra q para salir.

Crear un sistema de archivos en la partición

Necesitamos crear un sistema de archivos en la partición. Esto se logra fácilmente con el comando mkfs. Ten en cuenta que debes incluir el número de partición en el comando. Ten cuidado de escribir /dev/sdb1 (la partición) y no /dev/sdb (la unidad).

El sistema de archivos se creará para ti y volverás a la terminal.

Montaje de la nueva unidad

Para usar la nueva unidad, debemos montar la partición en un punto de montaje en el sistema de archivos.

En realidad, para ser perfectamente exactos, no estamos montando el disco ni la partición, estamos montando el sistema de archivos en la partición, injertándolo en el árbol del sistema de archivos de tu sistema.

El punto /mnt es un lugar tan bueno como cualquier otro. Es solo un punto de montaje temporal que nos permite copiar datos en la nueva unidad. Vamos a usar el comando mount para montar el sistema de archivos en la primera partición /dev/sdb, en /mnt.

Si todo va bien, volverás a la línea de comando sin mensajes de error. Veamos si podemos cambiar el directorio a nuestro sistema de archivos recién montado.

Si podemos. Veamos que hay aquí.

Estamos en nuestro nuevo sistema de archivos. El directorio predeterminado “lost+found” no es necesario para que podamos eliminarlo.

Copiar la carpeta home

Necesitamos copiar todo, desde el antiguo directorio de inicio al sistema de archivos recién montado. El uso de las opciones r (recursivo) y p (preservar) garantizará que todos los subdirectorios se copien y que se mantengan las propiedades, los permisos y otros atributos del archivo.

Cuando la copia se haya completado, usa ls para echar un vistazo y verificar que tus datos estén donde esperas que estén en el nuevo sistema de archivos.

En otras palabras, si /mnt fuera tu directorio de inicio, ¿está todo presente y correcto?

Como medida de seguridad, vamos a cambiar el nombre y mantener tu directorio /home anterior hasta que estés seguro de que es momento de eliminarlo.

Y crearemos un nuevo directorio de home vacío.

Utilizaremos ese nuevo directorio de inicio vacío como punto de montaje para nuestro sistema de archivos en el nuevo disco duro.

Necesitamos desmontarlo /mnt y volver a montar /home. Ten en cuenta que el comando umount no tiene una “n” después de la “u”.

Prueba tu nuevo directorio home

Veamos cuáles son los atributos de la partición /dev/sdb1 ahora:

Se nos muestra el nombre del sistema de archivos, el tamaño de la partición y el espacio utilizado y disponible en él, y lo que es más importante, dónde está montado.

Ahora es nuestro directorio /home. Eso significa que deberíamos poder referenciarlo exactamente cómo podríamos con el directorio /home anterior.

Si nos movemos a algún punto arbitrario en el sistema de archivos, deberíamos poder volver a /home usar el atajo tilde ~.

Podemos movernos por el sistema de archivos de un lado a otro para usar /home con comandos explícitos y usar el atajo ~.

Las carpetas y archivos que esperábamos están presentes. Todo se ve bien.

Si faltaba algo, podríamos copiarlo del directorio /home.orig, al que todavía tenemos acceso en la raíz del sistema de archivos. Pero todo se ve bien.

Ahora debemos montar /dev/sdb1 automáticamente cada vez que se inicia tu computadora.

Editando fstab

El archivo “fstab” contiene descripciones de los sistemas de archivos que se montarán cuando se inicie el sistema.

Antes de hacer cualquier cambio, haremos una copia de segruidad a la que podamos regresar en caso de problemas.

Ahora podemos editar el archivo fstab.

Debes agregar una línea en la parte inferior del archivo para montar nuestro nuevo directorio /home. Si tus identificadores de unidad y partición son diferentes a los utilizados en este ejemplo, sustitúyelos por los que se muestran aquí.

  • Escribe el nombre de la partición al comienzo de la línea y luego presiona Tab.
  • Ahora escribe el punto de montaje /home, y presiona Tab.
  • Escribe la descripción del sistema de archivos ext4 y presiona Tab.
  • En este momento, escribe defaults para las opciones de montaje y presiona Tab.
  • Escribe el dígito 0 para la opción de recuperación del sistema de archivos y presiona Tab.
  • Finalmente, escribe el dígito 0 para la opción de verificación del sistema de archivos.

Ahora guarda el archivo fstab.

Reinicia tu sistema

Necesitamos reiniciar para verificar que todo haya salido según el plan y que tengas una conexión perfecta a t u nuevo directorio /home.

Si no es así, todavía tiene la medida de seguridad de tu directorio original /home y el archivo fstab que podría restaurarse si fuera necesario.

Debido a las precauciones que hemos tomado (copiar el directorio /home y los archivos fstab), podrías devolver fácilmente tu sistema al estado en que estaba antes de comenzar.

Verificaciones finales

Cuando tu sistema se reinicie, verifiquemos que tu directorio /home esté realmente en tu nuevo disco duro, y que tu sistema no haya vuelto (milagrosamente) a usar el antiguo directorio /home.

Genial, /home está montado. ¡Misión cumplida!

Una vez que estés completamente seguro de que ya no necesitas la copia de seguridad de tu antiguo directorio /home, puedes eliminarlo:

Y, por supuesto, si te das cuenta de que algo no se copió del antiguo /home al nuevo /home, podrás recuperarlo de la copia de seguridad que realizaste antes de comenzar.

Hogar dulce hogar

Ahora que has separado tu directorio /home del resto de la partición del sistema operativo, puedes reinstalar tu sistema operativo y tus datos no se verán afectados.

Todo lo que tienes que hacer es editar el archivo fstab para montar tu segundo disco en /home.

Y debido a que todos tus archivos están en tu directorio /home, cuando ejecutes tus diversas aplicaciones, encontrarás todas tus configuraciones, preferencias y datos.