PDA

Ver la Versión Completa : COMO separar la carpeta /home del directorio raíz /



DiabloRojo
01-may-2008, 19:59
Este manual sirve para separar vuestra carpeta personal (/home) existente dentro de la misma partición del sistema: directorio raíz o directorio / para eso deberéis tener libre una partición formateada preferentemente en formato ext3.

No explicare las ventajas, que son muchas, e inconvenientes, pocos, de tener una partición exclusiva para el directorio /home y otra partición para el directorio /

Todo esto se puede hacer desde una consola virtual (caso A) o desde un terminal de vuestro entorno gráfico favorito (caso B), el único requisito es que cualquier usuario del /home NO debe estar conectado.

Caso A)
Entrar como superusuario root, para tumbar el servidor gráfico con el siguiente comando

init 3Caso B)
Salir del entorno gráfico como usuario: Inicio->Terminar->"Terminar sesión actual", una vez que os aparezca la pantalla del Login entrar como superusuario root para abrir un terminal.

NOTA: marco en negrita el comando ejecutado y, a continuación, su salida si lo hubiera sino solo aparecerá el comando

En ambos casos verificar que ningún usuario, salvo el administrador root este conectado.

w
18:44:21 up 1:17, 4 users, load average: 0,05, 0,25, 0,27
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root :0 17:27 ?xdm? 2:17 0.24s /bin/sh /usr/X11R6/bin/kde
root pts/1 17:28 1:15m 0.00s 4.05s kded [kdeinit]
root pts/2 18:36 7:19 0.02s 0.02s /bin/bash
root pts/3 18:44 0.00s 0.01s 0.00s wFijaros en la columna USER, vemos que no hay otro usuario, salvo el superusuario root, conectado.

A continuación os pongo un caso practico y real ya que lo acabo de hacer con mi viejo portátil, tener en cuenta que la nomenclatura de las particiones puede cambiar según como lo tengáis en vuestra computadora y que openSUSE tenéis instalado.


fdisk -l

Disk /dev/hda: 60.0 GB, 60011642880 bytes
255 heads, 63 sectors/track, 7296 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 1 4878 39182503+ 7 HPFS/NTFS
/dev/hda2 4879 6023 9197212+ 83 Linux # Partición raíz o /
/dev/hda3 6024 7165 9173115 83 Linux # Partición vacía donde ira la nueva carpeta /home
/dev/hda4 7166 7296 1052257+ f W95 Ext'd (LBA)
/dev/hda5 7166 7296 1052226 82 Linux swap / SolarisEn la 2ª partición primaria (hda2) esta el directorio / con la carpeta /home que vamos a copiarla a la 3ª partición primaria (hda3). Este otro comando confirma que el directorio / esta en hda2.

df -H
S.ficheros Tamaño Usado Disp Uso% Montado en
/dev/hda2 9,5G 8,1G 1,4G 86% /
tmpfs 397M 0 397M 0% /dev/shm
/dev/hda1 41G 40G 658M 99% /windows/CCreamos una carpeta temporal para el montaje del nuevo /home

mkdir /mnt/hda3Montamos la partición vacía o 3ª partición donde copiaremos nuestro viejo /home en la carpeta creada

mount -w /dev/hda3 /mnt/hda3Copiamos, mejor dicho sincronizamos, el contenido de la carpeta /home a la nueva ubicación, copiando symlinks, permisos, etc.... de los archivos y carpetas existentes.
Nota: ¡el carácter "/" debe estar presente al final de las dos carpetas!

rsync -axv /home/ /mnt/hda3/
...............
...............
sent 890585473 bytes received 312062 bytes 3614188.78 bytes/sec
total size is 889521934 speedup is 1.00Verificar con vuestro navegador de archivos (konqueror u nautilus) de que sea copiado correctamente.

Desmontamos la carpeta creada ya que no necesitamos el nuevo /home, de momento

umount /dev/hda3Ahora actualizar el archivo /etc/fstab para crear un punto de montaje para el nuevo /home con vuestro editor favorito para añadir una linea nueva como esta:

/dev/hda3 /home ext3 defaults 1 2Vamos a montar el nuevo punto de montaje creado

mount /dev/hda3 /homeVerificamos y nos aseguramos de que funciona

