Anthony Liguori
2007-Dec-05 16:25 UTC
[Xen-devel] [PATCH 2/2] Option ROM for booting from SCSI/PV disks
Hi, The attached patch is an option ROM that allows x86 guests to boot from any block device supported by QEMU (and the guest kernel). It works by hijacking the BIOS int13 function and then uses a very simply protocol to communicate all block requests to QEMU. This patch also adds a "boot=on|off" parameter to the -drive option. When this option is specified, the extboot option ROM is automatically loaded and this device will be exposes by int13 as ''0x80''. What ''-boot c'' really means is boot from the first disk driver or BIOS drive ''0x80'' so the -boot option is complimentary to this new boot flag. I have successfully booted Linux, Win2k, and WinXP from SCSI with this patch. Windows takes a bit of prep work to be able to boot from SCSI. For win2k, you just need to make sure you have the right driver installed. WinXP, however, seems to require that it be installed on SCSI to boot from SCSI. If anyone knows how to modify WinXP after the fact, please let me know. I can also use this new flag to boot a Linux guest from my previously posted virtio blk driver. This patch is against my previous virtio patches but does not strictly depend on them. When applying this patch, you''ll have to build extboot in extboot/ and then copy extboot/extboot.bin to pc-bios/extboot.bin. Regards, Anthony Liguori _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com lists.xensource.com/xen-devel
Avi Kivity
2007-Dec-20 11:45 UTC
[Xen-devel] Re: [Qemu-devel] [PATCH 2/2] Option ROM for booting from SCSI/PV disks
Anthony Liguori wrote:> Hi, > > The attached patch is an option ROM that allows x86 guests to boot > from any block device supported by QEMU (and the guest kernel). It > works by hijacking the BIOS int13 function and then uses a very simply > protocol to communicate all block requests to QEMU. > > This patch also adds a "boot=on|off" parameter to the -drive option. > When this option is specified, the extboot option ROM is automatically > loaded and this device will be exposes by int13 as ''0x80''. What > ''-boot c'' really means is boot from the first disk driver or BIOS > drive ''0x80'' so the -boot option is complimentary to this new boot flag. > > I have successfully booted Linux, Win2k, and WinXP from SCSI with this > patch. Windows takes a bit of prep work to be able to boot from > SCSI. For win2k, you just need to make sure you have the right > driver installed. WinXP, however, seems to require that it be > installed on SCSI to boot from SCSI. If anyone knows how to modify > WinXP after the fact, please let me know. > > I can also use this new flag to boot a Linux guest from my previously > posted virtio blk driver. > > This patch is against my previous virtio patches but does not strictly > depend on them. When applying this patch, you''ll have to build > extboot in extboot/ and then copy extboot/extboot.bin to > pc-bios/extboot.bin.Now that we have scsi support (with -drive) I would like to apply this to the kvm tree (I already applied the CHS refactoring patch). But as qemu seems to shy away from sources which can only compile on x86, can you rearrange it to build outside the qemu/ dir (i.e. a new toplevel extboot/)? The qemu changes should be in a separate patch. -- Do not meddle in the internals of kernels, for they are subtle and quick to panic. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com lists.xensource.com/xen-devel