[libvirt-users] boot device

Hi, I am trying to create a guest machine on xen virtualized environment and install rhel on it by booting from cdrom. I face a issue in booting device. I gave boot order as hd,cdrom. When doing maiden installation, it will find nothing in hard disk and boots from cd. Once installation is completed and when it boots next time it boots from hard disk. It is the expected behaviour. But it fails to boot from hard disk and again boots from cdrom. I also tried specifying per boot device option. I specified disk image as boot order 1 and cd image as boot order 2. But when i power on for the first time, it tries to boot from harddisk and finds nothing there and says " No bootable device. Going to power off in 30 seconds". But expected is, it should boot from cd after trying hard disk. Below is my domain configuration xml file i used to create guest domain. <domain type='xen'> <name>vm-2</name> <memory>1048576</memory> <vcpu>1</vcpu> <os> <type arch='x86_64'>hvm</type> <loader>/usr/lib/xen/boot/hvmloader</loader> <!-- <boot dev='hd' /> <boot dev='cdrom'/> --> </os> <features> <acpi/> <apic/> <pae/> </features> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/lib/xen/bin/qemu-dm</emulator> <disk type='file' device='disk'> <source file='/var/lib/libvirt/images/vm-2.img'/> <target dev='xvda' bus='ide' /> <boot order='1'/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> <disk type='file' device='cdrom'> <source file='/var/lib/libvirt/images/Rhel53.iso'/> <target dev='hdc' bus='ide' /> <boot order='2'/> <readonly/> <address type='drive' controller='0' bus='1' target='0' unit='0' /> </disk> <interface type='bridge'> <source bridge='br0'/> </interface> <graphics type='vnc' port='-1' autoport='yes'/> </devices> </domain> I don't know where i am going wrong. So need help in resolving this issue. Thanks,

On Wed, Sep 05, 2012 at 19:22:27 +0530, vivek hari wrote:
Hi,
I am trying to create a guest machine on xen virtualized environment and install rhel on it by booting from cdrom. I face a issue in booting device. I gave boot order as hd,cdrom. When doing maiden installation, it will find nothing in hard disk and boots from cd. Once installation is completed and when it boots next time it boots from hard disk. It is the expected behaviour. But it fails to boot from hard disk and again boots from cdrom.
Looks like the real issue is that it fails to boot from hard disk.
I also tried specifying per boot device option. I specified disk image as boot order 1 and cd image as boot order 2. But when i power on for the first time, it tries to boot from harddisk and finds nothing there and says " No bootable device. Going to power off in 30 seconds". But expected is, it should boot from cd after trying hard disk.
Xen driver does not support per-device boot configuration. Which means we have a bug in libvirt because starting such domain should fail immediately because of this. Jirka

Hi, Yes, it failed to boot from hard disk, instead booted from cd. I made a simple modification to the domain xml config file attached before. I replaced "target='xvda' with target='hda'" and removed per boot option. This time, installation was successful and booted from hd. Since installation was successful i deleted the iso file, then rebooted the machine, but it failed with the error. virsh # start vm-2 error: Failed to start domain vm-2 error: POST operation failed: xend_post: error from xen daemon: (xend.err 'Disk image does not exist: /var/lib/libvirt/images/Rhel53.iso') I hope this is not the proper behaviour. Below is my config file i used this time. <domain type='xen'> <name>vm-2</name> <memory>1048576</memory> <vcpu>1</vcpu> <os> <type arch='x86_64'>hvm</type> <loader>/usr/lib/xen/boot/hvmloader</loader> <boot dev='hd' /> <boot dev='cdrom'/> </os> <features> <acpi/> <apic/> <pae/> </features> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/lib/xen/bin/qemu-dm</emulator> <disk type='file' device='disk'> <source file='/var/lib/libvirt/images/vm-2.img'/> <target dev='hda' bus='ide' /> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> <disk type='file' device='cdrom'> <source file='/var/lib/libvirt/images/Rhel53.iso'/> <target dev='hdc' bus='ide' /> <readonly/> <address type='drive' controller='0' bus='1' target='0' unit='0' /> </disk> <interface type='bridge'> <source bridge='br0'/> </interface> <graphics type='vnc' port='-1' autoport='yes'/> </devices> </domain> Similar config file I used on kvm and esxi, i din't face any issue there. Can you let me know how libvirt sorts the boot device ? Thanks, Vivek On Thu, Sep 6, 2012 at 2:59 PM, Jiri Denemark <jdenemar@redhat.com> wrote:
On Wed, Sep 05, 2012 at 19:22:27 +0530, vivek hari wrote:
Hi,
I am trying to create a guest machine on xen virtualized environment and install rhel on it by booting from cdrom. I face a issue in booting device. I gave boot order as hd,cdrom. When doing maiden installation, it will find nothing in hard disk and boots from cd. Once installation is completed and when it boots next time it boots from hard disk. It is the expected behaviour. But it fails to boot from hard disk and again boots from cdrom.
Looks like the real issue is that it fails to boot from hard disk.
I also tried specifying per boot device option. I specified disk image as boot order 1 and cd image as boot order 2. But when i power on for the first time, it tries to boot from harddisk and finds nothing there and says " No bootable device. Going to power off in 30 seconds". But expected is, it should boot from cd after trying hard disk.
Xen driver does not support per-device boot configuration. Which means we have a bug in libvirt because starting such domain should fail immediately because of this.
Jirka

