libvirt / 9p / kvm mount no fstab falha ao montar no momento da inicialização

16

Eu estou tentando montar uma pasta compartilhada usando o qemu-kvm / 9p e ele não funciona se eu adicioná-lo ao arquivo fstab. Eu recebo um erro na inicialização que o dispositivo não pode ser montado, mas após o início, se eu executar "mount -a", o dispositivo será montado.

linha fstab:

src_mnt /src 9p trans=virtio 0 0

Do dmesg eu posso ver:

[    7.606258] 9p: Could not find request transport: virtio

E algumas linhas depois, vejo as entradas "virtio-pci". Não estou claro em como adiar a montagem até que o dispositivo esteja disponível no entanto.

    
por edA-qa mort-ora-y 07.11.2012 / 15:13

3 respostas

23

Não sei se é a solução ideal, mas em um convidado do Ubuntu 12.04 eu consegui trabalhar adicionando os módulos 9p ao initramfs.

Adicionado a / etc / initramfs-tools / modules:

9p
9pnet
9pnet_virtio

Então:

sudo update-initramfs -u
    
por 15.01.2013 / 04:19
3

No Ubuntu 14.04, apenas o módulo 9pnet_virtio precisa ser pré-carregado de acordo com a resposta da bhassel .

O dmesg algumas linhas antes da citada mostra que as outras duas já estão carregadas mas não conseguem encontrar o transporte necessário.

[ 1.370611] 9pnet: Installing 9P2000 support 
[ 1.376384] 9p: Installing v9fs 9p2000 file system support 
[ 1.376754] 9pnet: Could not find request transport: virtio 

Testado com o convidado do Ubuntu 14.04 no qemu / KVM no openSUSE 13.2.

    
por 17.02.2015 / 16:33
1

O problema aqui é como a montagem do virtio é configurada no host. Existem duas maneiras de corrigir esse problema.

Solução 1: use mapeado em vez de transporte

<filesystem type='mount' accessmode='mapped'>
  <source dir='/src_dir'/>
  <target dir='src'/>
</filesystem>

Isso funciona, mas todos os arquivos serão de propriedade do usuário libvirt está sendo executado como. Isso não funciona bem para sistemas de arquivos tmp ou log.

Solução 2: Execute o libvirt como root e use o passthrough

vi /etc/libvirt/qemu.conf

Em seguida, descomente ou adicione:

user=root
group=root

Reinicialize o host ou reinicie todos os processos libvirt e qemu / kvm e use o passthrough:

<filesystem type='mount' accessmode='passthrough'>
  <source dir='/src_dir'/>
  <target dir='src'/>
</filesystem>

Embora possa haver algumas implicações de segurança para o host, isso faz com que o uid: gid dos arquivos no host seja o mesmo que o guest, o que funciona bem para os sistemas de arquivos log e tmp. Isso é o que eu faço nessa situação.

    
por 04.02.2017 / 17:26