guestmount dentro de um contêiner lxd fornece um erro "Operação não permitida"

0

Eu criei um disco qcow2 (usando qemu-img) dentro de um contêiner lbd 16.04 do ubuntu (criado através deste comando: lxc launch images: ubuntu / xenial / amd64 mycont). Eu particionei e formatei com o guestfish sem problemas. Mas quando eu quero montá-lo para preenchê-lo com arquivos eu executo este comando ...:

guestmount -a disco.qcow2 -m / dev / sda1 / caminho / montagem / ponto

... e recebo este erro:

* fusermount: montagem falhada: operação não permitida

libguestfs: erro: fuser_mount: / path / mount / point: operação não permitida *

O mesmo comando em um Ubuntu real funciona bem. Na verdade, o comando "mount" dentro do guestfish também funciona bem. Estou ficando louco porque não consigo encontrar nenhuma solução para isso!

Muito obrigado!

    
por Osqui 10.12.2016 / 00:01

1 resposta

1

Acabei de me deparar com um problema semelhante que precisava de um fusível para o sshfs funcionar dentro do lxd guest. O desenvolvedor do LXD (stgraber) respondeu a uma relatório de erros que é o kernel do Ubuntu que está restringindo as montagens do contêiner.

Links de relatório de bugs para este artigo: Container Mounts no Ubuntu 16.04 .

Em suma, você precisa de pelo menos o kernel 4.4.0-6.21. No host lxd, ative os módulos do kernel necessários para o namespace do usuário Para fusível é

# fuse
echo Y | sudo tee /sys/module/fuse/parameters/userns_mounts
# ext4 (see article for more information, not needed for sshfs)
#echo Y | sudo tee /sys/module/ext4/parameters/userns_mounts

Em seguida, crie um perfil que crie os dispositivos necessários para o udev e o aa_profile:

 lxc profile create nsmount  
 lxc profile set nsmount raw.lxc lxc.aa_profile=unconfined
 # expose these devices to the container  
 lxc profile device add nsmount fuse unix-char path=/dev/fuse  
 #lxc profile device add nsmount loop0 unix-block path=/dev/loop0

Se você estiver criando um novo contêiner, use sinalizadores '-p':

lxc launch ubuntu MyNewContainer -p default -p nsmount

Se você tiver o uso de contêiner existente, aplique:

lxc profile apply MyExistingContainer default,nsmount

Lembre-se de listar todos os perfis aplicados se você tiver outros perfis especiais.

    
por Manwe 04.04.2017 / 07:38