On Thu, Sep 06, 2012 at 19:47:27 +0530, vivek hari wrote:
Hi,
Yes, it failed to boot from hard disk, instead booted from cd. I made a simple modification to the domain xml config file attached before. I replaced "target='xvda' with target='hda'" and removed per boot option. This time, installation was successful and booted from hd. Since installation was successful i deleted the iso file, then rebooted the machine, but it failed with the error.
virsh # start vm-2 error: Failed to start domain vm-2 error: POST operation failed: xend_post: error from xen daemon: (xend.err 'Disk image does not exist: /var/lib/libvirt/images/Rhel53.iso')
I hope this is not the proper behaviour. Below is my config file i used this time.
...
<disk type='file' device='cdrom'> <source file='/var/lib/libvirt/images/Rhel53.iso'/> <target dev='hdc' bus='ide' /> <readonly/> <address type='drive' controller='0' bus='1' target='0' unit='0' /> </disk>
...
Similar config file I used on kvm and esxi, i din't face any issue there. Can you let me know how libvirt sorts the boot device ?
Just remove the <source> element from cdrom device and it should work even for xen. Jirka

Hi, Just remove the <source> element from cdrom device and it should work even for xen. This will work, but is this the correct way? I din't remove soure attribute from config file for esx and kvm after installation, but there i had no issues. Can we control citrix xen server with libvirt ? If so, can you provide me the links for documents. Thanks, Vivek On Fri, Sep 7, 2012 at 2:42 PM, Jiri Denemark <jdenemar@redhat.com> wrote:
On Thu, Sep 06, 2012 at 19:47:27 +0530, vivek hari wrote:
Hi,
Yes, it failed to boot from hard disk, instead booted from cd. I made a simple modification to the domain xml config file attached before. I replaced "target='xvda' with target='hda'" and removed per boot option. This time, installation was successful and booted from hd. Since installation was successful i deleted the iso file, then rebooted the machine, but it failed with the error.
virsh # start vm-2 error: Failed to start domain vm-2 error: POST operation failed: xend_post: error from xen daemon: (xend.err 'Disk image does not exist: /var/lib/libvirt/images/Rhel53.iso')
I hope this is not the proper behaviour. Below is my config file i used this time.
...
<disk type='file' device='cdrom'> <source file='/var/lib/libvirt/images/Rhel53.iso'/> <target dev='hdc' bus='ide' /> <readonly/> <address type='drive' controller='0' bus='1' target='0' unit='0' /> </disk>
...
Similar config file I used on kvm and esxi, i din't face any issue there. Can you let me know how libvirt sorts the boot device ?
Just remove the <source> element from cdrom device and it should work even for xen.
Jirka
participants (2)
-
Jiri Denemark
-
vivek hari