Virtualization

更改 QEMU-KVM 虛擬機的引導設備

  • June 21, 2016

我正在嘗試更改 VM 的啟動設備。我進入 VM 的 XML 文件/etc/libvirt/qemu並設置<boot dev='cdrom' />. 儘管如此,它還是嘗試從硬碟驅動器而不是 cdrom 引導。

我知道我在 CD-ROM 虛擬設備上傳入了一個 ISO 映像。

我這樣做不正確嗎?我嘗試完全關閉虛擬機並重新啟動它無濟於事。也許我需要以某種方式重新載入設置?

編輯:

應@Selivanov 的要求:

$ libvirtd --version
libvirtd (libvirt) 0.8.7

和 XML 文件:

<domain type='kvm'>
 <name>nimmy.example.com</name>
 <uuid>(SNIP)</uuid>
 <memory>524288</memory>
 <currentMemory>524288</currentMemory>
 <vcpu>1</vcpu>
 <os>
   <type arch='x86_64' machine='rhel6.1.0'>hvm</type>
   <boot dev='cdrom'/>
 </os>
 <features>
   <acpi/>
   <apic/>
   <pae/>
 </features>
 <clock offset='utc'/>
 <on_poweroff>destroy</on_poweroff>
 <on_reboot>restart</on_reboot>
 <on_crash>restart</on_crash>
 <devices>
   <emulator>/usr/libexec/qemu-kvm</emulator>
   <disk type='file' device='disk'>
     <driver name='qemu' type='raw' cache='none'/>
     <source file='/var/lib/libvirt/images/nimmy.img'/>
     <target dev='hda' bus='ide'/>
     <address type='drive' controller='0' bus='0' unit='0'/>
   </disk>
   <disk type='file' device='cdrom'>
     <driver name='qemu' type='raw'/>
     <source file='/home/nimmy/CentOS-6.0-x86_64-netinstall.iso'/>
     <target dev='hdc' bus='ide'/>
     <readonly/>
     <address type='drive' controller='0' bus='1' unit='0'/>
   </disk>
   <controller type='ide' index='0'>
     <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
   </controller>
   <interface type='network'>
     <mac address='(SNIP)'/>
     <source network='default'/>
     <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
   </interface>
   <serial type='pty'>
     <target port='0'/>
   </serial>
   <console type='pty'>
     <target type='serial' port='0'/>
   </console>
   <input type='mouse' bus='ps2'/>
   <graphics type='vnc' port='-1' autoport='yes'/>
   <sound model='ac97'>
     <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
   </sound>
   <video>
     <model type='cirrus' vram='9216' heads='1'/>
     <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
   </video>
   <memballoon model='virtio'>
     <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
   </memballoon>
 </devices>
</domain>

如果 libvirt 在啟動/停止時沒有重新載入 VM 設置,virsh edit命令可能會有所幫助。請編寫整個 XML 文件和 libvirt 版本

嗯……一切似乎都很好。嘗試添加

<boot dev='hd'/>
<boot dev='cdrom'/>
<bootmenu enable='yes'/>

到 <os> 部分並查看 cdrom 是否出現在啟動菜單中。還嘗試從 <os> 中刪除所有 <boot> 記錄並添加

&lt;boot order='1'/&gt;

到 <磁碟> 部分

如果 VM 已關閉,請在 /var/lib/libvirt/qemu/save 下查找儲存的已保存映像 - 儘管通過 virsh edit 進行了更改,它仍將保持舊參數有效。我在類似的情況下刪除了這樣的圖像,它一直在尋找不存在的網路介面(並且因此無法啟動)。

引用自:https://serverfault.com/questions/313701