Saltar al contenido

¿Es posible montar una imagen dd comprimida con gzip sobre la marcha?

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).

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *