web-dev-qa-db-fra.com

Comment désactiver les tentatives de démarrage indésirables iPXE dans Libvirt / qemu-kvm?

Après la mise à niveau vers 12.04, mes machines virtuelles démarrent toujours avec une tentative de démarrage à partir du réseau. Regarde ça:

virt-manager screenshot

alors que je n'ai aucun jeu de configuration PXE:

PXE boot configuration

J'ai essayé:

  • pour désactiver SPICE, modifiez le emulatoren /usr/bin/kvm de /usr/bin/kvm-spice en modifiant le code XML.
  • Ctrl+B configurer l’iPXE, mais il ne permet pas de le désactiver en tant qu’option de démarrage.
  • définir un autre type de NIC - ce n'est pas une option, j'ai besoin de virtiopour des raisons de performances. Cependant, e1000e ne fonctionne pas non plus.
  • retirer la carte réseau: fonctionne. Cependant, j'ai besoin de réseau.
  • Googler autour. Difficile. Beaucoup de résultats concernent l'échec des bottes PXE configurées.

Ce n'est pas un gros problème, mais cela augmente les temps de démarrage de 50 à 100% ici (démarrage à partir de SSD), il est donc relativement long et m'énerve.

Comment puis-je le désactiver et démarrer directement à partir du disque dur virtuel?

12
gertvdijk

Réponse courte

Mettez à niveau vers libvirt 0.9.10+ (disponible dans Quantal) et ajoutez l'option <rom bar='off'/> à la configuration d'interface de la définition XML de la machine.

Longue réponse

Maintenant que j'utilise réellement l'option de démarrage iPXE, je constate que le retard survenu sur l'écran SeaBIOS n'est pas une tentative de démarrage réelle. Il ne fait que charger l’option réseau Virtio ROM et cela prend quelques secondes ennuyeuses, c’est-à-dire que il ne fait pas encore de tentative de démarrage iPXE . Ceci m’a amené à relire la documentation de libvirt et j’ai fait une découverte intéressante.

Autant que j'ai pu trouver, depuis libvirt 0.9.7, le comportement a changé pour charger les ROM d'options de l'interface par défaut. Ubuntu 11.10 livré avec 0.9.2, Ubuntu 12.04 est livré avec 0.9.8. Cela explique tout à fait pourquoi je vois cela se produire depuis la mise à niveau vers 12.04.

De plus, cela est devenu configurable dans la version 0.9.10 de libvirt avec l’option <rom bar='off'/> dans le fichier XML! (see here ) Cependant, cette version de libvirt n'est pas disponible dans Ubuntu 12.04 et je devrai mettre à niveau vers 12.10 ou la transférer en arrière. Cela fait tomber Ubuntu 12.04 entre deux tabourets.

D'autres solutions de contournement consistent à supprimer les fichiers de l'option ROM comme indiqué par @ A.H. ' et changer le "système de fichiers" SeaBIOS comme l'a souligné @NlightNFotis. Cependant, dans les deux cas, iPXE sera complètement désactivé et ce n’est pas configurable (si vous vous en tenez à virtio périphériques de réseau uniquement). Comme j'ai une configuration mixte de machines iPXE et de machines non-PXE, j'ai vraiment besoin que cela soit configurable.

6
gertvdijk

Mes expériences sur le même sujet m'ont donné quelques indices:

Le package kvm-ipxe installe plusieurs ROM d’options PXE dans /usr/share/qemu/:

pxe-e1000.rom
pxe-ne2k_isa.rom
pxe-pcnet32.rom
pxe-rtl8139.rom
pxe-virtio.rom

En quelque sorte, ceux-ci sont automatiquement trouvés et utilisés par Seabios lors du démarrage avec l’une de ces cartes réseau. Quand je fais un chmod a= pxe*.rom sur ces fichiers et que je démarre la machine virtuelle, le message "error"

kvm: pci_add_option_rom: failed to find romfile "pxe-rtl8139.rom"

mais il démarre proprement et sans PXE.

5
A.H.

J'ai pu contourner ce problème dans Ubuntu 12.04 en passant les options suivantes à qemu-kvm sur la ligne de commande (définir le romfile à blanc est le truc):

-netdev user,id=hostnet0 -device virtio-net-pci,romfile=,netdev=hostnet0
4
RolKau

D'après vos images, je peux voir que cela est probablement dû au BIOS VM. La configuration VM ne doit pas écraser les paramètres SeaBIOS', ce qui doit forcer la VM à démarrer à partir de PXEname__.

Pour une première solution possible, essayez de voir si vous pouvez entrer dans le BIOS de la machine virtuelle et éditer les options qui y sont répandues.

REMARQUE: continuera de mettre à jour la réponse pendant que mes recherches révèlent un plus grand nombre de solutions ou de causes possibles.

[EDIT # 1]: Vous pouvez trouver des informations sur la configuration de l'ordre de démarrage dans SeaBIOS ici . Cela devrait résoudre le problème.

0
NlightNFotis