Como posso montar partições em uma imagem de disco completa (isto é, imagem com tabela de partição) com o fusível?

5

É um pouco indireto, mas é possível montar uma partição com uma imagem de disco usando o parâmetro "offset" de mount ou losetup .

Estou tentando usar o fusível para fazer a mesma coisa no espaço do usuário

Caso de Uso

Meu caso de uso está construindo imagens de disco em um servidor autobuild, em que o trabalho de construção não pode ter permissões de root, e o servidor não deve precisar de uma configuração personalizada para trabalhos de criação específicos.

    
por Catskul 28.06.2012 / 18:48

5 respostas

3

É possível fazer com o fusível, mas provavelmente seria mais limpo com ferramentas personalizadas.

Solução

Com as ferramentas apt-get-able, o seguinte kludge é possível:

mkdir mnt
xmount --in dd --out vdi disk.img mnt

mkdir mnt2
vdfuse -f mnt/disk.vdi 

mkdir mnt3
fuseext2 -o "rw" mnt2/Partition1 mnt3

Explicação

A idéia básica é que o fusível pode ser usado para separar uma imagem de disco completa no lugar em arquivos que apontam para suas partições. vdfuse faz isso, mas é uma ferramenta VirtualBox e requer um arquivo VDI ou VMDK para funcionar. O xmount usa o fusível para fazer uma imagem de disco bruta aparecer como um arquivo VDI.

Finalmente, uma vez que o arquivo de partição esteja disponível via vdfuse, ele pode ser montado através de uma ferramenta ext2 / 3/4 fuseext2.

É feio, mas funciona completamente no espaço do usuário.

Atualizar

O vdfuse deve ser capaz de montar uma imagem bruta sem a ajuda do xmount, mas há um bug que ignora a opção RAW.

Eu localizei e corrigi o bug com um patch aqui:

link

    
por 29.06.2012 / 00:28
1

Existe o utilitário pmount que é um wrapper em torno do programa de montagem padrão que permite que usuários normais montem dispositivos removíveis sem uma correspondência entrada do / etc / fstab.

A única coisa que você precisa permitir que o usuário use é adicionar o usuário ao grupo plugdev .

    
por 28.06.2012 / 19:05
0
  1. losetup da imagem
  2. kpartx -av o dispositivo de loopback resultante
  3. Use as partições resultantes de /dev/mapper/... como faria com um disco físico

Você pode realizar todas essas tarefas usando um mapa automático de executáveis.

Um chdir poderia acionar todas as ações acima. Ou use o sudo para um script de configuração / remoção. Ou ...

    
por 29.06.2012 / 22:24
0

A montagem do dispositivo de loopback com offset pode ser útil.

VDIfile=VirtData.vdi
mountingpoint=/mnt/VDI
offData=$( VBoxManage internalcommands dumphdinfo "$VDIfile" |grep offData | sed 's:.*offData=\([0-9]*\).*::' )
offset=$(( $offData + 32256 ))
mount -t ext4 -o rw,noatime,noexec,loop,offset="$offset" "$VDIfile" "$mountingpoint"

Mais detalhes aqui: link

    
por 08.08.2012 / 14:21
0

libguestfs agora tem um comando guestmount que faz rodar uma máquina virtual para permitir que você monte partições arbitrárias no espaço do usuário.

    
por 28.08.2014 / 21:01