Cómo cambiar /home a una partición nueva (o clonar partición)
Alguna vez en la vida os habréis encontrado con la necesidad de copiar el contenido de una partición de un sitio a otro. Esto que en otros sistemas operativos se hace con una conocida aplicación propietaria con su disco de arranque, en los sistemas unix se puede hacer fácilmente.
Los pasos previos son la parte más larga, necesaria en cualquier caso. Primero tenemos que tener claro de dónde a dónde vamos a mover lo que sea. Supongamos que tenemos un sistema linux instalado en nuestro disco duro, en una partición única, y queremos separar /home a una partición nueva. Si sólo tenemos ese disco y queremos hacer esas nuevas particiones, tenemos que dejar algún espacio donde crear la nueva. Para eso hemos de reiniciar con un disco, por ejemplo el CD en vivo de Ubuntu, y abrir el gestor de particiones de Gnome (gparted). Con él habría que redimensionar la partición y crear la nueva. Tenemos que fijarnos bien en el nombre de la nueva. Ver aquí sobre los tamaños adecuados.
Esto tiene riesgos; podría salir mal (muy muy mal) y pueden perderse todos los datos, así que con un solo disco duro, tocar algo siempre es arriesgado. Lo mejor es siempre tener un respaldo en otro disco por si hubiera algún problema. Además, dependiendo del espacio que tengamos ocupado en el disco el asunto puede complicarse hasta el punto de ser imposible. Tenemos que reducir la partición que tenemos y nos tiene que quedar sitio para poder mover /home a esa partición nueva. Si no hay espacio, o lo hacemos progresivamente (mover poco a poco y redimensionar varias veces) o hay que usar necesariamente otro disco. No pueden hacerse milagros.
Una vez tenemos claro de dónde a dónde vamos a mover, tenemos que tener montada la partición nueva para poder copiar a ella los archivos.
donde nombredelapartición será el nombre de la nueva partición que hemos creado, y nuevapart un directorio que habremos creado (sudo mkdir (/mnt/nuevapart) dentro de /mnt con objeto de montarla aquí.
Finalizados los pasos previos, empezaremos a copiar los archivos. Esto puede hacerse desde el CD en vivo o desde el sistema instalado, pero si es este segundo caso, sería recomendable pasar al modo monousuario, para evitar problemas:
Vamos al directorio origen, en este caso /home y empezamos a copiar
cp -ax . /mnt/nuevapart
Ya está copiado. Esta última orden es la que sirve para clonar. ATENCIÓN AL ".". Aunque este método ya está probado, siempre hay que comprobar que no nos hemos equivocado en algo (o que el que escribe se ha dejado algún detalle) antes de continuar. Podemos usar esto para crear respaldos. Y si queremos mantener una copia de seguridad continua, añadiríamos el parámetro "u", que sólo copia en caso de haber archivos más nuevos que los del destino.
Ahora queremos seguir con el cambio de sitio de /home. Tenemos que hacer que se monte al arrancar el sistema (primero la montamos para tenerla ya), y renombrar el /home viejo para que no moleste. Podremos borrarlo cuando acabemos, o dejarlo como respaldo.
mv /home /home.viejo
mkdir /home
mount /dev/nombredelapartición /home
Salimos del modo monousuario:
Ahora tenemos que editar el /etc/fstab, que es el archivo donde se le indica al sistema dónde se montan las particiones.
Usamos el editor que queramos:
Y añadimos esta linea al final.
(Actualizado 01/02/2008) Éste es el método antiguo. Si queremos usar identificadores únicos (UUID), en lugar de /dev/nombredelapartición habrá que poner el chorro de letras que nos de tras UUID esta orden:
O nos fijamos en la línea correspondiente de ésta, que nos da todos:
Hecho. Al reiniciar tendremos todo funcionando exactamente igual, pero con particiones separadas, más seguro.
17 comentarios:
Hola,
Me queda la duda de para qué sirve exactamente el parámetro "-x" de cp. Supongo que es innecesario si se pasa de una partición ext3 a otra... ¿o no?
Tampoco he entendido para qué sirve el punto ".".
Un saludo.
La x es para que sólo copie la partición actual. Podría pasar que tuvieras alguna partición montada dentro de /home (por ejemplo NFS o samba) y esto evita que se copie.
El punto se refiere a que el origen de la copia será el directorio actual, por lo que copiará todo lo que éste contiene, incluyendo archivos ocultos.
me gustaria saber si es posible hacerlo en una particion en fat32 o ntfs, es q me gustaria tener mis documentos de windows tambien dirigidos a una tercera particion
por favor ponte en contacto conmigo.
mi email esta en mi perfil de blogger
Casi me quedo sin home (no podía ingresar) al aplicar esto
cd /
mv /home /home.viejo
mkdir /home
mount /dev/nombredelapartición /home
Tuve que hacer el proceso inverso para recuperar el home. Y sólo lo recuperó de manera parcial (sin los archivos y la configuración, tuve que copiarlo luego en modo gráfico usando sudo nautilus).
Me parece que antes de hacer esto se debe ingresar de nuevo al modo gráfico y editar el fstab para indicar la ubicación del nuevo home. Pero todavía no he probado.
Además, por alguna razón que desconozco cp -ax . /mnt/nuevapart no copió el home a la nueva partición (que la tengo montada en /media/pasar y corresponde a la partición /dev/sda9).
mon-xas:Sobre lo de ntfs o fat32, hay problemas con este método por cuestión de tablas de caracteres. Hay errores con los nombres de archivo que tengan espacios o tildes.
carlos-cr: Creo que no entiendo bien lo que dices. ¿Lo has montado en /media/pasar? Entonces habrás puesto "cp -ax . /media/pasar", ¿verdad?
Sobre lo que dices del proceso inverso, no puedes haber perdido ningún archivo. Simplemente has cambiado el nombre de un directorio y has montado otro en su lugar. Los datos siguen ahí. Precisamente lo hago así para asegurar los datos ante cualquier fallo.
Hola:
he leido el articulo y quisiera saber si hay alguna forma de ganar espacio en el disco para cambiar /home de lugar, logicamente sin reiniciar con Live CD. Dispongo de 400 Gb aproximadamente pero cuando abro "gparted" no me deja rediemsionar nada.
El disco tiene una particion primaria que es la que queiro dimensionar y otra extendida donce reciden swap y ttres particionaes logicas de una version anterior de Ubuntu
muchisimas gracias, mi nomnbre es Eduardo Jorge-C.Riv-Argentina
Eduardo, si no reinicias con un disco no puedes modificar las particiones, porque están en uso.
De acuerdo, la otra duda es referida al espacio Si bien el disco tiene espacioo esta disponible en la particion promaria raiz ò sino en la particion extendida donde estan las particiones logicas swap y otras 3 de una instalacion anterior (fundamentalmente /home antigua. Que sugieres que deberìa hacer, entiendo que si no elimino alguna no dispondrè de espacio para modificar nada.
Disculkpa si no entiendes
Saludos, Eduardoapaincomdevers
Recapitulando. Si estás con el sistema iniciado, las particiones del sistema no las puedes modificar, pero sí otras que tengas aparte. O sea, que si tienes la partición / y la swap de tu sistema, en gparted verás un icono que las marca como en uso. Si tienes otras aparte y están montadas, simplemente tienes que desmontarlas, para modificar su tamaño o eliminarlas y crear otras. Date cuenta que cuando arrancas con un disco, si tienes una partición de intercambio, ésta es posible que se aproveche y que tengas que desactivarla (en el propio gparted). Siempre que no sean particiones en uso, las puedes modificar como te venga en gana, cambiando el tamaño o eliminando.
Como comento en el artículo, lo de ir redimensionando progresivamente unas y otras puede ser un proceso interminable. Quizá deberías reducir la raiz y unificar las demás (eliminarlas y crear una nueva). Ya que son de una versión anterior, puedes eliminarlas y crear una nueva.
Lo ideal sería que tuvieras otro disco para mover los datos de /home (y para copias en general) y luego restaurarlos una vez hechos los cambios.
Buenas tardes:
he desmontado una partición de las tres que dispongo para ganar espacio y supongo que debo eliminar las lineas del archivo fstab para que en el reinicio no vuelvan a montarse.
Esta es la particion que desmonte
#Entry for /dev/sdb5 :
UUID=894b2cac-edb4-dfac-3696-aea5da39b01a /media/sdb5 ext3 defaults 0 2
Si todo funciona como espero y efectivamente en el reinicio no se montan las particiones , las puedo boorar y ya tendrìa lugar para fredimensionar, pero como obtengo el còdigo UUID para la nueva particion
Gracias, Eduardo
Hola: espero no cansar con mi cháchara... pero desmonte tres particiones y no las borre, En el reinicio evite que se monten automáticamente. Después de intentar borrarlas , la partición de intercambio cambiaba de nombre desde sdb8 a sdb5, asi que cancele todo por que aún guardando los cambios y editando el fstab , me quedaba la duda si el UUID asignado cambiaba automáticamente al reiniciar el sistema y entraba a Linux de forma adecuada o se mantenía el UUID original y ello imposibilitaba acceder a Linux.
No conforme con ello, volví a reiniciar desde el DVD live de Linux y trate de redimensionar la partición raíz para ganar espacio a fin de reubicar /home, pero al aceptar los cambios la primera operación en Gparted que se encarga de verificar si hay errores en los discos indico la existencia de uno y no pude redimensionar nada. Tengo algunos accesos directos a otros discos con formato NTFS , no se si ello puede ser una de las causas del error.
Si pueden brindarme ayuda, bienvenida sea.
Muchas gracias, Eduardo
Hola: nuevamente Eduardo...
el error que indique en mi mensaje anterior figura en el suguiente texto
y al final comenta algo sobre el sistema de archivos y la cantidad de bloques.... En fin gracias nuevamente
GParted 0.3.5
Libparted 1.7.1
Mover /dev/sdb1 a la izquierda y reducirlo de 412.22 GiB a 369.35 GiB 07:52 ( ERROR )
calibrar /dev/sdb1 00:00 ( SUCCES )
ruta: /dev/sdb1
inicio: 63
fin: 864489779
tamaño: 864489717 (412.22 GiB)
calcular el tamaño nuevo y la posicion de /dev/sdb1 00:00 ( SUCCES )
inicio solicitado: 0
fin solicitado: 774590039
tamaño solicitado: 774590040 (369.35 GiB)
nuevo inicio: 63
nuevo final: 774590039
tamaño nuevo: 774589977 (369.35 GiB)
comprobar errores en el sistema de archivos en /dev/sdb1 y (si es posible) arreglarlos 03:56 ( SUCCES )
e2fsck -f -y -v /dev/sdb1
Paso 1: verificando nodos i, bloques y tamaños
Paso 2: Se verifica la estructura de directorios
Paso 3: Se revisa la conectividad del directorio.
Paso 4: revisando las cuentas de referencia
Paso 5: Se revisa el resumen de informacion del grupo
250187 inodes used (0.93%)
3261 non-contiguous inodes (1.3%)
# of inodes with ind/dind/tind blocks: 15146/566/0
6849501 blocks used (6.34%)
0 bad blocks
2 large files
197853 regular files
24235 directories
70 character device files
26 block device files
2 fifos
819 links
27254 symbolic links (25091 fast symbolic links)
738 sockets
--------
250997 files
e2fsck 1.40.8 (13-Mar-2008)
encoger el sistema de archivos 00:00 ( ERROR )
resize2fs /dev/sdb1 387294988K
resize2fs 1.40.8 (13-Mar-2008)
Por favor ejecute antes 'e2fsck -f /dev/sdb1'.
comprobar errores en el sistema de archivos en /dev/sdb1 y (si es posible) arreglarlos 03:56 ( SUCCES )
e2fsck -f -y -v /dev/sdb1
Paso 1: verificando nodos i, bloques y tamaños
Paso 2: Se verifica la estructura de directorios
Paso 3: Se revisa la conectividad del directorio.
Paso 4: revisando las cuentas de referencia
Paso 5: Se revisa el resumen de informacion del grupo
250187 inodes used (0.93%)
3261 non-contiguous inodes (1.3%)
# of inodes with ind/dind/tind blocks: 15146/566/0
6849501 blocks used (6.34%)
0 bad blocks
2 large files
197853 regular files
24235 directories
70 character device files
26 block device files
2 fifos
819 links
27254 symbolic links (25091 fast symbolic links)
738 sockets
--------
250997 files
e2fsck 1.40.8 (13-Mar-2008)
aumentar el tamaño del sistema de archivos hasta llenar la particion 00:00 ( SUCCES )
resize2fs /dev/sdb1
resize2fs 1.40.8 (13-Mar-2008)
El sistema de ficheros ya tiene 108061214 bloques. ¡No hay nada que hacer!
========================================
Eduardo, el UUID, al final del artículo indico cómo: sudo vol_id /dev/nombredelapartición o sudo blkid para ver todos.
El UUID permite despreocuparse del nombre del dispositivo. Mientras no modifiques la propia partición, seguirá siendo el mismo. En el peor caso, aunque no se encuentre la partición de intercambio (swap) que indique el /etc/fstab por un error en el identificador, el sistema arrancará. Si tienes muy poca memoria puede tardar eternamente, pero no será tu caso, ¿no? Al arrancar puedes ver si está activa en el monitor del sistema (sistema>administración). Donde si que tienes que tener cuidado es con la partición / y /boot el sistema y el arranque. Si cambia el UUID, tendrías que cambiarlo en el /etc/fstab y también en el /boot/grub/menu.lst .
En cualquier caso, miras con sudo blkid y te sale todo. Si coincide, sin problemas, y si no, lo cambias. No pasa nada.
¿Lo que llamas "accesos directos a otros discos" que es? Sea un enlace simbólico (ficheros especiales en los que se basó MS para hacer los accesos directos) o un lanzador del escritorio, no influye en nada para el manejo de particiones.
Sobre el registro de gparted... parece que esté todo bien. Avisa de un error al iniciar el proceso porque hay que revisar el sistema de ficheros, lo revisa y continua el proceso. Todo correcto aparentemente, aunque parece que falten cosas. ¿No la encogió? ¿Has vuelto a entrar por si no te indicaba la información correcta? ¿Has vuelto a intentarlo?
Lo correcto sería /dev/sda9 /home ext3 defaults 0 1
Esto no es correcto:
/dev/sda9 /home ext3 defaults 1 2
dump: Esta opcion solo puede poseer el valor 0 o 1, en ella se guardan los errores en tiempo de sistema que ha reportado el sistema de archivos. Al activarlo (1) se hará un backup con las opciones, creando backup por si surge algún tipo de problema, lo normal es tenerlo desactivado (0), ya que rara vez se produce un error.
pass: Esta opción al igual que la anterior tan solo puede poseer el valor 0 o 1. Si la activamos (1) el sistema realizara una pasada cada X desmontadas o si el dispositivo a sido desmontado incorrectamente para comprobar su integridad. En caso de estar desactivado (0), el sistema no realizara nunca ninguna pasada para comprobar la integridad del dispositivo físico, por ello es recomendable tenerlo en activado (1).
Un saludo
Cierto, Carlos, lo corrijo, gracias. No se de dónde me saqué eso, la verdad.
gracias, ha ido perfecto
yo añadiria el parametro -p a cp
de esta forma se conservaran las fechas originales de archivos y directorios en la copia
Publicar un comentario