Como criar dispositivos de blocos virtuais a partir de arquivo?

Como criar dispositivos de blocos virtuais a partir de arquivo?
  • Vamos ter uma imagem bruta descompactada de uma unidade de disco desconhecida (criada, por exemplo, por dd if=/dev/sda of=image) em um único arquivo.
  • Se soubéssemos o layout do disco, poderíamos montar partições específicas do arquivo como dispositivos de loop, ignorando alguns deslocamentos.
  • Suponhamos que não conhecemos o layout. Podemos de alguma forma "montar" toda a unidade de disco image, cujo processo criaria dispositivos de blocos virtuais de acordo com o layout do disco? Por exemplo, ter 2 partições resultaria imagena criação de 3 dispositivos ( /dev/sdx, /dev/sdx1, /dev/sdx2). Poderíamos então montar esses dispositivos normalmente.

Responder1

Depois de mais algumas pesquisas que descobri, existem pelo menos dois métodos para testar:

  1. De acordo comessepublicar,kpartxé uma ferramenta aplicável.
    • Infelizmente não funcionou no Arch Linux para mim
    • É do AUR: yaourt multipath-tools-git, parece não estar bem suportado/acabado e acabou com erros como:

      device-mapper: recarregar ioctl em loop0p1 falhou: tal dispositivo não existe

    • Pode ser usado pelo menos para listar as partições incorporadas:kpartx -l image
    • EDITAR:De acordo comessepost, parece obsoleto e o método preferido é o seguinte.
  2. De acordo comessepublicar,losetuppode ser usado.
    • Em primeiro lugar, não funcionou: losetup /dev/loop0 image(faltando os dispositivos para partições específicas).
    • Tentar novamente usando -Pa opção adicional funcionou: losetup -d /dev/loop0e losetup -P /dev/loop0 imageos /dev/loop0pXdispositivos foram criados.
    • Esses dispositivos são então montáveis ​​conforme esperado, comomount /dev/loop0p3 /mnt/x -t ntfs

informação relacionada