Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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?


By request of @Selivanov:

$ libvirtd --version
libvirtd (libvirt) 0.8.7

And XML file:

<domain type='kvm'>
    <type arch='x86_64' machine='rhel6.1.0'>hvm</type>
    <boot dev='cdrom'/>
  <clock offset='utc'/>
    <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 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'/>
      <address type='drive' controller='0' bus='1' unit='0'/>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    <interface type='network'>
      <mac address='(SNIP)'/>
      <source network='default'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    <serial type='pty'>
      <target port='0'/>
    <console type='pty'>
      <target type='serial' port='0'/>
    <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'/>
      <model type='cirrus' vram='9216' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
share|improve this question
up vote 8 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
If you edit the XML file you need to reload the VM to effect the updates. /etc/init.d/libvirt-bin reload – Jattie Jun 21 at 13:42

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


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.