From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Fcxgb-00015H-Fk for qemu-devel@nongnu.org; Mon, 08 May 2006 00:49:33 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1FcxgY-000140-3u for qemu-devel@nongnu.org; Mon, 08 May 2006 00:49:30 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1FcxgX-00013s-MZ for qemu-devel@nongnu.org; Mon, 08 May 2006 00:49:29 -0400 Received: from [128.8.10.163] (helo=po1.wam.umd.edu) by monty-python.gnu.org with esmtp (Exim 4.52) id 1FcxhI-0007zE-CH for qemu-devel@nongnu.org; Mon, 08 May 2006 00:50:16 -0400 Received: from jbrown.mylinuxbox.org (jma-box.student.umd.edu [129.2.253.219]) by po1.wam.umd.edu (8.12.11.20060308/8.12.10) with ESMTP id k484nRmQ022276 for ; Mon, 8 May 2006 00:49:27 -0400 (EDT) Date: Mon, 8 May 2006 00:49:26 -0400 From: "Jim C. Brown" Subject: Re: [Qemu-devel] using partition images Message-ID: <20060508044926.GA21951@jbrown.mylinuxbox.org> References: <20060508035346.GA12697@jbrown.mylinuxbox.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="bg08WKrSYDhXBjb5" Content-Disposition: inline In-Reply-To: <20060508035346.GA12697@jbrown.mylinuxbox.org> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org --bg08WKrSYDhXBjb5 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Sun, May 07, 2006 at 11:53:46PM -0400, Jim C. Brown wrote: > Known Issues: > > booting is not supported - this will require passing a separate bootsector. I stand corrected. New patch that adds support for booting partition images. Apply this on top of the first one. Also attached is the required bootsector.h (this contains the actual code of the bootsector). Bootsector code for the MBR was taken from http://www.cpqlinux.com/mbr.html. Also attached is a tarball of the sources I used to create bootsector.h -- Infinite complexity begets infinite beauty. Infinite precision begets infinite perfection. --bg08WKrSYDhXBjb5 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="block.patch" --- ../qemu.cvs/block-part-raw.c Sun May 7 23:54:03 2006 +++ block-part-raw.c Mon May 8 00:40:32 2006 @@ -23,6 +23,7 @@ */ #include "vl.h" #include "block_int.h" +#include "bootsector.h" #ifdef __sun__ #include @@ -40,7 +41,7 @@ return 0; } -static int part_raw_open(BlockDriverState *bs, const char *filename) +static int part_raw_open(BlockDriverState *bs, const char *nfilename) { BDRVPartRawState *s = bs->opaque; int fd; @@ -53,6 +54,7 @@ int rv; #endif int head, cylinder, sector; + const char * filename = &(nfilename[5]); fd = open(filename, O_RDWR | O_BINARY | O_LARGEFILE); if (fd < 0) { @@ -102,6 +104,7 @@ /* set up fake MBR */ memset(s->mbr_data, 0, 63*512); + memcpy(s->mbr_data, mbr_boot_sector, 512); /* first partition is bootable */ s->mbr_data[446] = 0x80; /* start head */ --bg08WKrSYDhXBjb5 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="bootsector.h" const char mbr_boot_sector[512] = { 0xfa, 0x33, 0xc0, 0x8e, 0xd0, 0xbc, 0x0, 0x7c, 0x8b, 0xf4, 0x50, 0x7, 0x50, 0x1f, 0xfb, 0xfc, 0xbf, 0x0, 0x6, 0xb9, 0x0, 0x1, 0xf2, 0xa5, 0xea, 0x1d, 0x6, 0x0, 0x0, 0xbe, 0xbe, 0x7, 0xb3, 0x4, 0x80, 0x3c, 0x80, 0x74, 0xe, 0x80, 0x3c, 0x0, 0x75, 0x1c, 0x83, 0xc6, 0x10, 0xfe, 0xcb, 0x75, 0xef, 0xcd, 0x18, 0x8b, 0x14, 0x8b, 0x4c, 0x2, 0x8b, 0xee, 0x83, 0xc6, 0x10, 0xfe, 0xcb, 0x74, 0x1a, 0x80, 0x3c, 0x0, 0x74, 0xf4, 0xbe, 0x8b, 0x6, 0xac, 0x3c, 0x0, 0x74, 0xb, 0x56, 0xbb, 0x7, 0x0, 0xb4, 0xe, 0xcd, 0x10, 0x5e, 0xeb, 0xf0, 0xeb, 0xfe, 0xbf, 0x5, 0x0, 0xbb, 0x0, 0x7c, 0xb8, 0x1, 0x2, 0x57, 0xcd, 0x13, 0x5f, 0x73, 0xc, 0x33, 0xc0, 0xcd, 0x13, 0x4f, 0x75, 0xed, 0xbe, 0xa3, 0x6, 0xeb, 0xd3, 0xbe, 0xc2, 0x6, 0xbf, 0xfe, 0x7d, 0x81, 0x3d, 0x55, 0xaa, 0x75, 0xc7, 0x8b, 0xf5, 0xea, 0x0, 0x7c, 0x0, 0x0, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x20, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x0, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x0, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; --bg08WKrSYDhXBjb5 Content-Type: application/x-tar-gz Content-Disposition: attachment; filename="bootsector.tgz" Content-Transfer-Encoding: base64 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 BRdccMEFF1xwwQUXJoV/AFGEhrwAUAAA --bg08WKrSYDhXBjb5--