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.

 

 

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

  1. Muchas gracias, me ha servido, tanto que estoy desde la otra partición, con todo a salvo!

  2. Muchas gracias, funciona perfecto en Debian 8, ya que al formatear olvide poner el /home en una partición aparte =)

  3. como se eliminan los directorios temporales y la copia de seguridad. Disculpa es que soy novato en linux.

    • Hola Leili. Puedes eliminar un directorio/carpeta desde el entorno gráfico y también desde la terminal.
      Desde la terminal tecleando,
      rm -r carpeta_a_eliminar

      Si el directorio/carpeta que quieres eliminar requiere permisos de root, lo más sencillo es hacerlo desde la terminal,
      sudo rm -r carpeta_a_eliminar

      e introduces la contraseña en cuanto te la solicite. Cuando la introduzcas no se mostrará lo que estás tecleando, simplemente escríbela y pulsa “Enter”.

  4. Si reinstalo el SO (Ubuntu), como le indico al instalador que NO formatee la partición de /home y que más bien monte/utilice esa, esto en caso de que se haya dañado por alguna razón la instalación del SO.

    • Simplemente selecciona las particiones en las que deseas instalar tanto la raíz / como el /home original, sólo que en la del /home no marques la casilla que indica que la quieres formatear; de esta forma se instalará el SO desde cero respetando lo que tengas en la partición /home.
      Recuerda que en la partición /home existen carpetas y archivos ocultos que pertenecen a la configuración de usuario para las aplicaciones instaladas. Cuando Instales de nuevo el SO esos archivos y carpetas seguirán ahí. Si no vuelves a instalar alguna de las aplicaciones, tal vez sería interesante eliminar esos archivos que ocupan un espacio innecesario.

  5. Seguí el tutorial, pero creo que falta algo al final porque si queremos liberar el espacio ocupado por el home en la localización inicial, no podemos acceder a él si no modificamos su nombre antes de reiniciar, ya que /home despues de reiniciar apunta a la nueva localización y no a la vieja. No sé si me explico…

    • Hola power_frontier, …el espacio ocupado por el /home original.

      En estos momentos el tema me pilla un poco lejos y no querría darte una respuesta equivocada, por lo que voy a plantearlo de la siguiente manera:

      – Una vez que lo hayamos copiado a la nueva ubicación y hayamos editado el archivo fstab (punto 9.), al reiniciar, el /home que se monta es el que se indica aquí y el anterior no deja de ser una carpeta más en el equipo (aunque se llame ‘home’) por lo que no debería haber ningún problema para eliminarla.
      Si se nos plantea la duda de si prodremos identificar el ‘viejo home’ para eliminarlo, entonces al finalizar el punto (9.) podemos renombrarlo antes de reiniciar.

      Comentar también que yo he optado por copiar el contenido del /home en lugar de moverlo (6); si optásemos por moverlo, al finalizar el proceso y proceder a eliminar el /home original, no tendríamos dudas ya que la carpeta estaría vacía.

      • Primero, gracias por tu rápida respuesta. El tema ya lo solucioné por mi cuenta, aunque pensé que sería útil dejar el comentario por si alguien se encuentra en la misma situación que yo.

        Yo precisamente me encontré en el caso que comentas de no poder identificar el viejo home porque con ese nombre ya estaba el nuevo y no podía acceder a él (el viejo) por ningún medio.

        Como bien dices, hay que proceder a renombrar los homes para así hacer que el viejo no coincida con el nuevo, aunque al intentar reiniciar, la sesión gráfica se colgó (supongo que porque dependería de algún fichero de /home y no lo encontraba al haberlo renombrado) y tuve que hacer un hard-reset. Entonces todo fue correctamente. Solamente me saltó la aplicación dropbox pidiendo que accediera de nuevo a mi cuenta (que se mapeaba en /home), aunque después de identificarme también funcionó correctamente.

  6. Muchas Gracias.
    Gran tutorial, me ha servido demasiado.

  7. Muchas gracias amigo, saludos desde Villahermosa, Tabasco, México.

    Me sirvio de mucho la información que transmitiste. No la aplique para /home, sino para /var y muy feliz.
    Gracias de nuevo.

  8. quique ureña

    Gran trabajo de divulgación, muy bien explicado paso a paso. Hasta yo lo he entendido, que carezco de grandes conocimientos informáticos.

    En mi caso, lo empleé para copiar todo el directorio /home desde la partición correspondiente del disco duro primario SATA hasta el disco secundario.

    Muy agradecido.

  9. una pregunta, en estos momentos estoy necesitando la particion que me esta ocupando /home, y quiero moverla a la raiz, hice el procedimiento tal caul como lo explicas pero no me sale la carpeta home en la raiz, aunque se realiza la copia y todo, soy relativamente nuevo en linux.

    y la verdad no se que paso XDDD, cuando verifique los archivos que habia montado me arrojo la lista completa con todos los permisos pero luego al reiniciar despues de modificar el fstad todo seguia igual, espero tu respuesta gracias.

    • Hola David. Si has seguido los pasos y has podido verificar el proceso a medida que lo ibas realizando, incluso as modificado el fstab… no veo ningun motivo para que el proceso no haya concluido correctamente. Dices que al reiniciar todo sigue igual pero:

      1 – La carpeta correspondiente al /Home original sigue existiendo, a menos que la hayas borrado (no se si es el caso).

      2 – Comprueba el archivo fstab a ver si está como debiera tras el cambio. Si es así entonces el /home está en la nueva ubicación, ya que este archivo es el que se encarga de establecer los diferentes puntos de montaje durante el arranque. En el caso de que el proceso no hubiese concluído correctamente el punto de montaje definido en fstab no reflejaría una ruta correcta y el Sistema te daría error en el arranque.

  10. Excelente Post, sirvió a la primera con Ubuntu 16.04 en un SDD y datos en un HDD.
    Gracias

  11. seguí las instrucciones y en la parte final con editando el fstab, observo que en la terminal manda algunos errores que en realidad no entendí. Traté de montar en /home en una particion NTFS separada para que se utilice tanto con windows 10 que está instalado y con el ubuntu, y al reiniciar da error, me pide Crtl-D para tratar de continuar o enter para mantenimiento, sin embargo no logro entrar a ubuntu después de eso, se agradece si me pueden ayudar

  12. Genial amigo, tenía algunas dudas y leyendo tu post se me aclaro casi todo, solo tengo un asunto por resolver que por mas que intento documentarme no logro encontrar la solución o sera que no he buscado en el lugar correcto, sea como sea he intentado compartir archivos en red de mis discos duros pero al final siempre llego al mismo punto, puedo poner compartir en red cualquier archivo del disco duro en donde tengo /Home, es decir dev/sda si puedo compartir lo que sea, pero sdb, sdc, sdd, sde, sdf nada, puedo poner compartido cualquiera pero al acceder solo si accedo como como el usuario administrados con contraseña puedo abrirlos, si cualquier otro miembro intenta solo ve el que el directorio compartido ahí esta pero no puede abrirlo, incluso en el mismo equipo otros usuarios estandar ni siquiera pueden acceder a los otros discos duros, ya intente de todo pero soy novaton y estoy frito, sera que me puedas dar una pista de como hacerlo?, de antemano gracias.

    • Hola Alberto,
      Yo también tengo un segundo disco en el equipo, al cual sólo tienen acceso los usuarios con privilegios de administrador. En mi caso es lo que quiero ya que no deseo que otros usuarios puedan acceder a su contenido. Tal es así que, la verdad, nunca me he preocupado de ver la manera de proporcionar acceso al mismo por parte de otros usuarios. Cuando tenga algo de tiempo lo miraré y si no es demasiado tarde, trataré de darte una respuesta sobre este tema.
      Un saludo.

  13. Hola Greiscool, una consulta. Yo lo que quiero es lo opuesto a lo que el artículo explica.

    Quiero volver a unir las particiones “/” y “/home” en una misma particion de un disco SDD, de manera de incluir el sistema y la configuración de usuario (.config, .local, etc.) dentro de la misma partición.

    Y despues redireccionaré las carpetas personales de datos (Descargas, Documentos, etc.) a otro disco HDD editando “~/.config/user-dirs.dirs”, con enlace a los archivos contenidos en el disco, de manera que los archivos en ese disco no tengan relación con el sistema.

    Como lo hago?

    Gracias por tu ayuda. Saludos.

    PD: Es posible clonar la partición “/” de un disco HDD a otro SDD y que siga siendo funcional el sistema? Para no tener que reinstalarlo.

    • Hola Cristhian,
      El tema me queda un poco lejos en el tiempo y aunque sí he realizado el proceso inverso, no lo recuerdo con claridad.

      ===========================================================
      IMPORTANTE

      A.- A mi me gusta trastear y no me preocupa en exceso si tengo que recuperar el Sistema en caso de fallo.
      B.- De querer hacerlo, seguiría los puntos del artículo, con un par de consideraciones:
      – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

      1.- Seguiría los puntos hasta el 5º
      2.- En el 5 montaría directamente el /home en /mnt
      3.- Seguiría a partir de ahí pero:
      – Renombraría el actual /home (lo borraría después si todo sale correctamente)
      – Editaría el fstab comentando la referecnia al /home (la eliminaría después si todo sale correctamente).
      ===========================================================

      Pero como te decía, a mi me gusta trastear, no puedo afirmalor con rotundidad porque de eso hace ya mucho tiempo… hacerlo depende de tí

      En cuanto a lo de mover la raiz “/” a otro disco, claro que es posible, lo que ocurre es que para explicar el proceso necesitaría todo un artículo y lamentablemente en estos monentos no dispongo de tiempo… aunque es un tema que sí tengo pensado desarrollar.

  14. Excelente información me ayudo mucho pasando mi /home a otro disco duro. Pero ahora tengo otro problema con una canaimita que no se si me podrían ayudar, le he formateado para instalar linux y windows y copie el archivo de los contenidos educativos en /usar/share/contenidos educativo. Pero ahora se que mas hacer para que esto me funcione y los niños puedan habrir sus programas.

  15. Muchas gracias. Magnífica explicación

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 )

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 )

Google+ photo

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

Conectando a %s