Bug 1120017

Summary: Qemu should give a warning when using boot=off to boot a guest with only one disk
Product: Red Hat Enterprise Linux 6 Reporter: Chengyou Liu <cheliu>
Component: qemu-kvmAssignee: Kevin Wolf <kwolf>
Status: CLOSED NOTABUG QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.6CC: acathrow, bsarathy, chayang, coli, juzhang, kwolf, michen, mkenneth, qzhang, shuang, virt-maint
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-07-22 12:20:59 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Chengyou Liu 2014-07-16 05:15:00 UTC
Description of problem:
Qemu should give a warning when using boot=off to boot a guest with only one disk

Version-Release number of selected component (if applicable):
kernel-2.6.32-489.el6.x86_64
qemu-kvm-0.12.1.2-2.430.el6.x86_64

How reproducible:
100%

Steps to Reproduce:
1.Boot a RHEL.7 guest w/ only one disk when boot=off

-drive file=/root/r7u0-x64.qcow2,if=none,id=drive-disk1,cache=none,format=qcow2,boot=off \
-device virtio-blk-pci,bus=pci.0,addr=0x3,drive=drive-disk1,id=virtio-disk1,bootindex=0 \
2.
3.

Actual results:
No warning or hint for boot=off:
QEMU 0.12.1 monitor - type 'help' for more information
(qemu) 

Expected results:

A warning like this when using boot=off on RHEL7:

Warning: option deprecated, use lost_tick_policy property of kvm-pit instead.
qemu-kvm: boot=on|off is deprecated and will be ignored. Future versions will reject this parameter. Please update your scripts.
QEMU 1.5.3 monitor - type 'help' for more information
(qemu) 

Additional info:
1. The command line is as following:

/usr/libexec/qemu-kvm \
-S \
-M rhel6.6.0 \
-name 'virt-tests-vm1' \
-drive file=/root/r7u0-x64.qcow2,if=none,id=drive-disk1,cache=none,format=qcow2,boot=off \
-device virtio-blk-pci,bus=pci.0,addr=0x3,drive=drive-disk1,id=virtio-disk1,bootindex=0 \
-netdev tap,id=net1,vhost=on,script=/etc/qemu-ifup \
-device virtio-net-pci,mac=9a:55:56:57:58:59,id=nic1,netdev=net1,bus=pci.0,addr=0x5,vectors=4 \
-drive file=/root/RHEL7.0-Server-x86_64.iso,if=none,media=cdrom,id=drive-cdrom1,cache=none \
-device ide-drive,bus=ide.0,unit=0,drive=drive-cdrom1,id=cdrom1 \
-m 2048 \
-smp 2,maxcpus=2,cores=1,threads=1,sockets=2 \
-cpu 'Nehalem' \
-vnc :0 \
-enable-kvm \
-monitor stdio

2. Host info:
processor	: 3
vendor_id	: AuthenticAMD
cpu family	: 16
model		: 2
model name	: AMD Phenom(tm) 9600B Quad-Core Processor
stepping	: 3
cpu MHz		: 1150.000
cache size	: 512 KB
physical id	: 0
siblings	: 4
core id		: 3
cpu cores	: 4
apicid		: 3
initial apicid	: 3
fpu		: yes
fpu_exception	: yes
cpuid level	: 5
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs npt lbrv svm_lock
bogomips	: 4587.57
TLB size	: 1024 4K pages
clflush size	: 64
cache_alignment	: 64
address sizes	: 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate

Comment 2 Chengyou Liu 2014-07-17 09:25:35 UTC
Boot a guest with option "-drive boot=off" (but there is no warning).
The guest can boot normally w/ the option.

QEMU 0.12.1 monitor - type 'help' for more information
(qemu) info status
VM status: running

Comment 5 Kevin Wolf 2014-07-22 12:20:59 UTC
The warning from (upstream qemu based) RHEL 7 would be wrong here because
(qemu-kvm based) RHEL 6 implements boot=on and doesn't ignore it. The default is
boot=off and it behaves like RHEL 7.

The BIOS need to have its own disk driver that can access the disk - this was
only true for IDE in the RHEL 5 and early RHEL 6 days. boot=on enables extboot,
which adds a ROM to the guest that can bypass the emulated device and directly
access the qemu block driver, so that the BIOS doesn't need a disk driver (this
was used for virtio-blk and SCSI).

These days, SeaBIOS has native support for (amongst others) virtio-blk and
SCSI, so this is not required any more for booting from such devices.
Essentially, extboot hasn't only disappeared, but also become completely
useless because the same functionality is provided by SeaBIOS now.