Linux

Linux: ¿cómo mover tu directorio personal a otro disco?

¿Quieres mover tu carpeta de inicio de Linux a otra unidad? Aquí hay una forma sencilla y paso a paso de hacerlo que debería funcionar en cualquier distribución. Mover su carpeta de inicio significa que puede reinstalar Linux y no tener que preocuparse por sus archivos personales.

¿Por qué mantener tu carpeta personal separada?

Si está configurando una nueva máquina o añadiendo un disco duro a una ya existente, puede que quiera tener su directorio principal 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 su sistema operativo y una unidad híbrida de estado sólido (SSHD) más grande o un disco duro tradicional (HD) como el principal almacenamiento de datos. O puede tener un solo disco duro tradicional en su sistema, y ha añadido un nuevo HD para aumentar el almacenamiento. Cualesquiera que sean sus motivos, aquí tiene un sencillo y completo recorrido para mover su directorio principal.

Por cierto, si está instalando un sistema Linux desde cero, probablemente verá una opción para crear un directorio principal separado en el instalador de su distribución Linux. Generalmente, sólo necesitará ir a las opciones de particionado, crear una partición separada y montarla en «/home». Pero, si ya ha instalado una distribución de Linux, puede usar estas instrucciones para mover su directorio raíz actual a una nueva ubicación sin perder nada o reinstalar su sistema operativo.

Identificar la unidad en Linux

Si acabas de instalar un disco en un ordenador Linux, o has instalado Linux en uno de los discos de un nuevo ordenador con múltiples discos, y lo has reiniciado, hay pocas pruebas de que el nuevo disco esté presente.

El comando fdisk listará los discos y sus particiones para nosotros.

sudo fdisk -l

Desplácese por la salida hasta que haya identificado la nueva unidad. El primer disco se llama /dev/sda, el segundo /dev/sdb y así sucesivamente, con la última letra aumentando cada vez. Así que /dev/sde sería el quinto disco duro del sistema.

En este ejemplo, la nueva unidad es la segunda unidad que se instalará en el sistema. Así que tenemos que buscar una entrada para /dev/sdb.

/dev/sdb está resaltado arriba. Notarán que no tiene una línea que describa una partición en ella. Es una unidad nueva, así que no tendrá una todavía. Necesitamos crear la partición. Podemos hacerlo usando fdisk. Si su disco duro no es /dev/sdb, asegúrese de sustituir /dev/sdb con el identificador real de su nuevo disco duro en el comando.

sudo fdisk /dev/sdb

Cuando fdisk te pida un comando, presiona la letra p. Esto imprime la tabla de partición para el disco duro. Sabemos que no tendrá una, pero obtenemos información útil sobre el disco. Nos da una buena oportunidad de asegurarnos de que la unidad para la que vamos a crear una partición es la unidad con la que queríamos trabajar.

Nos dice que el disco es de 1 TB, lo que coincide con lo que esperamos de esta máquina de prueba, así que procederemos.

Crear una partición

Presione la letra n para una nueva partición, y luego presione p para una partición primaria. Cuando se le pida el número de la partición, pulse el número 1.

Vamos a crear una sola partición para todo el disco, así que cuando se le pregunte por el primer sector podemos pulsar Intro para aceptar el valor predeterminado. Luego se le pedirá el último sector, y Enter aceptará el valor predeterminado.

Aunque fdisk confirma que ha creado una partición Linux de 1TB, que es la partición número 1, nada ha cambiado en el disco duro todavía. Hasta que le des a fdisk el comando para escribir los cambios en el disco, el disco está intacto. Una vez que estés seguro de que estás contento con nuestras elecciones, pulsa la letra w para escribir los cambios en el disco.

La partición ha sido escrita en /dev/sdb . Comprobemos lo que acaba de pasar. Usaremos fdisk una vez más en /dev/sdb.

sudo fdisk /dev/sdb

Presiona la letra p para imprimir la tabla de particiones, y verás que ahora hay una partición listada para el disco. Debido a que fue la primera partición de este disco, 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 la partición en el comando. Tenga cuidado de escribir /dev/sdb1 (la partición) y no /dev/sdb (la unidad).

sudo mkfs -t ext4 /dev/sdb1

El sistema de archivos se creará para usted, y usted volverá a la línea de comandos.

Montaje de la nueva unidad en Linux

Para usar la nueva unidad, debemos montar la partición en ella en un punto de montaje en el sistema de archivos. En realidad, para ser perfectamente precisos, no estamos montando ni la unidad ni la partición, estamos montando el sistema de archivos en la partición, injertándolo en el árbol del sistema de archivos de su sistema.

El punto /mnt es tan bueno como cualquier otro. Es sólo 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 en /dev/sdb, en /mnt .

sudo mount /dev/sdb1 /mnt

Si todo va bien, volverás a la línea de mando sin mensajes de error. Veamos si podemos cambiar de directorio a nuestro nuevo sistema de archivos montado.

cd /mnt

