¿Cómo pasar de una unidad a otra que tiene un tamaño diferente?

21

Me he encontrado con este escenario algunas veces: necesito reemplazar una unidad porque necesito más espacio, está teniendo problemas, mudarse a una nueva caja, etc.

¿Cuál es la mejor manera de copiar datos de un tamaño de partición a otro (suponiendo que el destino tenga suficiente espacio)?

¿Qué pasa si es un sistema de archivos diferente (como ReiserFS a ext4)?

Si se trata solo de una nueva unidad en un sistema existente, ¿cómo me aseguro de que no necesito reinstalar para que todo funcione?

Actualización : muchas de las opciones son altamente viables, y he cambiado esta pregunta a una wiki comunitaria porque no creo que haya una respuesta "correcta".

4 revoluciones
fuente
1
superuser.com/questions/32164/... se le preguntó por las ventanas de unidades / particiones
Warren

Respuestas:

10

Clone la unidad usando CloneZilla , luego use gparted para cambiar su tamaño. Guarde su anterior en caso de que salga mal :-)

Por cierto, este camino es gratis.

craigmoliver
fuente
2
Me gusta la parte libre de aquí, aunque no hay nada como el software de trabajo bueno que hace todo (en lugar de 3 freewares juntos)
Ivo Flipse
1
Son solo dos freewares y es bastante indoloro. El arranque de ISO no es un problema.
craigmoliver
Puedo confirmar que esto funciona. Moví con éxito mi unidad secundaria con Windows 7 de una unidad de 160 GB a una unidad de 1 TB. Lo cloné en mi disco de Linux con Clonezilla. Lo restauró en el nuevo disco y lo redimensionó con la herramienta de administración de discos de Windows 7. Sin embargo, esto fue de un NTFS a un NTFS.
Thomas Watnedal el
dices 'clonar el disco' aunque él pidió clonar la partición. También dijo que el sistema de archivos diferente.
barlop
5

La solución que he usado en el pasado es tar. Si las particiones son exactamente del mismo tamaño y tipo, puede usarlas dd.

Aquí está mi respuesta al dilema:

  1. arranque usando una distribución de CD en vivo como Slax
  2. verifique que las particiones que desea estén en la nueva unidad
  3. asegúrese de que tanto las unidades antiguas como las nuevas estén montadas, por ejemplo /tmp/driveoldy / tmp / drivenew '
  4. ejecutar desde una terminal el siguiente tarcomando:

    (tar cp --xattrs /tmp/driveold/path) | (tar x /tmp/drivenew/path)

  5. repita para cada partición que necesita copiar

Esto funciona para cada partición en la que lo he probado (excluyendo /boot, para lo cual me aseguro de que las particiones sean idénticas y las use dd).

madriguera
fuente
2
Me gusta esta solución porque es muy simple, pero creo que necesitaría algunas opciones adicionales como p (conservar permisos) para obtener todos los metadatos.
Jay Conrod el
1
tienes razón en la p - He agregado eso :)
warren
2
Hablando de metadatos, --xattrstambién se debe usar la opción (almacenar ACL e información de SELinux).
Cristian Ciupitu
Los 2 alquitranes conectados con una tubería podrían ser reemplazados por cpio --pass-through.
Cristian Ciupitu
1
¿Qué versión de tartiene una --xattrsopción? No es mio. Sugiero usar rsynco plain en su cplugar: serverfault.com/questions/306538/…
Teddy
2

Esta es una razón por la que me gusta LVM. Simplemente agregue el nuevo disco al grupo de volúmenes, pvmovelos volúmenes lógicos del disco antiguo al nuevo, elimine el disco antiguo del grupo de volúmenes y luego del sistema. Si está reemplazando su disco de arranque, entonces también necesita actualizar su cargador de arranque.

pgs
fuente
Esa es una gran idea, excepto que si no está ejecutando LVM, es un poco doloroso :) ¡Sin embargo, gracias por la sugerencia!
warren
Algo a considerar la próxima vez que instales :-)
pgs
2

+1 a Warren y usar alquitrán.

Sin embargo, generalmente intento restaurar desde mis copias de seguridad. Y pasar de un disco a uno nuevo parece una buena oportunidad para ver si su plan de respaldo está funcionando.

Si simula una falla de disco (extraiga la energía del disco anterior), comience a recuperarse en el nuevo disco. Y cuando haya terminado, inicie el disco viejo y difúndalos para ver si tiene todos los archivos.

Si son idénticos, ambos han movido todos sus datos y saben que su plan de respaldo es válido y funciona.

Johan
fuente
buena idea - aunque para aquellos entre nosotros (<modo de silbato = "inocente" />) que no tienen una solución "copia de seguridad", esto podría ser también un buen tiempo para llegar a una :)
Warren
1
:)
Johan
2

Otra opción sería arrancar desde un liveCD y montar la unidad anterior como solo lectura. Esto es para evitar que el livecd lo cambie durante la copia. Entonces rsync -avz /mnt/olddisk/ /mnt/newdisk(la barra inclinada final después de olddisk es necesaria). Como los otros han mencionado, si este es el disco de arranque que se está expandiendo, deberá volver a ejecutarlo grub-install <new device>antes de que pueda arrancarse.

Shoan
fuente
hay uno que había no thoguht de :)
Warren
1

La mayoría de las utilidades de clonación de disco pueden hacer esto. Me gusta usar g4u desde un livecd. Ghost es bueno, pero prefiero usar uno gratis.

escalofríos42
fuente
1

También encontré Disk Copy , que no parece estar en la lista de Wikipedia, pero nunca lo he usado.

madriguera
fuente
1
Disk Copy es bueno.
craigmoliver
Desafortunadamente, es solo para Windows, y esta pregunta fue etiquetada como Linux.
programmer5000