qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Boot order problem


From: Minoru Usui
Subject: Re: [Qemu-devel] Boot order problem
Date: Mon, 25 Jul 2011 16:07:12 +0900

Hi, Gleb

Thank you for your reply.

On Sun, 24 Jul 2011 09:30:49 +0300
Gleb Natapov <address@hidden> wrote:

> On Fri, Jul 22, 2011 at 09:51:16AM +0900, Minoru Usui wrote:
> > Hi, everyone
> > 
> > I'm in trouble about boot order of VM.
> > If anyone know cause of this problem, please let me know.
> > 
> The cause of the "problem" is the design. booindex and -boot only
> modifies the order in which bios will search for bootable device.
> It does not exclude devices from a boot device list.

Hmm, this design is little bit strange to me.
We can specify BIOS boot order on baremetal BIOS.
In this case, we won't expected boots up from not specified boot device, 
generally.

Isn't it intuitive that -boot and bootindex option can specify 
not only boot order, but also boot device list?

> > On following environment, I tried to boot from IDE CD-ROM device 
> > without inserting any bootable media, which is expected to fail,
> > but VM was booting up from virtio HDD which was not specified as bootable 
> > device.
> > 
> >   * host : RHEL6.1(x86_64)
> >     guest: RHEL6.1(x86_64)
> >   * VM has IDE CD-ROM and virtio HDD.
> >   * There is no bootable media in IDE CD-ROM.
> >   * RHEL6.1 is installed in virtio HDD
> >   * Only IDE CD-ROM was spcified as bootable device.
> >   * XML configuration of libvirt is below.
> >     I tested <boot dev> and <boot order> setting,
> >     but both are booting up from virtio HDD.
> >     -------------------------------------------------------
> >     [<boot dev> setting version]
> >       <os>
> >         <type arch='x86_64' machine='rhel6.1.0'>hvm</type>
> >         <boot dev='cdrom'/>
> >         <bootmenu enable='no'/>
> >       </os>
> > 
> >     [<boot order> setting version]
> >        <disk type='file' device='cdrom'>
> >          <driver name='qemu' type='raw'/>
> >          <target dev='hdc' bus='ide'/>
> >          <boot order='1'/>
> >          <readonly/>
> >          <address type='drive' controller='0' bus='1' unit='0'/>
> >        </disk>
> >     -------------------------------------------------------
> > 
> > I installed latest qemu-kvm to /usr/local/qemu, and replaced
> > /usr/libexec/qemu-kvm to /user/local/qemu/bin/qemu-system-x86_64,
> > but it was booting up from virtio HDD.
> > 
> > On RHEL6.0 host, I tested <boot dev> setting version, 
> > VM didn't boot up from virtio HDD.
> > it cannot boot up from CD-ROM. (expected behaviour)
> > 
> This is not expected behaviour. Expected behaviour is VM boots from HDD.
> The only way I can explain behaviour you describe above is that the bios
> you are using for RHEL6.0 rpm does not support booting from virtio HDD.
> You can test this but making HDD to be ide and retry your test.

I changed virtio HDD to IDE HDD, and retry my test on 
RHEL6.0(seabios-0.5.1-3.el6.x86_64),
but VM didn't boot up from IDE HDD.(same result)
Of cource, if I specified IDE HDD first (not IDE CD-ROM), it can boot up.
Am I somthing wrong?

[libvirt setting]
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='none'/>
      <source dev='/dev/sdb5'/>
      <target dev='hda' bus='ide'/>
      <address type='drive' controller='0' bus='1' unit='1'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
      <alias name='ide0-1-0'/>
      <address type='drive' controller='0' bus='1' unit='0'/>
    </disk>
     <controller type='ide' index='0'>
      <alias name='ide0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' 
function='0x1'/>
    </controller>

[qemu-kvm option by ps command]
 qemu      6685     1 21 09:42 ?        00:00:03 /usr/libexec/qemu-kvm -S -M 
rhel6.0.0 -enable-kvm -m 2048
 -smp 2,sockets=2,cores=1,threads=1 -name RHEL5.5-x86_64-disk1 -uuid 
b05c3fa6-a52d-1f15-8412-00a876a0c672
 -nodefconfig -nodefaults -chardev 
socket,id=monitor,path=/var/lib/libvirt/qemu/RHEL5.5-x86_64-disk1.monitor,server,nowait
 -mon chardev=monitor,mode=control -rtc base=utc -boot d -drive 
file=/dev/sdb5,if=none,id=drive-ide0-1-1,format=raw,cache=none
 -device ide-drive,bus=ide.1,unit=1,drive=drive-ide0-1-1,id=ide0-1-1
 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw
 -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev 