mount
/dev/hda2 on / type reiserfs (rw,acl,user_xattr)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
tmpfs on /dev/shm type tmpfs (rw)
devpts on /dev/pts type devpts (rw,mode=0620,gid=5)
/dev/hda1 on /windows/C type ntfs (ro,noexec,nosuid,nodev,gid=100,umask=0002,nls=utf 8)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/hda3 on /home type ext3 (rw)Vemos en la ultima linea que esta correctamente montado.

Ahora revisamos los archivos bajo /home para asegurarse de que todo esta correcto. Si no es así, parar, volver atrás, y encontrar el error. Si el nuevo /home está en funcionamiento, ya podemos borrar el /home de la partición /.

Desmontamos el nuevo /home

umount /dev/hda3Borramos el viejo /home y su contenido del directorio raiz /

rm -rf /homeCreamos una nueva carpeta /home

mkdir /homeNos aseguramos de que son correctos los permisos de la carpeta /home

chmod 755 /homeAhora activamos el nuevo /home, listo para que lo utilicen los usuarios de openSUSE

mount /dev/hda3Por fin, podemos entrar como usuario, para eso
Caso A)
Volver a levantar el servidor gráfico con el comando

init 5Caso B)
Salir del entorno gráfico que entrasteis como root y volver a entrar como usuario.

Una vez, entrado como usuario comprobamos el nuevo sistema de particiones, donde aparece la nueva partición que apunta a la nueva carpeta /home

