¿Cómo imagino una unidad de 128 GB en una de 120 GB con Linux dd?

1

Tengo 2 SSD's. Mi sistema (Ubuntu 12.04) está instalado en uno y quiero clonarlo en otro. El problema es que el sistema está actualmente en una unidad de 128 GB y el nuevo tiene solo 120 GB. ¿Es posible crear una imagen usando ddun disco de menor capacidad?

depquid
fuente
2
Intente preguntar en superuser.stackexchange.com o serverfault.stackexchange.com
Joe
¿Puede reformular su pregunta, por favor?
jofel
Esta no es una pregunta de programación. Por cierto, inicie con un sistema en vivo, monte ambos discos y haga un cp -a para copiar en un disco más pequeño.
Ottavio Campana
Echa un vistazo a esta pregunta .
Benny Hill

Respuestas:

5

Cómo hacer lo que pediste:

  1. use gparted para cambiar el tamaño de la partición de su sistema a menos de 120 GB ... preferiblemente, si es posible, considerablemente más pequeño que 120 GB, para asegurarse de que realmente lo tiene por debajo del tamaño total de la unidad de destino.

  2. dd if=/dev/sda bs=8M of=/dev/sdb, suponiendo que sus unidades de origen y destino sean sda y sdb, respectivamente. haga esto desde el modo seguro o desde un entorno de arranque en vivo, NO desde su sistema operativo de origen que se ejecuta con un inicio de sesión multiusuario normal.

    O , si usted tiene acceso a la red en el entorno de arranque en vivo, y el universo en sus fuentes: apt-get install pv ; pv < /dev/sda > /dev/sdb. La diferencia entre este comando y el comando dd, para sus propósitos aquí, es que este le da una BARRA DE PROGRESO ... :)

Sin embargo, una forma probablemente mejor de hacer lo que realmente QUIERES hacer:

  1. haga una instalación simple de Ubuntu en la unidad de destino. (Hay formas más eficientes de obtener un sector de arranque en una nueva unidad, pero voy por "noob-friendly" aquí).

  2. montar ambas unidades desde un entorno de arranque en vivo y rsync -harv --progress /path/to/source/ /path/to/target/. Tenga en cuenta que REALMENTE desea estar en un entorno de arranque en vivo aquí, no en un sistema en ejecución, de lo contrario tendrá que lidiar con cosas como devfs, procfs, etc.

Jim Salter
fuente
1

PASOS

  1. Si es posible, haga una copia de seguridad de la unidad de origen (128 Gb).

  2. Use Gparted USB para arrancar, luego úselo para reducir su partición de la unidad de origen (128 Gb) a menos del tamaño de la unidad de destino (120 Gb). Si tiene una unidad de disco completa, digamos 128 Gb sin espacio, entonces es posible que necesite comprimir (comprimir) algunos de los archivos de datos o copiarlos a otro USB temporal para lograr menos de 120 Gb (tamaño de la unidad de destino) . De lo contrario, no puede ajustar el contenido de origen en la unidad de destino. Simplemente no encaja.

    Deje algo de espacio libre adicional por si acaso (1 Gb tal vez, para traducciones de geometría o lo que sea. Mi unidad es de un tamaño, pero ddGparted mostró un tamaño diferente, ligeramente diferente).

  3. Una vez que la partición de la unidad de origen se ha reducido a menos del tamaño de la unidad de destino, puede realizar la dd. Asegúrate de que estás copiando el origen al destino, de lo contrario terminarás muy infeliz. (Si el origen es / dev / sda, asegúrese de que la unidad de 128 Gb ahora tenga una partición de menos de 120 Gb ... Su objetivo es / dev / sdb nueva unidad de 120 Gb ) .

    dd if=/dev/sda of=/dev/sdb bs=4096 conv=notrunc,noerror

  4. Ahora, si lo desea, puede volver a Gparted y, en la unidad de origen, extender el tamaño completo de la partición al máximo permitido.

Gparted hace un gran trabajo al reducir las particiones y le muestra el espacio utilizado, por lo que puede reducirlo a cualquier tamaño por encima del espacio utilizado. Intenté copiar y pegar particiones usando Gparted pero NO me funcionó . Solo use Gparted para reducir las particiones, luego use ddpara hacer la copia.

Una vez que termine, puede decirle que se quedó sin espacio . Es normal; Está copiando en un disco más pequeño. Pero como está copiando una partición más pequeña, todos los datos se copian. ddintenta copiar todos los 128 Gb en los 120 Gb y arroja un error. No te preocupes sin daños a las unidades. Ahora quite el USB dividido, quite la unidad de origen y arranque en el nuevo disco de 120 Gb, verifique el contenido y, si le queda espacio, puede descomprimir esos archivos previamente comprimidos.

Luis H Cabrejo
fuente
Esto es muy similar a la respuesta de Jim Salter , con solo un poco más de detalle.
Scott
De hecho, trato de comentar esa publicación, pero soy nuevo, el sistema no me lo permite. Ayer hice exactamente ese procedimiento, haciendo una copia de seguridad de mi servidor. Entonces el procedimiento es el correcto. Saludos.
Luis H Cabrejo
0

Supongo que cada unidad tiene / tendrá solo una partición.

ddno se puede usar de la manera que desee, ya que copiará cada bloque de datos que se encuentra físicamente en una unidad a la otra, incluidos los datos que definen la partición y el sistema de archivos con 128 GB. Y se perderán todos los bloques de datos almacenados al final de la primera unidad.

Una solución simple, aludida por Ottavio Campana en los comentarios:

  1. Arranque el sistema usando un LiveCD
  2. Cree el sistema de archivos en la nueva unidad
  3. Monte ambas unidades y copie lo viejo a lo nuevo usando cp -a

Luego tendrá que instalar un gestor de arranque (por ejemplo, GRUB) en la nueva unidad si será su unidad principal.

El comentario de Benny Hill proporciona un enlace a una pregunta similar con respuestas que ofrecen otras soluciones.

depquid
fuente
0

La única opción viable que se me ocurre es si cambia el tamaño de la partición ext4 para que tenga 119 gb de datos y 9 gb de espacio libre al final. Luego, podría usar el DD con los comandos bs = y count = para copiar 120 gb de datos en la unidad. (Tendrá 1 gb de sobra de espacio libre que luego puede cambiar de tamaño nuevamente (solo lo hice para estar seguro))

agz
fuente