From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Fxavv-0008Id-MX for qemu-devel@nongnu.org; Mon, 03 Jul 2006 22:46:39 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Fxavt-0008IR-0e for qemu-devel@nongnu.org; Mon, 03 Jul 2006 22:46:38 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Fxavs-0008IO-Rm for qemu-devel@nongnu.org; Mon, 03 Jul 2006 22:46:36 -0400 Received: from [32.97.182.141] (helo=e1.ny.us.ibm.com) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA:32) (Exim 4.52) id 1Fxb9S-00050M-Rx for qemu-devel@nongnu.org; Mon, 03 Jul 2006 23:00:38 -0400 Received: from d01relay04.pok.ibm.com (d01relay04.pok.ibm.com [9.56.227.236]) by e1.ny.us.ibm.com (8.12.11.20060308/8.12.11) with ESMTP id k642kZv4022867 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Mon, 3 Jul 2006 22:46:35 -0400 Received: from d01av04.pok.ibm.com (d01av04.pok.ibm.com [9.56.224.64]) by d01relay04.pok.ibm.com (8.13.6/NCO/VER7.0) with ESMTP id k642kYm3289514 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Mon, 3 Jul 2006 22:46:35 -0400 Received: from d01av04.pok.ibm.com (loopback [127.0.0.1]) by d01av04.pok.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id k642kYQS019144 for ; Mon, 3 Jul 2006 22:46:34 -0400 Received: from wecm-9-67-93-53.wecm.ibm.com (wecm-9-67-93-53.wecm.ibm.com [9.67.93.53]) by d01av04.pok.ibm.com (8.12.11.20060308/8.12.11) with ESMTP id k642kYAH019105 for ; Mon, 3 Jul 2006 22:46:34 -0400 From: Nathaniel McCallum Content-Type: text/plain Date: Mon, 03 Jul 2006 22:45:42 -0400 Message-Id: <1151981142.5476.13.camel@localhost.localdomain> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] QCow v2 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 Mark's notes on the qcow format got me to thinking how useful it would be to be able to store other information in the qcow image itself. For instance you could store the configuration for the virtual machine in the image which could be extracted and then start the virtual machine. So... I'm proposing that the qcow image be extended to support this scenario. Something as simple as: typedef struct QCowHeader { uint32_t magic; uint32_t version; uint8_t embedded_data_type; uint64_t embedded_data_offset; uint32_t embedded_data_size; uint32_t mtime; uint64_t size; uint8_t cluster_bits; uint8_t l2_bits; uint32_t crypt_method; uint64_t l1_table_offset; } QCowHeader; Thus, embedded_data_type is a constant signifying the type of the data. embedded_data_type could be a string, etc. Of course, there are a million other ways this could be implemented. The idea being that we could store more than just backing store. One possible application could be that you could store config info in the image and have a qemu-loader app that extracts the info and starts the virtual machine. Another application could be just misc. metadata: copyright, contact info, VM version, etc... I can provide a patch to block-qcow.c if there is interest. Nathaniel