どういうわけか、12.04にアップグレードした後、仮想マシンは常に最初にネットワークからの起動を試みて起動します。こちらをご覧ください:
pXE構成が設定されていない場合:
私はもう試した:
emulator
を/usr/bin/kvm
から/usr/bin/kvm-spice
に変更してSPICEを無効にします。virtio
が必要です。ただし、e1000e
も機能しません。大きな問題ではありませんが、ここではブート時間が50〜100%増加します(SSDからのブート)ので、比較的長く、イライラさせられます。
これを無効にして仮想ハードディスクから直接起動するにはどうすればよいですか?
Libvirt 0.9.10+(Quantalで利用可能)にアップグレードし、<rom bar='off'/>
オプションをマシンのXML定義のインターフェース構成に追加します。
IPXEブートオプションを実際に使用しているので、SeaBIOS画面で発生する遅延は実際のブート試行ではないことがわかります。 VirtioネットワークオプションROMを読み込んでいるだけで、数秒の時間を要します。つまり、iPXEブート試行はまだ行われていません。これによりlibvirtのドキュメントを再度読むことになり、興味深い発見をしました。
私の知る限り、libvirt 0.9.7以降、デフォルトでインターフェースのオプションROMをロードするように動作が変更されました。 Ubuntu 11.10には0.9.2が付属し、Ubuntu 12.04には0.9.8が付属しています。これは、12.04へのアップグレード以降、なぜこのようなことが起こるのかについて、間違いなく理にかなっています。
さらに、これはlibvirtバージョン0.9.10でXMLの<rom bar='off'/>
オプションで設定可能になりました! ( here を参照)ただし、そのバージョンのlibvirtはUbuntu 12.04では使用できないため、12.10にアップグレードするか、バックポートする必要があります。これにより、Ubuntu 12.04は2つのスツールの間になります。
他の回避策は、@ A.Hによって指摘されたオプションROMファイルを削除することです。 @NlightNFotisが指摘したSeaBIOS 'filesystem'を変更します。ただし、どちらの方法でも基本的にiPXEは完全に無効になり、構成できません(virtio
ネットワークデバイスのみに固執する場合)。 iPXEマシンと非PXEマシンのセットアップが混在しているため、これを設定する必要があります。
同じ問題に関する私の実験は、いくつかのヒントを与えてくれました。
パッケージkvm-ipxe
は、いくつかのPXEオプションROMを/usr/share/qemu/
にインストールします。
pxe-e1000.rom
pxe-ne2k_isa.rom
pxe-pcnet32.rom
pxe-rtl8139.rom
pxe-virtio.rom
これらのNICの1つで起動すると、どういうわけかこれらは自動的に検出され、seabiosによって使用されます。これらのファイルでchmod a= pxe*.rom
を実行して仮想マシンを起動すると、「エラー」メッセージが表示されます
kvm: pci_add_option_rom: failed to find romfile "pxe-rtl8139.rom"
ただし、PXEなしで正常に起動します。
コマンドラインでqemu-kvmに次のオプションを渡すことで、Ubuntu 12.04でこれを回避できました(romfileを空白に設定するのがコツです):
-netdev user,id=hostnet0 -device virtio-net-pci,romfile=,netdev=hostnet0
あなたの写真から、VM BIOSに関係している可能性が高いことがわかります。 VM構成はSeaBIOS
'設定を上書きしてはなりません。これは、VMが最初にPXE
から起動するようにする必要があります。
最初の可能な解決策として、仮想マシンのBIOSを入力してそこにあるオプションを編集できるかどうかを確認してください。
注:私の研究がより多くの可能な解決策または原因を明らかにする間、答えを更新し続けます。
[EDIT#1]:SeaBIOS here で起動順序を設定する方法に関する情報を見つけることができます。 それで問題が解決するはずです。