¿Hay alguna manera de tomar un archivo img de disco que se divide en partes y montarlo como un dispositivo de bucle único?
linux
block-device
loop-device
MagoProspero
fuente
fuente
Respuestas:
No creo que pueda hacerlo en su lugar, pero si tiene suficiente espacio, esto debería funcionar:
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 RAID, etc. Si lo hace, se sobrescribirá parte de sus archivos originales.
Puede 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:¿Por qué quieres hacer esto? Si su sistema de archivos no puede manejar archivos> 4GB, debería cambiar a uno sensato.
fuente
truncate
lugar de hacerlo,dd
ya que es mucho más rápido (no realiza una escritura real en FS sino que solo asigna inodes y marca el archivo como que solo contiene un agujero).Para montar una imagen de disco dividido (o una imagen de partición), debe usar
affuse
las afftools que actualmente se mantienen aquí: https://github.com/sshock/AFFLIBv3Entonces, 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 unirlos virtualmente con
affuse
(esto combina todos los archivos juntos comenzando con el archivo 000, luego 001, 002, ...)
Y luego montar la imagen
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.fuente
Puede escribir su propia extensión de dispositivo de almacenamiento en bloque (piense en una extensión tipo fusible) y realizar búsquedas dependiendo de cuál sea la dirección.
Aquí puede encontrar un ejemplo de cómo usar el fusible https://github.com/libfuse/python-fuse/blob/master/example/hello.py
fuente
Lo más cercano que conozco hasta ahora a una solución es crear una VM VMware. Inicia un CD en vivo de Linux como Rescatux o Knoppix, crea una carpeta compartida SMB en su computadora host, monta ese recurso compartido SMB en su VM y luego coloca
dd
la imagen en el HD virtual. VMware guarda de manera predeterminada sus imágenes de disco como archivos divididos, por lo que esto es lo más parecido a leer directamente una imagen de disco dividida en múltiples archivos.Más adelante, si desea acceder a los archivos desde su computadora host, puede intentar agregar un segundo HD virtual a la imagen y copiar los archivos allí. Luego configura una carpeta compartida SMB en la VM y se conecta desde su host. De esta manera, puede, por ejemplo, violar el límite de archivos de 4 GB de FAT32 en el caso de que esté usando un iPod Classic (que solo engorda fat32), o la tarjeta SD de su teléfono inteligente (generalmente tiene que instalar una ROM personalizada para para usar Ext3 o NTFS en el almacenamiento externo, para esto necesita un teléfono de un fabricante popular como Samsung o Motorola, por lo que si tiene un teléfono inteligente chino está perplejo).
Sin embargo, ciertamente no es una solución eficiente, pero dado que he estado limitado por no poder usar ningún FS que no sea fat32 en mi iPod Classic o mis teléfonos inteligentes Samsung con ROM de stock, he explorado casi todo el Internet en el pasado y todavía no puedo encontrar una solución eficiente para esto. Incluso podría tener que escribirlo yo mismo.
PD: Olvidé mencionar que si estás en Windows, esta podría ser la única forma de hacerlo.
fuente
Bajo BSD puede usar la opción de unión para montar. En Linux puedes probar unionFS.
fuente