dd para hacer una copy de security y restaurar un sistema completo

Uso un bloc de notas con Mint Linux, y durante unos días estaré usando Windows. Así que me gustaría "save" mi SO y luego volver a ponerlo en el mismo disco.

Está usando encryption de disco completo (el que viene pnetworkingeterminado en la installation de Mint).

Arrancando un CD en vivo con Linux y luego creando una copy con algo como:

dd if=/dev/sda of=/media/externalhd/mint.img 

[Aquí formatting y agrego windows] y luego de terminar, reinicie con un CD en vivo nuevamente y haga lo siguiente:

 dd if=/media/externalhd/mint.img of=/dev/sda 

Debería funcionar, ¿verdad?

Tus commands están bien y, como se ha señalado, esto también ahorrará todo el espacio vacío en tu disco. Sin embargo, si elige la opción de limpieza segura al instalar el sistema, el espacio vacío de la unidad estará lleno de ruido aleatorio, por lo que comprimir la salida le compra muy poco.

Debe usar un tamaño de bloque más grande para la copy y evitar contaminar la memory caching del búfer del sistema para hacer que las lecturas en bruto sean más rápidas.

  • Las opciones dd iflag = direct o oflag = lectura directa o directamente desde el dispositivo evitando la capa de almacenamiento en caching de Linux.
  • La opción dd bs (tamaño de bloque) le dice a dd cuántos datos leer o escribir a la vez, las unidades de disco modernas funcionan mucho más rápido con grandes cantidades de datos.

La compression requiere una gran cantidad de CPU y gzip solo usa un solo núcleo, lo que significa que probablemente sea el factor limitante para la copy en el sentido de la velocidad. El uso de pigz, que usa todos los núcleos de la CPU, lo hará más rápido, pero aún es probable que esté vinculado a la CPU.

Como parque de béisbol con una CPU moderna, usaría compression si el espacio de almacenamiento fuera un problema o si estuviera conectado por algo más lento que USB2. Las networkinges USB3, SATA o 100Mbit + casi seguramente serán más rápidas que gzip, por lo que no ganarán velocidad, pero podrían ahorrar algo de espacio.

Los commands que utilizaría en el caso de una connection lenta al almacenamiento (es decir, 10Mbit ethernet o USB1 / 2) o falta de espacio son:

 dd if=/dev/sda bs=1M iflag=direct | pigz -c > /media/external/image.sda.gz 

Si tiene una connection rápida al almacenamiento y el espacio utilizado no es un problema, utilizaría el siguiente command:

 dd if=/dev/sda of=/media/external/image.sda.raw oflag=direct iflag=direct bs=1M 

Funciona pero no es la mejor manera. La image será muy grande debido a los ceros en los datos brutos. Si quieres evitar este comportamiento, puedes hacer algo como esto:

  dd if=/dev/sda | gzip > /media/externalhd/backup.img.gz 

Gzip sabe que los ceros no necesitan ser considerados en la image, solo se countn, por lo que la image será más pequeña, especialmente si tiene espacio libre en el disco, más esto con la compression gzip, por lo que es mucho mejor.