GNU/Linux >> Tutoriales Linux >  >> Linux

Montaje de múltiples archivos img como dispositivo de bucle único

No creo que puedas hacerlo en el lugar, pero si tienes suficiente espacio, esto debería funcionar:

# Create the files that will hold your data
dd if=/dev/zero of=part-00 bs=1M count=4k
dd if=/dev/zero of=part-01 bs=1M count=4k

# Create the loop devices
losetup /dev/loop0 part-00
losetup /dev/loop1 part-01

# Create a RAID array
mdadm --create /dev/md0 --level=linear --raid-devices=2 /dev/loop0 /dev/loop1

# Copy the original filesystem
dd if=original-file-00 of=/dev/md0 bs=512
# Look at the records written value
dd if=original-file-01 of=/dev/md0 bs=512 seek=<sum of records written values so far>

# Mount the new filesystem
mount /dev/md0 /mnt

No puede simplemente crear una matriz RAID a partir de los archivos originales porque los discos RAID tienen un encabezado específico donde se almacena la cantidad de discos, el nivel de RAID, etc. Si lo hace, esa parte de sus archivos originales se sobrescribirá.

Puedes usar el mdadm --build para crear una matriz sin metadatos, pero primero debería hacer una copia de seguridad. O si el montaje de solo lectura es suficiente:

losetup -r /dev/loop0 original-00
losetup -r /dev/loop1 original-11
mdadm --build /dev/md0 --level=linear --raid-devices=2 /dev/loop0 /dev/loop1
mount /dev/md0 /mnt

¿Por qué quieres hacer esto? Si su sistema de archivos no puede manejar archivos de más de 4 GB, debe cambiar a uno cuerdo.


Para montar una imagen de disco dividida (o imagen de partición) debe usar affuse de las herramientas que se mantienen actualmente aquí:https://github.com/sshock/AFFLIBv3

Entonces, si tiene un archivo, divídalo en varios subarchivos test_img.000, test_img.001, test_img.002, test_img.003, test_img.004, test_img.005, test_img.006, test_img.007, test_img.008, test_img.009

entonces puedes unirte a ellos virtualmente con affuse

# affuse test_img.000 /mnt/combine
# ls -lh /mnt/combine
total 0
-r--r--r-- 1 root root 2.0G 1969-12-31 16:00 test_img.000.raw

(esto combina todos los archivos comenzando con el archivo 000, luego 001, 002, …)

Y luego monta la imagen

mount -o ro,loop,offset=329043456 /mnt/combine/test_img.000.raw /mnt/test

El uso se describe aquí y algunos ejemplos aquí. Una página de manual también está disponible después de compilar e instalar, o aquí.

PD:Para mí affuse solo funcionaba si los archivos divididos tenían un tamaño que era un múltiplo de 512 bytes.


Linux
  1. Importar múltiples archivos SQL en MySQL

  2. Cómo comprimir varios archivos en Linux

  3. Dd:¿Múltiples archivos de entrada?

  4. Linux:¿puede un solo usuario tener varios archivos crontab?

  5. ¿Usar un dispositivo a través de SSH?

Comando Renombrar en Linux (Renombrar Múltiples Archivos)

Cómo crear un dispositivo de bloque virtual (dispositivo de bucle/sistema de archivos) en Linux

Múltiples bibliotecas glibc en un solo host

¿Dispositivo de bucle permanente?

¿Qué es un dispositivo de bucle cuando se monta?

Cola múltiples archivos remotos