Mover el /home a otra partición o disco

Cuando instalamos un Sistema Operativo GNU/Linux, sabemos que lo primero que debemos hacer para poder utilizarlo es dar formato, si es que aún no lo tiene, al dico duro (HDD). A continuación instalamos el SO. Finalmente nos ponemos a trabajar y lo habitual es que guardemos nuestros archivos en carpetas dentro del propio disco. En los sistemas GNU/Linux, como por ej. Ubuntu, las cuentas de los usuarios se ubican en el directorio /home, que por defecto se instala en el directorio raíz’/‘. Si en un momento dado nos quedamos sin espacio, si se nos estropea el disco o si tenemos un problema grave que nos obliga a formatear el disco o a reinstalar el SO, corremos el riesgo de perder todo nuestro trabajo,a no ser claro está que tengamos una copia de seguridad.Si realizamos una o varias particiones en el disco, aunque físicamente tengamos un único disco, el SO verá tantos discos como particiones le hayamos hecho. De tal forma que podemos instalar el directorio raíz “/” en una de ellas y el /home en otra. De esta manera si fuese necesario reinstalar el SO, o formatear la partición en la que está instalado, las demás particiones se comportarán como discos distintos y no se verán afectadas.

Vamos a ver un método para cambiar la ubicación de nuestro /home, independientemente de si lo tenemos en el directorio raíz “/” o en otro directorio.

 

PROCEDIMIENTO

1. Comprobamos las unidades o particiones actuales en nuestro sistema.

2. Decidimos en que partición o en que disco vamos a ubicar nuestro /home

3. Haremos una copia de seguridad del /home (es aconsejable, aunque no es imprescindible)

4. Creamos un directorio temporal /mnt/home

5. Montamos la partición  que albergará nuestro /home en el directorio temporal /mnt/home

6. Copiamos el /home actual al directorio temporal /mnt/home

7. Comprobamos que la copia de los archivos se ha realizado correctamente, incluyendo los permisos correspondientes.

8. Desmontamos el directorio temporal /mnt/home

9. Editamos el archivo fstab para incluir el nuevo punto de montaje de /home

10. Reiniciamos el equipo.

11. Eliminaremos el directorio temporal /mnt/home

 

COMENZAMOS
1 . Comprobamos las unidades o particiones actuales en nuestro sistema.

Encendemos el equipo, entramos en nuestra cuenta de usuario, nos vamos a una terminal y tecleamos:

sudo blkid

con lo que obtendremos una salida “similar” a la siguiente (dependerá de la estructura de directorios de nuestro Sistema)

/dev/sda1: UUID=”238214e1-8fae-4483-b13f-5e5f622cfbcc” TYPE=”ext4″
/dev/sda2: UUID=”e926c534-9315-434c-91bc-edc6adb331ca” TYPE=”swap”

sda identifica el tipo de disco que tenemos instalado. Si tuviésemos varios discos, cada uno vendría identificado como sd seguido por una letra: sda, sdb, sdc…o como hda, hdb… dependiendo del tipo de disco. Y cada partición viene identificada por un número; en este ejemplo, sda1, sda2.

UUID (Universally Unique Identifier) es un identificador único asociado al disco/partición. Este valor es único para cada disco y cambia cada vez que demos formato al mismo, por lo que deberemos tener esto presente.

TYPE es el tipo de partición (ntfs, vfat, ext4, ext3, swap), en este caso ext4.

Según el ejemplo,  /dev/sda1 es la partición donde tenemos nuestra instalación de Ubuntu y es donde inicialmente se encuentran el directorio raiz (root o /) y el directorio /home. En la partición /dev/sda2 se ubica la memoria de intercambio (swap).

 

2. Decidimos en que partición o en que HDD vamos a ubicar nuestro /home.

Podemos utilizar la herramienta Gparted para crear, definir el tamaño y tipo de partición sobre el disco duro actual, o bien para dar formato a un nuevo disco. Se encuentra en el Centro de software de Ubuntu.

Finalizada la preparación de la nueva partición o del nuevo disco duro, comprobamos la estructura de particiones/discos, de nuevo tecleando en la terminal

sudo blkid

Ahora vemos que ya nos aparece una nueva partición /dev/sda3.  Tendremos presente la información que nos muestra ya que la vamos a necesitar para establecer la nueva ubicación del /home.

/dev/sda1: UUID=”cade8df9-bc05-4e1f-8684-ab11df7dbf6d” TYPE=”ext4″
/dev/sda2: UUID=”48f6fac2-ec88-4525-946b-afe1438cb5f0″ TYPE=”swap”
/dev/sda3: UUID=”g6dsa2e2-7281-4ba0-8e32-7385f6ac4b30″ TYPE=”ext4″

 

3. Inicialmente podemos optar por hacer una copia de seguridad del /home.

Podemos hacerla en el directorio raíz ‘/‘, en otra partición, en un disco externo, DVD, unidad de red.

Creamos un directorio donde copiaremos el contenido:

sudo mkdir /home.copia/

hacemos la copia.

sudo cp -av /home/* /home.copia/

   es un simple quión que precede a las opciones del comando

a   equivalente a (dpR) indica que debe copiar el contenido del /home manteniendo la estructura original de directorios, incluyendo atributos y permisos.

v   (verbose) indica que se mostrará en pantalla el proceso de copia).

(MUY IMPORTANTE: Debemos poner /home/* para que se copie el contenido en /home.copia, de no hacerlo así lo que ocurriría es que se copiaría el directorio /home dentro de /home.copia, en lugar de copiarse su contenido, con lo que el resultado final sería /home.copia/home)

 

4. Creamos un punto de montaje temporal para el /home

El directorio /mnt  se utiliza normalmente para montajes temporales de unidades (discos duros y particiones) en el sistema.

sudo mkdir /mnt/home

 

5. Montamos la nueva unidad (partición o disco) que albergará nuestro /home en el directorio temporal.

Utilizamos la información sobre la partición, proporcionada anteriormente por el comando blkid

sudo mount  /dev/sda3    /mnt/home

 

6. Hacemos una copia del /home  actual en el punto de montaje temporal   /mnt/home

sudo cp -av  /home/*   /mnt/home

(MUY IMPORTANTE: Debemos poner  /home/*  para que se copie el contenido en  /mnt/home, de no hacerlo así lo que ocurriría es que se copiaría el directorio  /home  dentro de  /mnt/home   en lugar de copiar su contenido, con lo que el resultado final sería  /mnt/home/home)

 

7. Comprobamos que la copia de los archivos se ha realizado correctamente, incluyendo los permisos correspondientes.

ls -l  /mnt/home/nombre_usuario

El comando anterior nos proporciona una lista de directorios y carpetas indicando, entre otra información, el propietario de los mismos y el tipo de permisos. Si hemos realizado la copia tal y como se indica en el punto (6.) no debería haber ningún problema.

 

8. Desmontamos el punto de montaje temporal.

sudo umount /mnt/home

        • Editado 11/06/2016 – – – –

Si hemos optado por hacer una ‘copia’ del /home a la nueva ubicación en lugar de ‘moverlo’, la carpeta /home original seguirá existiendo al reiniciar el equipo; deberíamos borrarla o al menos renombrarla para que podamos identificarla cuando reiniciemos.


 

9. Editamos el archivo fsbab para indicar el nuevo punto de montaje del /home

fstab es un archivo de configuración que se encuentra dentro del directorio  /etc  que indica al SO cómo se montarán las particiones para que se pueda acceder a su contenido. En la terminal tecleamos

sudo gedit /etc/fstab

Tomando la información que nos ha proporcionado anteriormente el comando blkid y siguiendo el ejemplo de nuestra estructura de particiones/directorios, la línea a incluir tendrá el formato:

Archivo  fstab

 IMPORTANTE: debemos tener en cuenta que los parámetros asociados a la nueva línea que indica el punto de montaje del /home , <options>, <dump> y <pass> pueden variar dependiendo de la versión del SO. Si no ponemos los parámetros correctos corremos el riesgo de que al reiniciar no se monte el /home.

Guardamos los cambios en el archivo fstab

 

10. Reiniciamos el equipo.
Ahora tendremos el directorio /home ubicado en la partición /dev/sda3, que a ojos del SO es otro disco diferente, totalmente independiente del directorio raíz ‘/‘. Podremos reinstalar el SO e incluso formatear el directorio raíz sin que nuestro /home se vea afectado.

 

11. Eliminaremos el directorio temporal /mnt/home.

Si todo ha salido bien eliminamos el directorio temporal /mnt/home y si lo deseamos también podemos eliminar la copia de seguridad del /home.copia que hicimos en un principio.

 

El procedimiento es el mismo tanto si  /home está ubicado originalmente en el directorio raíz “/“, en una partición del mismo disco, o en otra partición/disco.

 

 

Anuncios

Publicado el 28 marzo, 2015 en Linux, Ubuntu y etiquetado en , , , , . Guarda el enlace permanente. 37 comentarios.

  1. Muchas gracias por compartir, muy bien explicado, todo salió bien a la primera!

  2. Muchas gracias por compartir. Además del /home, también moví el /var usando las mismas instrucciones.

  3. Hola, buen día.

    Realicé todos los pasos acorde al tutorial, sólo que en el archivo /etc/fstab en lugar de tener solo “defaults” tengo “defaults,relatime,errors=remount-ro”, especifico esto porque es mi única diferencia, pero lo que sucede al reiniciar es que la partición se monta bien en /home pero no me deja realizar cambios de ningún tipo ni ver los archivos, tengo falta de permisos. Intento modificar los permisos mediante “chmod -Rf 777 /home” (y otras variantes) pero no ocurre nada.

    • Hola greeny18.
      Si has seguido los pasos el home debería tener los permisos correspondientes.

      Parece que lo que te está ocurriendo es que detecta algún tipo de error y entonces actúa la opción “errors=remount-ro” => Lo que hace es forzar el montaje como sólo lectura (ro).

      Cómo no puedo saber qué es lo que causa el error, yo forzaría un chequeo de particiones:

      1.- Abrir En una terminal:

      sudo touch /forcefsck

      Ésto forzará una verificación del sistema de archivos de todas sus particiones en el próximo arranque…. le va a llevar un tiempo….

      2.- Cuando termine el proceso anterior, reiniciar el equipo.

      Comprueba si se ha solucionado el problema.

  4. Hola, tengo un portátil con instalación dual junto con Ubuntu.

    Este proceso lo he llevado a cabo porque quiero que los SO arranquen con SSD y el almacenamiento vaya al HDD.

    En principio y después de algún fallo por mí culpa lo logré con éxito y ambos sistemas funcionaban correctamente pero después de dos días al ejecutar Ubuntu sale el logo de ubuntu con los puntitos debajo como so caegara pero después de eso se abre el emergency mode.

    Qué solución puedo tener?

    Gracias de antemano.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s