O KVM não pode acessar imagens qcow2 armazenadas em um disco rígido externo

1

Estou executando o Deepin 15.3 x64 e tenho um HDD externo com sistema de arquivos EXT4. onde eu armazeno coisas como imagens de VM. O Oracle VM VirtualBox e o VMware Workstation Player funcionam bem com essa configuração, mas o KVM não pode ler arquivos dele. Eu tentei chown os arquivos, o diretório de contêineres e até chmod -R 0777 em toda a unidade. Mas o KVM ainda reclama que não pode acessar o diretório. No entanto, o KVM pode criar imagens lá, mas o KVM não poderá acessar o arquivo de imagem assim que for criado. Aqui há um vídeo disso (caso algo não esteja claro). Note que não posso mover as imagens para / var / lib / libvirt / images porque não tenho espaço suficiente no meu SSD para nenhuma delas.

    
por Weylyn Savan 09.02.2017 / 19:40

3 respostas

1

O problema que eu estava tendo era que meu sistema (Fedora 27) monta automaticamente novos drives (HDDs externos, USB, SD) para

/run/media/(username)/(device name)

Por qualquer motivo, isso causa o problema de permissões. O que fiz para corrigir o problema foi desmontar a unidade desse local como root e montá-la em /mnt . Meu pendrive USB é /dev/sdc1 no meu sistema, então fiz o seguinte.

# su  -     (then enter root password)
# umount  /run/media/yourusername/devicename
# mount  /dev/sdc1 /mnt        (mount usb to /mnt)

Depois disso, certifiquei-me de ter links simbólicos do local original das unidades qcow2 para o novo local (ainda como root)

# cd  /var/lib/libvirt/images
# ln  -s  (new target)  (link name)   

então se o seu vm é chamado MyVM

# ln  -s  /mnt/Myvm.qcow2  MyVm.qcow2

Quando vi que minhas VMs estavam funcionando agora, editei /etc/fstab para montar automaticamente a unidade em /mnt . As pastas e as unidades qcow2 eram de propriedade de minha conta de usuário e grupo padrão. Tenho certeza de que existem maneiras melhores de fazer isso, mas é isso que funcionou para mim.

    
por 13.02.2018 / 17:01
2

Solução: Execute o Virtmanager como root, escolha criar uma nova VM - > selecione "Importar imagem de disco existente" e procure-a. Depois de clicar em continuar, ele perguntará se você deseja corrigir problemas de permissão ou não para esse caminho. Depois de escolher "Sim", ele corrige o problema de permissão e funciona quando ele está sendo executado como um usuário normal também.

    
por 26.02.2017 / 08:51
0

O KVM usa o libvirt, que requer que as imagens estejam em um conjunto definido. Você pode fazer isso com o Virsh copiando a configuração do pool padrão

virsh pool-dumpxml default > new_pool.xml
edit new_pool.xml ## use a different name & path
virsh pool-create new_pool.xml
virsh pool-refresh name

O KVM deve, então, conseguir capturar imagens em sua unidade adicional.

    
por 10.02.2017 / 16:07