From 6fe1fdc57802c699022d3b54920a435daabef969 Mon Sep 17 00:00:00 2001
From: Mark McLoughlin <markmc@redhat.com>
Date: Tue, 29 Apr 2008 11:30:42 +0100
Subject: [PATCH] kvm: qemu: Allow booting from extboot drive with -kernel
The -kernel option generates a new boot sector for
the boot drive which jumps directly to the supplied
kernel rather than running the standard bootloader.
Trivially fix generate_bootsect() to handle the
case where we're booting using extboot.
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
---
qemu/hw/pc.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/qemu/hw/pc.c b/qemu/hw/pc.c
index 48a36e0..506ef6b 100644
--- a/qemu/hw/pc.c
+++ b/qemu/hw/pc.c
@@ -405,11 +405,12 @@ static void generate_bootsect(uint32_t gpr[8], uint16_t segs[6], uint16_t ip)
{
uint8_t bootsect[512], *p;
int i;
- int hda;
+ int hda = extboot_drive;
- hda = drive_get_index(IF_IDE, 0, 0);
+ if (hda == -1)
+ hda = drive_get_index(IF_IDE, 0, 0);
if (hda == -1) {
- fprintf(stderr, "A disk image must be given for 'hda' when booting "
+ fprintf(stderr, "-hda or -drive boot=on must be given when booting "
"a Linux kernel\n");
exit(1);
}
--
1.5.4.1