tap,fd=24,id=hostnet0
 -device 
virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:47:2a:f9,bus=pci.0,addr=0x3 
-chardev pty,id=serial0
 -device isa-serial,chardev=serial0 -usb -vnc 127.0.0.1:1 -vga cirrus -device 
AC97,id=sound0,bus=pci.0,addr=0x4
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6


> > I checked qemu-kvm option by ps command,
> > but I think correct -boot or bootindex of -device option is specified.
> > 
> > [<boot dev> setting version(RHEL6.1 host)]
> > qemu      9871     1 74 16:22 ?        00:00:25 /usr/libexec/qemu-kvm -S -M 
> > rhel6.1.0 -enable-kvm -m 2048
> >  -smp 8,sockets=8,cores=1,threads=1 -name RHEL6.1-GA -uuid 
> > 49703959-f0b0-9864-5788-4bc07028bac4 -nodefconfig
> >  -nodefaults -chardev 
> > socket,id=charmonitor,path=/var/lib/libvirt/qemu/RHEL6.1-GA.monitor,server,nowait
> >  
> >  -mon chardev=charmonitor,id=monitor,mode=readline -rtc base=utc -boot 
> > order=d,menu=off
> >  -drive 
> > file=/work/libvirt/images/RHEL6.1GA_x86_64_full_file.img,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,aio=threads
> >  -device 
> > virtio-blk-pci,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-disk0
> >  -drive 
> > file=/tmp/not_bootable_image.iso,if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw
> >  -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0
> >  -device 
> > virtio-net-pci,vlan=0,id=net0,mac=52:54:00:0b:68:82,bus=pci.0,addr=0x3 -net 
> > tap,fd=21,vlan=0,name=hostnet0
> >  -chardev pty,id=charserial0 -device 
> > isa-serial,chardev=charserial0,id=serial0 -usb -device usb-tablet,id=input0
> >  -vnc 127.0.0.1:0 -vga cirrus -device intel-hda,id=sound0,bus=pci.0,addr=0x4
> >  -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device 
> > virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6
> > 
> >   -> "-boot order=d" is specified
> > 
> > 
> > [<boot order> setting version(RHEL6.1 host)]
> > qemu      4073     1 23 10:08 ?        00:00:37 /usr/libexec/qemu-kvm -S -M 
> > rhel6.1.0 -enable-kvm -m 2048
> >  -smp 8,sockets=8,cores=1,threads=1 -name RHEL6.1-GA -uuid 
> > 49703959-f0b0-9864-5788-4bc07028bac4 -nodefconfig -nodefaults -chardev 
> > socket,id=charmonitor,path=/var/lib/libvirt/qemu/RHEL6.1-GA.monitor,server,nowait
> >  -mon chardev=charmonitor,id=monitor,mode=readline -rtc base=utc -drive 
> > file=/work/libvirt/images/RHEL6.1GA_x86_64_full_file.img,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,aio=threads
> >  -device 
> > virtio-blk-pci,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-disk0
> >  -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw
> >  -device 
> > ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1
> >  -device 
> > virtio-net-pci,vlan=0,id=net0,mac=52:54:00:0b:68:82,bus=pci.0,addr=0x3 -net 
> > tap,fd=21,vlan=0,name=hostnet0
> >  -chardev pty,id=charserial0 -device 
> > isa-serial,chardev=charserial0,id=serial0 -usb -device usb-tablet,id=input0
> >  -vnc 127.0.0.1:0 -vga cirrus -device intel-hda,id=sound0,bus=pci.0,addr=0x4
> >  -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device 
> > virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6
> > 
> >   -> "bootindex=1" is specified for IDE CD-ROM device only.
> > 
> > 
> > Next, I suspected seabios, but it was same version of RHEL6.0 and RHEL6.1.
> > 
> >   # rpm -q seabios
> >   seabios-0.6.1.2-3.el6.x86_64
> > 
> This bios supports booting from virtio and when I do the same test as
> you, qemu boots from virtio HDD. Try to reinstall seabios rpm.

I recheck the version of seabios, it was different version of RHEL6.0 and 
RHEL6.1.
I'm sorry for misleading.

[RHEL6.0]
  seabios-0.5.1-3.el6.x86_64

[RHEL6.1]
  seabios-0.6.1.2-3.el6.x86_64

> > What causes this problem?
> > -- 
> > Minoru Usui <address@hidden>
> 
> --
>                       Gleb.


-- 
Minoru Usui <address@hidden>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]