notas.archivos.cc

Notas.

Clonar una Unidad de Almacenamiento con dd

clonar


La solución permite clonar unidades de almacenamiento (hdd, ssd, nvme, etc) completas con todas sus particiones y sistemas operativos instalados (windows, macOS, linux, etc).

Iniciar con una distro Linux como LiveUSB ( LinuxMint, Ubuntu, Fedora, etc). Únicamente utilizaremos la terminal. Si lo prefiere, puede descargar una ISO más pequeña sin entorno de escritorio como SparkyLinux MinimalCLI amd64. Después de iniciar la distro, evitar montar las unidades de almacenamiento que se desea clonar.

            
#Utilizar el usuario root: 
sudo su -

            
#Ver las unidades de almacenamiento: 
lsblk

lsblk
#En el ejemplo la unidad de almacenamiento a clonar es nvme0n1 y contiene Windows. #Se puede apreciar que nvme0n1 tiene cuatro particiones.

Clonar

unidad-unidad

#Clonar desde unidad de almacenamiento hacia otra unidad de almacenamiento de igual o mayor tamaño dd if=/dev/nvme0n1 of=/dev/nvme1n1 bs=64K status=progress

unidad-archivo

#Clonar desde unidad de almacenamiento hacia un archivo.gz dd if=/dev/nvme0n1 bs=4M status=progress | gzip > /ruta/archivo.gz

Restaurar

archivo-unidad

#Restaurar desde archivo.gz hacia una unidad de almacenamiento de igual o mayor tamaño: gunzip -c /ruta/archivo.gz | dd of=/dev/nvme0n1 bs=4M status=progress


Montar una unidad USB para guardar el archivo.gz

             
lsblk
mkdir /mnt/usb
mount /dev/sdb1 /mnt/usb


Montar una carpeta compartida remota en la red para guardar el archivo.gz

      
#Como ejemplo, el equipo remoto es Windows (puede ser Linux, macOS, etc) y comparte una carpeta llamada "remote" desde el usuario "administrador".      
mkdir /mnt/backup
mount -t cifs //192.168.10.20/remote /mnt/backup -o username=Administrator,password=jk9frd


            
La igualdad en la entrada y salida nos confirma el éxito de la clonación: 

dd

Notas adicionales:


Verificar una clonación

Es importante no haber montado las unidades después de la clonación para poder verificar que las unidades o el archivo.gz sean copias exactas. Se utiliza el algoritmo SHA-256 para generar ambos hash y compararlos.

            
#Verificar que ambas unidades de almacenamiento sean idénticas: 
diff <(dd if=/dev/nvme0n1 bs=4M status=progress | sha256sum) <(dd if=/dev/nvme1n1 bs=4M status=progress | sha256sum) && echo "Las unidades son idénticas" || echo "Las unidades no son idénticas"

            
#Verificar que el archivo.gz y la unidad de almacenamiento sean idénticos: 
diff <(dd if=/dev/nvme0n1 bs=4M status=progress | sha256sum) <(gunzip -c /ruta/archivo.gz status=progress | sha256sum) && echo "El archivo y la unidad son idénticos" || echo "El archivo es diferente a la unidad"


Si prefiere puede descargar con curl el siguiente Script y ejecutar con bash para realizar la verificación. El Script le va guiar preguntando las rutas de las unidades o el archivo( /dev/nvme0n1 ). Si desea ver el Script: verificar.sh

            
#Realizar la verificación con un Script: 
curl https://notas.archivos.cc/clonar/app/verificar.sh
bash verificar.sh

verificar_hash

Cuando el destino es una unidad de almacenamiento más grande

Ejemplo: Si la unidad original es de 256 GB y la de destino es de 1 TB, se utilizaran únicamente 256 GB. Para añadir los 744 GB restantes se utilizan las herramientas propias del sistema operativo.

En Linux, puede utilizar GParted y en Windows, buscar Administración de Discos (Disk Management) para aumentar la partición de 256 GB a 1 TB. Es un proceso sencillo y no debería afectar los archivos.


Cuando el destino es una unidad de almacenamiento más pequeña

Normalmente, no se recomienda clonar hacia una unidad más pequeña.

Antes de clonar, se puede reducir el tamaño de la partición manualmente en el sistema operativo que desea clonar. También puede utilizar herramientas como Clonezilla que tienen una función específica para este propósito.


¿Por qué utilizar gzip con dd?

La ventaja de utilizar gzip para crear el archivo.gz es que permite reducir el tamaño final del archivo, ya que elimina los espacios vacíos y comprime de manera eficiente.

Por ejemplo, una unidad de almacenamiento de 256 GB con 80 GB de espacio utilizado se reduce a un archivo.gz de 36 GB. El tiempo de creación del archivo.gz en el ejemplo anterior fue de 25 minutos.

">

Cuando no se puede iniciar Linux

Es necesario configurar el BIOS o UEFI.

Las opciones varían entre marcas de equipos, por ejemplo, muchas distribuciones de linux son incompatibles con Intel SGX, basta con desactivar esta opción.


Si las unidades de almacenamiento no se muestran en Linux

Es necesario configurar el BIOS o UEFI. Generalmente, las opciones son:

  1. Habilitar el modo AHCI (Enable AHCI mode)
  2. Deshabilitar el Secure Boot (Disable Secure Boot)

Otras opciones de clonación de código abierto



https://wiki.archlinux.org/title/Dd

https://www.gnu.org/software/coreutils/manual/html_node/dd-invocation.html