Gostaria de começar com uma observação de que você deve evitar usar virsh attach-disk
com sua quantidade limitada de opções. Em vez disso, sugiro especificar o formato de disco exato que você preferir em um arquivo XML temporário separado ou usando o aplicativo GUI do virt-manager (para o último, pule a primeira etapa).
-
Crie um arquivo temporário com uma definição de disco como abaixo.
ajuste as propriedades de acordo com a sua situação
<disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/path/to/disk-image.img'/> <target dev='vdb' bus='virtio'/> </disk>
Dica: examine sua configuração atual de domínio XML e copie uma seção
<disk>
de lá.virsh dumpxml <domainname>
-
Agora, antes de adicionar o disco a um domínio atual, verifique se os módulos do kernel hotplug necessários foram carregados no convidado.
Algumas distribuições do Linux, como o recente CentOS / RHEL / Fedora, possuem este built-in no kernel. Nesse caso, verifique por
CONFIG_HOTPLUG_PCI_ACPI
. Se éy
, então está tudo pronto e você pode pular este passo.modprobe acpiphp modprobe pci_hotplug
Considere adicionar esses dois módulos a
/etc/modules
se quiser que eles sejam carregados na inicialização por padrão. -
Adicione o disco à VM em execução usando
virsh attach-device <domain name> /path/to/disk.xml
Opcionalmente, adicione a opção
--persistent
para permitir que o Libvirt atualize a definição XML do domínio 'persistente'. -
Finalmente, verifique dentro do convidado se o disco foi realmente inserido no hotplug. O kernel deve ser acionado, como pode ser verificado com
dmesg
:[ 321.946440] virtio-pci 0000:00:06.0: using default PCI settings [...] [ 321.952782] vdb: vdb1 vdb2
No exemplo acima, adicionei um disco como
vdb
com duas partições na tabela de partições.