df -H
S.ficheros Tamaño Usado Disp Uso% Montado en
/dev/hda2 9,5G 7,0G 2,5G 74% /
tmpfs 397M 0 397M 0% /dev/shm
/dev/hda3 9,3G 1,1G 7,7G 13% /home
/dev/hda1 41G 40G 658M 99% /windows/CAÑADIDO, gracias a karlggest, leerlo AQUI
(http://www.forosuse.org/forosuse/showpost.php?p=142649&postcount=10)
La mejor idea es comprobar que dicha partición se va a montar cada vez que se arranque y que no hay dificultades añadidas por opciones adicionales que usemos -pienso en los prueba y error para particiones NTFS, por ejemplo:

mount -a Este comando monta todo lo que está configurado para montar en el arranque.

En caso de no haber opciones adicionales que puedan suponer un problema al montar durante el arranque, bien, también es más cómodo escribir simplemente este comando que montar el anterior.

Si buscáis por Internet daréis con muchas formas de hacerlo, este manual esta basada en la forma que lo explica en este foro:
Home directory on separate partition (http://www.linuxquestions.org/questions/linux-newbie-8/home-directory-on-separate-partition-627445/)

maubalder
14-oct-2008, 23:26
gracias por este tuto.
Muy bien explicado, claro y conciso! :dedosarri

Highlander
20-jul-2009, 09:29
Excelente tutorial!

lo seguí paso a paso, tenía sólo una partición /, y conseguí conseguí mover mi home a un nuevo HD... 100% perfecto

como diríamos acá en Chile: resultó impeque!

GRACIAS

mirasu
26-sep-2009, 11:49
Hola DiabloRojo

quiero hacerselo a un amigo, para poner /home en un raid0 por software, espero que asi le vaya mas rapido el ordenador.Pero tengo algunas dudas.

Me gustaria que explicaras cuales son las ventajas y contras de separar el /home

inconvenientes puede ser tener demasiado espacio en / y hacerte falta mas espacio en /home? esto se podria solucionar?

ventajas puede ser poder formatear el / e instalar de nuevo? todo quedaria igual?

y por ultimo que espacio recomendais para el / ?

CR_
01-oct-2009, 08:17
muy interesante,gran aporte Diablo Rojo!!.
Para los interesados investiguen sobre gparted(la nueva version soporta etx4), es muy potente...permite redimensionar(acoplar espacio libre tanto al inicio o al final) de "/","/home",eliminar particiones,mover la swap...no se olviden de editar fstab.anda de lujo.
Saludos!

ariellovera
01-oct-2009, 13:22
Diablillo, muchas gracias por este tuto, ahora voy a tomar coraje y voy a particionar mi /home

tranzorx
21-nov-2009, 23:27
Hola a todos.
Con la venida del nuevo Suse-11.2 y el nuevo sistema de archivos Ext4 he tenido el problema a la inversa.
Tengo el "/home" en una partición independiente del resto del sistema raiz "/".
He efectuado una instalación partiendo de cero del nuevo Suse, pero aprovechando el "/home/user" con el fin de respetar todas las configuraciones personalizadas del sistema.
Entonces me he encontrado con el problema de tener el sistema raiz en Ext4 y el "/home" en la otra partición con el antiguo Ext3.
Me ha sido de mucha utilidad este tutorial a la hora de tomarlo como referencia para copiar la partición del /home en la misma que el raiz, efectuar el formateo de la primera al nuevo sistema, y volver a separar /home a la nueva partición recién formateada.
No sé si habrá alguna forma más sencilla de efectuar dicha tarea, así es como yo lo he hecho.

Si existe alguna forma mejor, agradecería cualquier comentario al respecto.
¡¡Un saludo!!

P.D.:
He probado a copiar con "rsync -axv" a una unidad con formato "vfat" o "ntfs", pero me han empezado a aparecer errores por doquier y finalmente opté por la solución indicada.

DiabloRojo
22-nov-2009, 10:27
Buena idea, eso de hacerlo a la inversa, pero para mi no tiene importancia que el /home este en una partición etx3 y no en una ext4 como lo tengo yo.

hurior
06-jun-2011, 12:27
Funciona a la maravilla, muchas gracias DiabloRojo, como siempre, perfecto a la primera, gracias.

karlggest
13-jul-2011, 10:09
Una pequeña sugerecia para comprobar si la partición se monta... bien, es posible que alguno añada alguna opción inusual al montaje, o quiera aprovechar lo que aquí se dice para alguna otra partición... el caso es que en lugar de montar manualmente según hemos añadido la línea correspondiente en /etc/fstab, siguiendo el ejemplo:
mount /dev/hda3 /homeEs mejor idea comprobar que dicha partición se va a montar cada vez que se arranque y que no hay dificultades añadidas por opciones adicionales que usemos -pienso en los prueba y error para particiones NTFS, por ejemplo:
mount -aEste comando monta todo lo que está configurado para montar en el arranque.

En caso de no haber opciones adicionales que puedan suponer un problema al montar durante el arranque, bien, también es más cómodo escribir simplemente este comando que montar el anterior.

Salud!!

karlggest
15-jul-2011, 12:33
Para que esto lo podamos aplicar a cualquier otro sistema de ficheros (p. ej. /usr), debemos hacer una observación y añadir algún matiz.

Para modificar /home en este hilo cambiamos al nivel de ejecución 3 (multiusuario con red) y nos registramos en el sistema como root. Así, no estaremos haciendo uso de /home y podremos modificarlo como necesitemos. En el hilo, hablamos de extraerlo de la partición raíz para tenerlo en una partición separada, pero si lo que deseamos es cambiarlo de partición simplemente tenemos que montar nuestra nueva partición, copiar los datos allí y eliminar lo que ya es innecesario en /home. Finalmente, basta con montar la nueva partición en /home de la misma forma que hacíamos en el caso del hilo.

El punto importante es que /home no puede estar en uso para modificarlo. Esto lo conseguimos iniciando en el nivel 3 y registrándonos como root. ¿En qué afecta esto para el resto de ficheros?

De nuevo, no puede estar en uso. Pongamos por caso que queremos cambiar la partición de /usr; lo más simple es usar un disco de arranque que disponga de las utilidades de sistema (fdisk, mount, cp,...). Si lo queremos hacer con el sistema que usamos, no bastará con cambiar al nivel 3, pues el sistema seguirá usando /usr. Así que podemos copiar los archivos de /usr al nuevo dispositivo, y luego modificamos la entrada de /etc/fstab (o añadimos una nueva). Si se hace bien, con mucho cuidado podemos eliminar estos archivos... claro que yo aconsejo que temporalmente simplemente cambiemos el nombre de la carpeta (p.ej. viejo_usr).

Puede que os estéis preguntando, ¿y el matiz? je, bien... tanto si eliminas el contenido de /usr como si le cambias el nombre, en ese momento no podréis acceder a cualquier cosa que esté en /usr, naturalmente. Esto es posible soslayarlo, quedan a la imaginación del lector las posibilidades... pero no lo olvidéis!!

Salud!!