Contents

Separar /home de la raíz después de la instalación

Es posible que después de leer la primera parte de “Buenas prácticas en el particionado de GNU/Linux” penséis que hubiera sido una buena idea separar el directorio /home de la raíz del sistema. Realizar este procedimiento desde los instaladores de las distribuciones suele ser un proceso sencillo, donde en la mayoría de los casos nos aparecerá esta opción en el particionado guiado. En este breve tutorial veremos cómo separar /home de la raíz en una instalación ya hecha, un proceso que dista mucho de ser complicado pero que no es tan intuitivo como hacer un siguiente siguiente.

Para realizar el tutorial asumo que tenéis una partición destino donde alojar el directorio /home. Si no disponéis de espacio físico en vuestro disco lo que podéis hacer es redimensionar alguna partición desde, por ejemplo, GParted para así conseguirlo.

Copiar el contenido de /home

Lo primero que queremos hacer es copiar el contenido de nuestro actual /home a la nueva destinación. Para ello, antes que nada montaremos la partición destino de los datos en una ruta temporal donde sincronizaremos los archivos de una carpeta a la otra.

Para montar la partición deberemos identificar su UUID, para posteriormente usarlo en nuestro archivo /etc/fstab. Esto lo podemos conseguir con blkid, que debería dar una salida parecida a la siguiente:

1
2
# blkid
/dev/sda5: UUID=”64c3e167-8d12-4a39-9b75-8068664c3c87” TYPE=“swap” /dev/sda1: UUID=”64c3e167-8d12-4a39-9b75-8068664c3a47” TYPE=“ext4” /dev/sdb1: UUID=”acc2e167-8d12-4a39-9b75-8068664c3d54” TYPE=“ext4”

Para este tutorial usaremos como /home el disco virtual ubicado en /dev/sdb1, con UUID=acc2e167-8d12-4a39-9b75-8068664c3d54.

Una vez identificada la partición la montaremos en una ruta temporal para copiar los datos del home antiguo al nuevo. Lo primero es crear la carpeta donde lo montaremos:

1
mkdir /media/homenuevo

Para montar la partición, como siempre, abrimos nuestro archivo fstab y añadiremos una línea parecida a esta pero con nuestros datos:

1
UUID=acc2e167-8d12-4a39-9b75-8068664c3d54 /media/homenuevo ext4 rw 0 0

Donde estamos indicando que queremos montar nuestra partición destino en la carpeta que acabamos de crear. Ahora montamos la partición:

1
mount -a

Ahora, en /media/homenuevo tenemos montada la partición que posteriormente usaremos en /home.

El siguiente paso que deberemos realizar es el de “sincronizar” el contenido de /home (que es nuestro home actual) con /media/homenuevo (que será nuestro futuro home). Para ello en GNU/Linux el rey es rsync.

1
rsync -av /home/ /media/homenuevo/

Aconsejo echar un ojo a la página man de rsync a los que no conozcan la herramienta antes de ejecutar el comando. Resumiendo, lo que estamos haciendo aquí es sincronizar el contenido de /home/ en /media/homenuevo/ copiando todas las propiedades de los archivos de nuestro actual home gracias a la opción -a. Es importante no olvidar la “/” del final de las dos rutas, puesto que la ejecución del comando con o sin “/” modifica el comportamiento del comando (leer el man para más información).

Cuando el comando se haya ejecutado podemos ir a nuestro nuevo home y comprobar que todos los archivos han sido correctamente sincronizados. Una forma de no hacer esto a mano es con el comando diff, que nos ahorrará un buen rato:

1
diff -r /home/ /media/homenuevo/

Si rsync se ha ejecutado sin errores el comando diff no debería darnos ninguna salida.

Configurando la nuevo ubicación de /home

Con esto hecho ya tenemos todo lo necesario para cambiar la ubicación de nuestro /home, ahora solo falta aplicar los cambios. Primero vamos a preparar nuestro fstab para el inminente cambio. De nuevo editaremos el archivo /etc/fstab y modificaremos la línea anteriormente creada dejándola así:

1
UUID=acc2e167-8d12-4a39-9b75-8068664c3d54 /home ext4 rw 0 0

Hay que tener en cuenta que hasta que no ejecutemos el comando mount o reiniciemos la máquina los cambios no se van a ver reflejados, es por eso que es un buen momento para hacer un backup de nuestra carpeta antigua por si las cosas salieran mal:

1
mv /home /homeantiguo

Para los tiquismiquis, en realidad no estamos realizando un backup como tal, simplemente estamos renombrando la carpeta, pero en este caso eso nos servirá como backup.

Para poder montar la partición en nuestro /home necesitaremos que la carpeta esté creada, así que eso haremos:

1
mkdir /home

Montar la partición /home y comprobaciones

Para acabar de aplicar los cambios tenemos dos opciones, ejecutar “mount -a” y desmontar la partición ubicada en /media/homenuevo o simplemente reiniciar (yo recomiendo esto último).

Después de reiniciar, si todo ha funcionado correctamente no deberíamos notar nada distinto, por lo tanto si queremos asegurarnos de que la carpeta /home efectivamente está ubicada en una partición separada podemos valernos de df:

1
df -h

Que arrojará una línea parecida a esta:

1
/dev/sdb1 195M 2,3M 183M 2% /home

Después de comprobar que todo está en su sitio y funcionando podemos borrar la antigua carpeta home.

1
rm -r /homeantiguo

Con esto hecho ya podremos disfrutar de las ventajas de separar la partición /home sin la necesidad de formatear de nuevo. ¡Que esto no es Windows!