Sí, podemos. Veamos qué hay aquí.

Es -ahl

Estamos en nuestro nuevo sistema de archivos. El directorio por defecto «perdido+encontrado» no es necesario para que podamos eliminarlo.

sudo rm -rf perdido+encontrado

Copiar su carpeta de casa

Tenemos que copiar todo, desde el viejo directorio principal al nuevo sistema de archivos montado. El uso de las opciones r (recursivo) y p (preservar) asegurará que todos los subdirectorios se copien y que se conserven las propiedades de los archivos, los permisos y otros atributos.

sudo cp -rp /home/* /mnt

Cuando la copia se haya completado, use ls para echar un vistazo y verificar que sus datos están donde usted espera que estén en el nuevo sistema de archivos. En otras palabras, si /mnt era su directorio principal, ¿está todo presente y correcto?

ls

ls dave

Probablemente querrás ser un poco más minucioso de lo que fuimos en la máquina de pruebas en la que se investigó este artículo. Como red de seguridad, vamos a renombrar y mantener tu antiguo directorio /home hasta que estés satisfecho de que es seguro borrarlo.

sudo mv /home /home.orig

Y crearemos un nuevo y vacío directorio de inicio.

sudo mkdir /home

Usaremos ese nuevo directorio vacío como punto de montaje de nuestro sistema de archivos en el nuevo disco duro. Necesitamos desmontarlo de /mnt y volver a montarlo en /home. Tengan en cuenta que el comando umount no tiene una «n» después de la «u».

sudo umount /dev/sdb1

sudo mount /dev/sdb1 /home/

Probando su nuevo directorio de casas

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

df /dev/sdb1

Se nos muestra el nombre del sistema de archivos, el tamaño de la partición y el espacio usado 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 ser capaces de referirnos a él exactamente como podríamos hacer con el antiguo directorio /home.

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

cd /

cd ~

pwd

ls

cd / casa

ls

cd dave

ls

ls -a

Podemos movernos a través del sistema de archivos hacia adelante y hacia atrás hasta /home usando comandos explícitos y usando el ~ atajo. Las carpetas, archivos y archivos de puntos que esperábamos están todos presentes. Todo se ve bien.

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

Ahora necesitamos tener /dev/sdb1 montado automáticamente cada vez que se inicia el ordenador.

Editando fstab

El archivo «fstab» contiene descripciones de los sistemas de archivos que se van a montar cuando el sistema arranque. Antes de hacer cualquier cambio en él, haremos una copia de seguridad de él a la que podemos volver en caso de problemas.

sudo cp /etc/fstab /etc/fstab.orig

Ahora podemos editar el archivo fstab.

sudo gedit /etc/fstab

sudo gedit .etc.fstab en una ventana terminal

Debes añadir una línea al final del archivo para montar nuestro nuevo directorio /home. Si los identificadores de su unidad y partición son diferentes a los usados en este ejemplo, sustituya estos por el /dev/sdb1 que se muestra aquí.

Escriba el nombre de la partición al principio de la línea y luego pulse Tab.

Escriba el punto de montaje, /home, y pulse Tab.

Escriba la descripción del sistema de archivos ext4, y pulse Tab.

Escriba los valores predeterminados de las opciones de montaje y pulse Tab.

Escriba el dígito 0 para la opción de volcado del sistema de archivos y pulse Tab.

Escribe el dígito 0 para la opción de comprobación del sistema de archivos.

Usar gedit para editar el archivo fstab

Guarda el archivo de Fstab.

Comprobaciones finales en tu sistema Linux

Cuando tu sistema se reinicie, comprobemos que el directorio /home está realmente en tu nuevo disco duro, y que tu sistema no ha vuelto a utilizar de alguna manera (milagrosamente) el antiguo directorio /home.

df /dev/sdb1

df /dev/sdb1 en una ventana terminal

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

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

cd /

sudo rm -rf home.orig/

sudo rm -rf home.orig/ en una ventana terminal

Y por supuesto, si te das cuenta de que algo no se ha copiado del viejo /home al nuevo /home, podrás recuperarlo de la copia de seguridad que hiciste antes de que empezáramos.

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 quedarán intactos. Todo lo que tienes que hacer es editar el archivo fstab para montar tu segundo disco en /home.

Y como todos tus archivos punto están en tu directorio /home, cuando enciendas tus diversas aplicaciones, encontrarán todos tus ajustes, preferencias y datos.

Esto le quita el dolor a las reinstalaciones y le quita el riesgo a las actualizaciones.


¿Tienes alguna pregunta o problema relacionado con el tema del artículo? Queremos ayudarte.

Deja un comentario con tu problema o pregunta. Leemos y respondemos todos los comentarios, aunque a veces podamos tardar un poco debido al volumen que recibimos. Además, si tu consulta inspira la escritura de un artículo, te notificaremos por email cuando lo publiquemos.
*Moderamos los comentarios para evitar spam.

¡Gracias por enriquecer nuestra comunidad con tu participación!

Deja un comentario