Como posso montar partições em uma imagem de disco completa (ou seja, imagem com tabela de partições) com fusível?

Como posso montar partições em uma imagem de disco completa (ou seja, imagem com tabela de partições) com fusível?

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

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

Caso de uso

Meu caso de uso é construir imagens de disco em um servidor de construção automática onde o trabalho de construção não tem permissão para ter permissões de root e o servidor não deve precisar de uma configuração personalizada para trabalhos de construção específicos.

Responder1

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

Solução

Com as ferramentas apt-get-able, o seguinte problema é 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 ideia básica é que o fusível pode ser usado para separar uma imagem de disco completa em arquivos que apontam para suas partições. O vdfuse faz isso, mas é uma ferramenta do VirtualBox e requer um arquivo VDI ou VMDK para funcionar. xmount usa fuse 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 raw 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:

https://bugs.launchpad.net/ubuntu/+source/virtualbox-ose/+bug/1019075

Responder2

montagemutilitário que é um wrapper em torno do programa de montagem padrão que permite que usuários normais montem dispositivos removíveis sem uma entrada /etc/fstab correspondente.

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

Responder3

  1. losetupa imagem
  2. kpartx -avo dispositivo de loopback resultante
  3. Use as partições resultantes /dev/mapper/...como faria com um disco físico

Você pode realizar todas essas tarefas usando um mapa de montagem automática executável.

A chdirpoderia desencadear todas as ações acima. Ou use sudo para um script de configuração/remoção. Ou...

Responder4

libguestfs agora possui um comando guestmountque ativa uma máquina virtual para permitir montar partições arbitrárias no espaço do usuário.

informação relacionada