Solución:
Depende de si la imagen del disco es una imagen de disco completa o solo una partición.
Lavar la (s) partición (es)
Si el disco está en buenas condiciones de funcionamiento, obtendrá una mejor compresión si lava el espacio vacío en el disco con ceros. Si el disco falla, omita este paso.
Si está creando imágenes de un disco completo, entonces querrá lavar cada una de las particiones en el disco.
PRECAUCIÓN: Tenga cuidado, desea configurar el of
a un expediente en la partición montada, ¡NO LA PARTICIÓN MISMA!
mkdir image_source
sudo mount /dev/sda1 image_source
dd if=/dev/zero of=image_source/wash.tmp bs=4M
rm image_source/wash.tmp
sudo umount image_source
Hacer una imagen de partición
mkdir image
sudo dd if=/dev/sda1 of=image/sda1_backup.img bs=4M
Dónde sda
es el nombre del dispositivo y 1
es el número de partición. Realice los ajustes necesarios para su sistema si desea crear una imagen de un dispositivo o partición diferente.
Crear una imagen de disco completa
mkdir image
sudo dd if=/dev/sda of=image/sda_backup.img bs=4M
Dónde sda
es el nombre del dispositivo. Realice los ajustes necesarios para su sistema si desea crear una imagen de un dispositivo diferente.
Compresión
Haga una imagen “squashfs” que contenga la imagen completa sin comprimir.
sudo apt-get install squashfs-tools
mksquashfs image squash.img
Compresión de transmisión
Para evitar hacer un archivo temporal separado del tamaño completo del disco, puede transmitir en una imagen de squashfs.
mkdir empty-dir
mksquashfs empty-dir squash.img -p 'sda_backup.img f 444 root root dd if=/dev/sda bs=4M'
Montaje de una imagen de partición comprimida
Primero monte la imagen de squashfs, luego monte la imagen de partición almacenada en la imagen de squashfs montada.
mkdir squash_mount
sudo mount squash.img squash_mount
Ahora que tiene la imagen comprimida montada, monte la imagen en sí (que está dentro de la imagen de squashfs)
mkdir compressed_image
sudo mount squash_mount/sda1_backup.img compressed_image
Ahora tu imagen está montada debajo compressed_image
.
EDITAR: Si simplemente desea restaurar la imagen del disco en una partición en este punto (en lugar de montarla para navegar / leer el contenido), simplemente dd
la imagen en squash_mount/sda1_backup.img
en el destino en lugar de hacer mount
.
Montaje de una imagen de disco completa comprimida
Esto requiere que use un paquete llamado kpartx. kpartx le permite montar particiones individuales en una imagen de disco completa.
sudo apt-get install kpartx
Primero, monte su partición aplastada que contiene la imagen de disco completa
mkdir compressed_image
sudo mount squash.img compressed_image
Ahora necesita crear dispositivos para cada una de las particiones en la imagen de disco completa:
sudo kpartx -a compressed_image/sda_backup.img
Esto creará dispositivos para las particiones en la imagen de disco completa en /dev/mapper/loopNpP
dónde norte es el número asignado para el dispositivo de bucle invertido, y PAG es el número de partición. Por ejemplo: /dev/mapper/loop0p1
.
Ahora tiene una forma de montar las particiones individuales en la imagen de disco completa:
mkdir fulldisk_part1
sudo mount /dev/mapper/loop0p1 fulldisk_part1
Tratar archivemount
[email protected]:/backup# archivemount windows-2003-S.gz /target/
Unrecognized archive format
[email protected]:/backup# archivemount -o formatraw windows-2003-S.gz /target/
Calculating uncompressed file size. Please wait.
[email protected]:/backup# ls /target/
data
[email protected]:/backup# file /target/data
/target/data: DOS/MBR boot sector; partition 1 : ID=0x7, start-CHS (0x0,1,1), end-CHS (0x3ff,254,63), startsector 63, 58717512 sectors, extended partition table (last)
archivemount es un sistema de archivos basado en FUSE para variantes de Unix, incluido Linux. Su propósito es montar archivos (es decir, tar, tar.gz, etc.) en un punto de montaje donde se pueda leer o escribir como con cualquier otro sistema de archivos. Esto hace que el acceso al contenido del archivo, que puede estar comprimido, sea transparente para otros programas, sin descomprimirlos.
http://linuxaria.com/howto/how-to-mounts-an-archive-for-access-as-a-file-system
Después de montar el archivo, puede usar su contenido como un archivo normal. Tal vez obtenga la tabla de particiones, o convierta, monte la imagen con las herramientas qemu.
squashfs útil para arrancar desde una imagen, pero mucho más complejo para realizar copias de seguridad.
Si la imagen es solo lectura también puedes usar nbdkit (página de manual) y su complemento xz (xz debería proporcionar mejores tiempos de compresión y acceso aleatorio que gzip).
Crea la imagen de la partición comprimida
dd if=/dev/sda1 bs=16M | xz -9 --block-size=16MiB - > sda1.img.xz
A --block-size
La opción de 16 MiB debería proporcionar un buen rendimiento de acceso aleatorio.
Nota: puede utilizar programas de compresión xz alternativos, como pixz que proporciona compresión en paralelo, solo asegúrese de que divida la salida en varios bloques pequeños, de lo contrario nbdkit tiene que descomprimir una gran cantidad de datos. Por ejemplo, a partir de septiembre de 2015, pxz no es compatible con esto.
Sírvelo con nbdkit
nbdkit --no-fork --user nobody --group nobody -i 127.0.0.1
xz file=sda1.img.xz
Conéctese al servidor NBD
nbd-client 127.0.0.1 10809 /dev/nbd0 -nofork
Móntelo en modo de solo lectura
mount -o ro /dev/nbd0 sda1
Cuando termine
umount /dev/nbd0
nbd-client -d /dev/nbd0
Parada nbdkit presionando control+C (o con matar).