Mengubah perangkat boot untuk mesin virtual QEMU-KVM

8

Saya mencoba mengubah perangkat boot untuk VM. Saya pergi ke file XML VM /etc/libvirt/qemudan set <boot dev='cdrom' />. Tetap saja, ia mencoba untuk mem-boot dari hard drive bukan dari cdrom.

Saya tahu saya memiliki gambar ISO yang dimuat pada perangkat virtual CD-ROM.

Apakah saya tidak melakukan ini dengan benar? Saya mencoba mematikan VM sepenuhnya dan mulai kembali tidak berhasil. Mungkin saya perlu memuat ulang pengaturannya entah bagaimana?

Edit:

Atas permintaan @Selivanov:

$ libvirtd --version
libvirtd (libvirt) 0.8.7

Dan file 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>
Belmin Fernandez
sumber

Jawaban:

8

Jika libvirt tidak memuat ulang pengaturan VM saat start / stop, virsh editperintah dapat membantu. Dan tolong tuliskan seluruh file XML dan versi libvirt

Hmm ... semuanya tampak baik-baik saja. Coba tambahkan

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

ke bagian <os> dan lihat apakah cdrom muncul di menu boot. Coba juga hapus semua catatan <boot> dari <os> dan tambahkan

<boot order='1'/>

ke bagian <disk>

Selivanov Pavel
sumber
Rupanya, saya harus menutup virt-managerpengaturan untuk memuat ulang. Apakah ini kasus biasa? Apakah ada cara untuk memuat ulang pengaturan? Juga, saya bingung mengapa pengaturan di virt-managertidak mengambil.
Belmin Fernandez
1
Anda mungkin ulang layanan libvirt-bin, jika skrip init di mendukung distributif Anda ini, misalnya di ubuntu: sudo reload libvirt-bin. Jika Anda mengedit file xml dengan editor eksternal, ini normal. Jika Anda menggunakan virsh editatau mengubah pengaturan dari virt-manager, ini adalah bug.
Selivanov Pavel
Jika Anda mengedit file XML, Anda perlu memuat ulang VM untuk melakukan pembaruan. /etc/init.d/libvirt-bin reload
1

Jika VM turun, cari gambar tersimpan yang disimpan di bawah / var / lib / libvirt / qemu / save - itu akan menjaga parameter lama tetap hidup, meskipun ada perubahan yang dilakukan melalui edit ssh. Saya menghapus gambar tersebut dalam kasus serupa di mana ia terus mencari antarmuka jaringan yang tidak ada (dan gagal mem-boot karena ini).

David Ramirez
sumber