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:
alors que je n'ai aucun jeu de configuration PXE:
J'ai essayé:
emulator
en /usr/bin/kvm
de /usr/bin/kvm-spice
en modifiant le code XML.virtio
pour des raisons de performances. Cependant, e1000e
ne fonctionne pas non plus.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?
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.
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.
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.
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
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 PXE
name__.
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.