¿Cómo crear dispositivos de bloques virtuales a partir de un archivo?

¿Cómo crear dispositivos de bloques virtuales a partir de un archivo?
  • Tengamos una imagen sin procesar sin comprimir de una unidad de disco desconocida (creada, por ejemplo, por dd if=/dev/sda of=image) en un solo archivo.
  • Si conociéramos el diseño del disco, podríamos montar particiones particulares del archivo como dispositivos de bucle omitiendo algunas compensaciones.
  • Supongamos que no conocemos el diseño. ¿Podemos de alguna manera "montar" toda la unidad de disco image, qué proceso crearía dispositivos de bloques virtuales de acuerdo con el diseño del disco? Por ejemplo , tener 2 particiones en el imageresultaría en la creación de 3 dispositivos ( /dev/sdx,, ). Entonces podríamos montar dichos dispositivos como de costumbre./dev/sdx1/dev/sdx2

Respuesta1

Después de investigar un poco más, encontré que hay al menos dos métodos para probar:

  1. De acuerdo aestecorreo,kpartxes una herramienta aplicable.
    • Lamentablemente no me funcionó en Arch Linux
    • Es de AUR:, yaourt multipath-tools-gitparece no estar bien soportado/terminado y terminó con errores como:

      mapeador de dispositivos: falló la recarga de ioctl en loop0p1: no existe tal dispositivo

    • Al menos se puede usar para enumerar las particiones incrustadas:kpartx -l image
    • EDITAR:De acuerdo aestepost, parece obsoleto y el método preferido es el siguiente.
  2. De acuerdo aestecorreo,losetuppuede ser usado.
    • En primer lugar, no funcionó: losetup /dev/loop0 image(faltan los dispositivos para particiones particulares).
    • Intentar nuevamente usando -Pla opción adicional funcionó: losetup -d /dev/loop0y losetup -P /dev/loop0 imagese /dev/loop0pXcrearon los dispositivos.
    • Luego, estos dispositivos se pueden montar como se esperaba, comomount /dev/loop0p3 /mnt/x -t ntfs

información relacionada