Diferente do OP, estou usando o Centos7 e o hypervisor principal é o HyperV. Dito isso, a maior parte disso se aplica a outras distros e hipervisores.
Eu tenho o systemd-networkd configurado para usar o DHCP em todas as interfaces conectadas, e não tive problemas com a configuração da rede. Embora eu goste do poder do systemd-networkd, para o DNS ele requer systemd-resolved - que sai significativamente do comportamento tradicional do resolvedor. Eu fico com isso ... por enquanto.
O que eu tive problemas com os módulos do kernel. Primeiro, muitos módulos para vários hipervisores não foram instalados. Segundo, dracut
(que cria o initramfs no centos e em algumas outras distros) examina o hardware atual e inclui apenas módulos que funcionam com esse hardware. É possível forçá-lo a incluir outros módulos via --add-drivers
, mas você deve saber os nomes exatos dos arquivos para os módulos. Para qualquer hypervisor, você provavelmente precisará de armazenamento virtual e módulos de rede virtual, e talvez um driver de memória de balão, etc.
Ao elaborar argumentos para o dracut, observe a distinção entre um dracut module
e um kernel module
.
A lista de opções do dracut pode ser encontrada no link ; Acabei com algo semelhante ao seguinte (note que não tenho certeza se os nomes dos módulos do kernel são precisos - e se eles são apenas para o HyperV):
dracut --kver 0 -f --xz -a "busybox mdraid" -o "bootchart dash plymouth btrfs dmraid fcoe-uefi iscsi nbd biosdevname" --no-kernel --add-drivers "hv_storvsc hv_vmbus hv_utils"
Outra resposta sugere o formato OVF. A importação do IIRC OVF para o HyperV requer o download de um plugin que precisa de uma versão .NET muito antiga ... em outras palavras, é doloroso se o HyperV for o hipervisor usado com mais frequência para os vm's.
Felizmente, os VHDs são importáveis por muitos hipervisores e facilmente criados pelo qemu-img a partir do raw, qcow2, etc.