Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I am trying to change the boot device for a VM. I go to the VM's XML file in /etc/libvirt/qemu and set <boot dev='cdrom' />. Still, it attempts to boot from the harddrive instead of the cdrom.

I know I have an ISO image loaded on the CD-ROM virtual device.

Am I not doing this correctly? I tried shutting down the VM completely and starting it back up to no avail. Perhaps I need to reload the settings somehow?

Edit:

By request of @Selivanov:

$ libvirtd --version
libvirtd (libvirt) 0.8.7

And XML file:

<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>
share|improve this question

2 Answers 2

up vote 5 down vote accepted

If libvirt doesn't reload VM settings on start/stop, virsh edit command may help. And please write entire XML file and libvirt version

Hmm... everything seems OK. Try adding

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

to <os> section and look if cdrom appears in boot menu. Also try removing all <boot> records from <os> and adding

<boot order='1'/>

to <disk> section

share|improve this answer
    
Apparently, I had to close virt-manager for the settings to reload. Is this the usual case? Is there a way to reload the settings? Also, I'm confused as to why the settings in virt-manager were not taking. –  Belmin Fernandez Sep 22 '11 at 0:24
    
You may reload libvirt-bin service, if it's init script in your distributive supports this, for example in ubuntu: sudo reload libvirt-bin. If you edited xml file with external editor, this is normal. If you used virsh edit or changed settings from virt-manager, this is bug. –  Selivanov Pavel Sep 22 '11 at 7:19
    
Thank you @Selivanov! –  Belmin Fernandez Sep 23 '11 at 0:00

If the VM is down, look for a stored saved image under /var/lib/libvirt/qemu/save - it will keep the old parameters alive, despite changes made via virsh edit. I deleted such image in a similar case where it kept looking for an non-existent network interface (and failing to boot due to this).

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.