Como definir a inicialização do KVM Kernel “apenas uma vez”?

1

Estou tentando usar a instalação de automação via KVM. O passo é:

  1. Carregar Kernel e initrd do disco
  2. Ele instalará o Linux personalizado no HDD e reinicializará automaticamente
  3. Inicializar a partir do HDD

Então eu uso este comando para instalar o meu Linux personalizado:

virt-install --name Kernel_Test --ram 16384 --vcpus=8 --os-type=linux --os-variant=rhel6 --vnc --hvm --disk path=/kvm_images//Kernel_Test.qcow2,device=disk,format=qcow2,size=50,bus=sata --boot hd,kernel=/tmp/my_vmlinuz,initrd=/tmp/my_image,kernel_args="append stage2=initrd:" --network bridge=bridge1,model=virtio --network bridge=bridge1,model=virtio --network bridge=bridge0,model=virtio 

No entanto, ele ficará preso em um loop, da seguinte maneira:

  1. Inicialize a partir do kernel / initrd - > instalação concluída
  2. Reiniciar
  3. Inicialize a partir do kernel / initrd - > instalação concluída
  4. Reiniciar
  5. (loop)

Eu tentei usar o seguinte comando para remover a configuração relacionada ao kernel, sem sucesso:

virsh dumpxml <VMNAME> >> vmname.xml
(do something to change vmname.xml, strip kernel/initrd boot part)
virsh define vmname.xml

Ele continuará em loop, e quando eu dumpxml novamente, ele ainda mantém a configuração de inicialização do kernel / initrd.

Como preciso de instalação automática, como posso deixar o KVM inicializar apenas uma vez do kernel / initrd destinado? Eu configurei a seqüência de inicialização --boot hd, na frente de kernel= ... , mas ela simplesmente ignora e inicia a inicialização do kernel local / initrd.

    
por Rayer 04.12.2015 / 02:17

1 resposta

0

Se uma inicialização direta do kernel estiver presente, ela sempre será usada e a ordem de inicialização normal será ignorada.

A maneira melhor para lidar com isso é não usar a inicialização direta do kernel para instalar o sistema, mas passar um --location onde a distribuição do Linux que você está instalando reside (que pode estar em um local disco ou um servidor web remoto, servidor FTP ou NFS). Isso também permite que você injete um arquivo kickstart ou preseed local para uma instalação totalmente automatizada. Por exemplo:

--boot hd --location http://mirror.centos.org/centos/7/os/x86_64 --initrd-inject=my_vm.ks --extra-args="ks=file:/my_vm.ks"

Se você não puder fazer isso por algum motivo, então passe --noreboot e corte o XML depois que o virt-install sair. Você terá que reiniciar a VM manualmente. Lembre-se que virt-install pode sair antes da conclusão da instalação, então simplesmente reiniciar a VM não funcionará de forma confiável e poderá interromper uma instalação em progresso.

    
por 04.12.2015 / 02:29