Eu tenho uma imagem de disco myimage.disk
que contém a tabela de partições e uma partição primária (ou seja, um sistema de arquivos FAT32). Pense nisso como uma imagem de caneta USB.
Eu quero montar a partição primária em um diretório local. Eu sei como montar uma imagem de partição usando os utilitários de loop, mas aqui tenho uma imagem de disco. Meu palpite é que tenho que montar a imagem "pulando" a tabela de partição, mas como posso fazer isso?
linux
partitioning
mount
dd
Emiliano
fonte
fonte
losetup --partscan --find --show disk.img
seguido demount /dev/loop0p1 /mnt/disk
Respostas:
A ferramenta kpartx facilita isso. Ele cria dispositivos de loop no / dev / mapper para cada partição na sua imagem. Em seguida, você pode montar o dispositivo de loop que corresponde à partição desejada sem precisar calcular o deslocamento manualmente.
Por exemplo, para montar a primeira partição da imagem de disco:
Quando terminar a imagem, remova os dispositivos de loop:
Como alternativa, se você possui um kernel recente e passa loop.max_part = 63 na inicialização (se o loop estiver embutido) ou no modprobe (se o loop for um módulo), é possível fazer o seguinte:
Quando você terminar o loop:
fonte
-o loop
acima,/dev/mapper/loop0p1
já é um dispositivo de bloco (um dispositivo mapeador em cima de um dispositivo de loop, você não deseja outra camada de dispositivo de loop em cima disso)./dev/loop0p1
etc.) após a execuçãolosetup
, executepartprobe /dev/loop0
.kpartx
parece ser instalado por padrão no Linux Mint 18.Encontrou isto:
http://www.andremiller.net/content/mounting-hard-disk-image-including-partitions-using-linux
o que parece exatamente o que eu estava procurando.
Aqui está a parte principal:
onde o valor do deslocamento está em bytes. A maneira sugerida de obter o deslocamento é apontar
parted
para a imagem, depois a unidade B para bytes e obter o valor inicial da saída de impressão. Como alternativa, supondo que você tenha espaço em disco, faça o óbvio: depois de ter o deslocamento e o tamanho, use apenasdd
para extrair cada partição para um arquivo separado.fonte
mount -o loop,ro,offset=32256 hda.img /mnt/rabbit
onde o valor deoffset
está em bytes. A maneira sugerida de obter o deslocamento é apontar para a imagem e depoisunit
B
para bytes e pegar ostart
valor daprint
saída. Como alternativa, supondo que você tenha espaço em disco, faça o óbvio: depois de ter o deslocamento e o tamanho, use apenasdd
para extrair cada partição para um arquivo separado.mount
linha que contém aoffset
opção.fonte
Hoje em dia você pode minimizar seu trabalho usando
udisks
. Solução do ArchWiki: udisks - Mount loop devices-r
lá para a opção somente leitura.fonte
udisksctl
.