Fix booting QEMU off CDROM devices with -drive arg

This commit is contained in:
Daniel P. Berrange 2008-07-11 09:56:23 +00:00
parent d4f6e9b5bb
commit 69582431a0
7 changed files with 67 additions and 1 deletions

View File

@ -1,3 +1,10 @@
Fri Jul 11 10:55:59 BST 2008 Daniel P. Berrange <berrange@redhat.com>
* src/qemu_conf.c: Fix booting off CDROM devices
* tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-*,
tests/qemuxml2argvtest.c: New test cases for booting off
CDROM with QEMU
Fri Jul 11 10:50:59 BST 2008 Daniel P. Berrange <berrange@redhat.com> Fri Jul 11 10:50:59 BST 2008 Daniel P. Berrange <berrange@redhat.com>
* libvirt.spec.in, qemud/Makefile.am: Rename installed polkit * libvirt.spec.in, qemud/Makefile.am: Rename installed polkit

View File

@ -2624,7 +2624,8 @@ int qemudBuildCommandLine(virConnectPtr conn,
disk->src, qemudBusIdToName(disk->bus, 1), disk->src, qemudBusIdToName(disk->bus, 1),
media ? media : "", media ? media : "",
idx, idx,
bootable ? ",boot=on" : ""); bootable && disk->device == QEMUD_DISK_DISK
? ",boot=on" : "");
ADD_ARG_LIT("-drive"); ADD_ARG_LIT("-drive");
ADD_ARG_LIT(opt); ADD_ARG_LIT(opt);

View File

@ -0,0 +1 @@
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot d -drive file=/dev/HostVG/QEMUGuest1,if=ide,index=0 -drive file=/dev/HostVG/QEMUGuest2,if=ide,media=cdrom,index=2 -net none -serial none -parallel none -usb

View File

@ -0,0 +1,26 @@
<domain type='qemu'>
<name>QEMUGuest1</name>
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
<memory>219200</memory>
<currentMemory>219200</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch='i686' machine='pc'>hvm</type>
<boot dev='cdrom'/>
</os>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/bin/qemu</emulator>
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
</disk>
<disk type='block' device='cdrom'>
<source dev='/dev/HostVG/QEMUGuest2'/>
<target dev='hdc' bus='ide'/>
</disk>
</devices>
</domain>

View File

@ -0,0 +1 @@
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -drive file=/dev/HostVG/QEMUGuest1,if=ide,index=0,boot=on -drive file=/dev/HostVG/QEMUGuest2,if=ide,media=cdrom,index=2 -net none -serial none -parallel none -usb

View File

@ -0,0 +1,26 @@
<domain type='qemu'>
<name>QEMUGuest1</name>
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
<memory>219200</memory>
<currentMemory>219200</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch='i686' machine='pc'>hvm</type>
<boot dev='hd'/>
</os>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/bin/qemu</emulator>
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
</disk>
<disk type='block' device='cdrom'>
<source dev='/dev/HostVG/QEMUGuest2'/>
<target dev='hdc' bus='ide'/>
</disk>
</devices>
</domain>

View File

@ -158,6 +158,10 @@ mymain(int argc, char **argv)
QEMUD_CMD_FLAG_DRIVE_BOOT); QEMUD_CMD_FLAG_DRIVE_BOOT);
DO_TEST("disk-xenvbd", QEMUD_CMD_FLAG_DRIVE | DO_TEST("disk-xenvbd", QEMUD_CMD_FLAG_DRIVE |
QEMUD_CMD_FLAG_DRIVE_BOOT); QEMUD_CMD_FLAG_DRIVE_BOOT);
DO_TEST("disk-drive-boot-disk", QEMUD_CMD_FLAG_DRIVE |
QEMUD_CMD_FLAG_DRIVE_BOOT);
DO_TEST("disk-drive-boot-cdrom", QEMUD_CMD_FLAG_DRIVE |
QEMUD_CMD_FLAG_DRIVE_BOOT);
DO_TEST("graphics-vnc", 0); DO_TEST("graphics-vnc", 0);
DO_TEST("graphics-sdl", 0); DO_TEST("graphics-sdl", 0);
DO_TEST("input-usbmouse", 0); DO_TEST("input-usbmouse", 0);