From nobody Mon Feb 9 21:20:06 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 151560594096027.20439503200555; Wed, 10 Jan 2018 09:39:00 -0800 (PST) Received: from localhost ([::1]:56006 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eZKKw-0000bA-8B for importer@patchew.org; Wed, 10 Jan 2018 12:38:50 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50542) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eZKJ4-0007uH-9l for qemu-devel@nongnu.org; Wed, 10 Jan 2018 12:36:56 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eZKIz-0000nk-TD for qemu-devel@nongnu.org; Wed, 10 Jan 2018 12:36:54 -0500 Received: from mail-ve1eur01on0105.outbound.protection.outlook.com ([104.47.1.105]:55808 helo=EUR01-VE1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eZKIz-0000ku-FQ; Wed, 10 Jan 2018 12:36:49 -0500 Received: from localhost.sw.ru (195.214.232.6) by AM5PR0801MB2066.eurprd08.prod.outlook.com (2603:10a6:203:4c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.386.5; Wed, 10 Jan 2018 17:36:46 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Pw/TGoIyNCjYXSCCmN/JvuMMcCZ3EpuqU0/C8sRYeAM=; b=P/LaWygpMF/Gp1jLV446Q21ON3aC90SENxuYGSyJlVuxRgooDVVVonUJJFuw8n85ZhbRPDpwIGj9GfVZTdgEsiPvn/sWxwI0RQEg0hPmiBVm2NZuNn5jkAuYgHRo6Jud5f4+q8pznPleCwaI/IllaKHsHjJaiZC1cR1PUx4w2EQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=klim.kireev@virtuozzo.com; From: Klim Kireev To: qemu-devel@nongnu.org Date: Wed, 10 Jan 2018 20:36:31 +0300 Message-Id: <20180110173635.28255-2-klim.kireev@virtuozzo.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180110173635.28255-1-klim.kireev@virtuozzo.com> References: <20180110173635.28255-1-klim.kireev@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: DB3PR0202CA0004.eurprd02.prod.outlook.com (2603:10a6:8:1::17) To AM5PR0801MB2066.eurprd08.prod.outlook.com (2603:10a6:203:4c::16) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: af2370dd-e4c2-4fe9-265c-08d55850b90a X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(4534020)(4602075)(7168020)(4627115)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:AM5PR0801MB2066; X-Microsoft-Exchange-Diagnostics: 1; AM5PR0801MB2066; 3:Q5cUGxB8CxXv/7GJu1X86bJglNv4kV3/xBGO4nnKCEaDUwTz1MwVdPiHXooj44ANe7o+TRPAWdw0HHpHcy71jP1MNrIC7ccnCLCVEeWepSw6t8scBFOBtTy4kb1HqXNBvPgACHydRLvs4uLdPbZk9KqEWferaGFsVlnWZH/QidvZjmCX4Pps1/N0x5j0ze5XdEqWurZRoyUWs1EbgPTOpTQJjNQJzvvevwRhdZFKh65Xtm0+1jIYUEUWqI1kjvk2; 25:CGebAOZwKJjQ88ol5LtljWbutiGJKyokN66WphorVROi59m5yAQ4yXuhbZ56jX92My+RFq5dqmrXQSv6ySzrL6UtqM1miQ8YGybNeczIN1QMxKGE+ur926DP6BYvIfc5ngws1LqSd1NfLo0Ik3ZiiwE+NhvIPKDfZfUkfjF9JPthGgBbH3bbHsV4hgKSkjWrvSY6VLH07rgEXG/RmRDsQTatiBX0/PlPgfjU1vP+YpyVcql806GQkdJ5HpMQajTvWkJBcly8q7VpqZaYowmhZ2YW/Q88z11oX9eVyknWJWzA8Ua7VgSfekN+RwVHhi/uxSh+IGkxtilguyPKJNE0lA==; 31:fTxCDJWLpFik0H0clep3OjXelnZwc4Z5MGTtLpt/39To0Cj0kt+X54sKoh9TR3vNfZg+CdmXJF5FISZtk3+509XqUFPLbrjCykg5S5yc8SeGxdLXDyP7hcaZp6cfFrNOb8hSOcY9X7POToZM7lZzxb0tvC3gVPnihzxhgLyvAL9hEp+6ZaTL5S6lvX1nrnBuRlwFXBDTNzRc0NuYeNBmCXqeDpiz5sHV5QOnn77NC5A= X-MS-TrafficTypeDiagnostic: AM5PR0801MB2066: X-Microsoft-Exchange-Diagnostics: 1; AM5PR0801MB2066; 20:aZiZLKIuXp3+6TrQm0LmtoPFfgZGkKztlvnVGznHa7ikSlpAPlYuV22a6XKXQAjjqxTqB+1ZDiFh3qGULFcd4Rqv5Q+gHmoZ0dyDWwAC9MG3UgUvWdt6yMAZXC8+ToHHAwezMrNKJM/NKFXVdtCLbeZbCJk2bUpf80SfaTEDIXrtE8US48oJwhjgDzJmDnsPS80tE+/rKdHv7jihzD4tDPBxEtOlTpw6JO1u0pJTY0+CJTZsmu6pPAG1I2/Ch3GQ1d4ekb8Rc3j+LV335LlXTTSTe2YVUACJ4YBfRnSY5X4wjZIKoeqQokNUIHz4ugingAN/4pbePBBN9/M9hG1zKnW0yf4pKBRCJV6dR17r81IS3CL3QbR8iuZZx4mxQwLO+eAk+/UxpwA8GINTEDoNd0PPvg53FL0RMtfP8oLSCTw=; 4:n0smhhL9SPDt0GPE8KpGdi0oQ41faUAgiTV38oxr8d6jHSYOece0fEnI6cLCNm58e52zy3fSq7N3FrDhVyatsnBampwbN6Y5ZnUN8Xb8pvlRcLFOEMrXs56G0NWjIPPVSw7l4EKo6Q5FZEqw0eJVh3cWrKlV8JZnc7vVWgMyLWhwbQlgvAcmklQHZTGtJS4Wbt/h+1KNPhifOI2R+HJULBot8qAAQEhW+UXR6oHwqC8b7vJYY0pQLgYdH2VMreWVjxlXN50k8oEkK6BJMNA+yM+7+3Y6UK5b6Wty8gpj8mY/qYY2XnVdgRzsrJM7awhUSVrBmP28wlYhRqo0XlEPH9PGwVMs1Y4gPF4CfZL61qc= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(158342451672863)(131327999870524); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(8121501046)(5005006)(3231023)(944501075)(3002001)(93006095)(93001095)(10201501046)(6041268)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123562045)(6072148)(201708071742011); SRVR:AM5PR0801MB2066; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:AM5PR0801MB2066; X-Forefront-PRVS: 0548586081 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(979002)(6069001)(366004)(39850400004)(396003)(39380400002)(376002)(346002)(189003)(199004)(6506007)(1076002)(66066001)(6512007)(6666003)(6916009)(59450400001)(386003)(50226002)(47776003)(3846002)(2950100002)(51416003)(6116002)(55236004)(52116002)(76176011)(478600001)(53416004)(6486002)(76506005)(16526018)(86362001)(50466002)(5660300001)(81166006)(36756003)(25786009)(48376002)(16586007)(106356001)(305945005)(53936002)(105586002)(81156014)(2361001)(2351001)(69596002)(316002)(2906002)(8936002)(7736002)(575784001)(97736004)(68736007)(4326008)(8676002)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1102; SCL:1; SRVR:AM5PR0801MB2066; H:localhost.sw.ru; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM5PR0801MB2066; 23:BV08SmvfCirTcKHXyhJXeq0zLUViXhsPF8+sX3H?= =?us-ascii?Q?xF4AuH70e7I83A5wKRK1q6NMysPrQ+2EOTIJB+dy3gZJ8CQ7FNvnVbnfHtNC?= =?us-ascii?Q?9Yu63L19lpv+Ro2e/zHluuaMPw2lKuHNn9yj2r8zRCU7aUdAs5gFP+P8c3rI?= =?us-ascii?Q?fiZXJLEHPCCx57F5wU7cSWkpCdGeqb1swtyKfSFB2CwvljCvvZt1IMM5wT4n?= =?us-ascii?Q?RLfx8XfuT4/UTyFevptBxZSxxiFqd8duOfAmxpJrhWhsSWABXB6hv0NC2Lb8?= =?us-ascii?Q?78i7QPc53F9QGS5YQJaLjmCDJTWzF0MwYIuvvGzFZ8sapw1YFPaqDQCVTW0b?= =?us-ascii?Q?jPSjWhRc7sItMMetgqoZWD2a4LK7bqWWPVvVjhvEkxdn2FhssKdOc5ijWFXG?= =?us-ascii?Q?Sc4HmqlvJxT/lpqlL8U1mLHN7dSqrD8JCcTrosl7z2e0VIUBnWk49c4jFyBE?= =?us-ascii?Q?21sey+uNg7WPjJDmVjjqFqPA4/+GvOxnEUIzURxTR1h4u7YKlFxIgpZga7Ml?= =?us-ascii?Q?rJCRks5MlxprU/XwCCaxZ10OVL9QG5pYEvCNI4YJl09L2G6VaPalYbSfA6rT?= =?us-ascii?Q?65bN3k6wC51Wtb4KLZSEE+/rziaAwAfvgrOwIu9C475vYpS8yHWzCFqO8NRK?= =?us-ascii?Q?HySZ4RhJj86gy263h+5Az86y8lVEl4c5W1sJNC+UN1h65QXPrGGaXxCJ+KVf?= =?us-ascii?Q?DrfNfQSkOvptOdLWIeai1xyWul/kr4UWdjGYR4iRILp/uIE3YiRkE0g5wxIU?= =?us-ascii?Q?+HjqWQf2ixAScKwLU9XuOzg/IhcVwFW6Ril19CeajaQxq1A+LxKPcYfkRjj3?= =?us-ascii?Q?BEdo1sg2dZKxF0vk76yRkINE6I8pW/leiPczjTxltkueJH34CgGiEjyfm06J?= =?us-ascii?Q?P9TcARnYlbq++wC4eqEWMWJTTO1tFyP2FFr0E+iMS/8F2RKZWLpsB13ua81h?= =?us-ascii?Q?BJBSWOY6SnaMZmlwAhfOXoc6PH8KX2jks6zsJWdC1aaL0WukHf/WkTJXGuGr?= =?us-ascii?Q?rUjLzTLxPscbCEGXYwisC8FjspxlSPZkKoEz7qDdS2b9q5zIIbdpy5OTLugJ?= =?us-ascii?Q?6t1J4ZLk2vOiu2HMpomHNqn+54ZwpDXfEY603ddH8uxGi/aFJg7xb5rcMGQR?= =?us-ascii?Q?/gZDVXWjP3i4Ynym5rhLkkEKmPBUdIASgfUvR46qZYcUHOufgEFoFUt2vT8l?= =?us-ascii?Q?EaQmSAeLgiEvXKfaeV3Etrb+rlc2mIuEkJxI6s/t4/Y5NOGjfuDEKyz61Mu8?= =?us-ascii?Q?+240M02lcqW9qcWDJBa10E74E3lA4q3M7PPHQTtzRox29cbompY18qt0NThy?= =?us-ascii?Q?kXNPPv05EfGasjfnddHaPNQhdrtBh3BGo5ZPNlAglFGXczFEkEHZ3XnzDfO1?= =?us-ascii?Q?TTTmnn8X/2ly/mShtWKZD8QoE5F8=3D?= X-Microsoft-Exchange-Diagnostics: 1; AM5PR0801MB2066; 6:lXto/RzkXiUwCfkzFhfsGow8PXToiUTTGvnEaPTOeQr+lDAFXl0kpA9UZXBrL8LlfNL/OjIRE455rABT6Z7H8iJBVu4FzZQT+rNhS9uW+jfW9MCsaIjzruwDNMGfVHlJt9bzsVeLsyqWLw7DV0dfTbA+9DPqUjc+AOko9gvbWtkUxduaVryBgWDhI83QnTkB4O/QK2DWpgVVWxgQ0MzojZtYtTv42e320KCxHxGoe2z+79Ht+jI8pKBPB3N9vfzbO6cf3ytYeRpjYitws/JjuS1lWtLBQjE0z50iW70mQ7QAiq/dJpnAzBYRo7PUuT8AsNZFG2+Z0zR+fNB8lfO0IArfjSGSyfALhdU3O+Ezxk4=; 5:SVWEWAX+XfJNxLCn9F0ySzcGH8NnPvsT5Hhj1hYbmXQt3A7gmgB2G1OA6DP8SaTdM9CmfIi9nbP9egksjc+JxCQxug1qHVrc+sBU1W1AUPI6eilVLy9Tb+csgXtp23ZKsTNVplCTVf+9pHlDdxgOzCIL8y+iXSp0jk5xFfobFlo=; 24:fmKLZZWcVVnW76H7kA4eS0neuIvBv6F0C6zM9nrPRjoAklq8S7yRJxXlLTggg2uNK57kAJmacQuV3OuiHcfiZZdSrASy6Fmcs4EST0i8kpE=; 7:rDeAdtq6zF4OJPAAAb813Jhyk1uu6iWgP3+Cb9RbtdOqd5tdyQgg/A8PJ5WYhMec2IiIgN9CWQDvBjbWanl6m2f0vs4hxLG5q7IEnCzUBQe3kJzljXf/JXLq9HN8DiTlUlC0sYweh5slpS+w5UsMYlTFXZDNQb4HUSMQTuRn+KRNj326ugvusHPEGXYUNcCgIZvL3SMl1R9lWgUWoibIqKhnJnELDXu8J77852Yaj2gC05E+1WIZLO9VKvbYbClv SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM5PR0801MB2066; 20:Q+nwKD9UdsfldnQxCncR3y2uA840+vcvKCC8WaKo759rkXmj/6eNsm7GMrzqOjjzuACX3irem32nN2Lyrn4YnPY8awdnujwssEE4PbPI9a54fZBThcmWbzUbycvd+IqQac+uE27LyMvmooBAsapB0cgXQB4gSmTHlRP/xRWawnU= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jan 2018 17:36:46.1152 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: af2370dd-e4c2-4fe9-265c-08d55850b90a X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB2066 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.1.105 Subject: [Qemu-devel] [PATCH 1/5] docs/interop/prl-xml: description of Parallels Disk format X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, den@openvz.org, qemu-block@nongnu.org, stefanha@redhat.com, mreitz@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This patch adds main information about Parallels Disk format, which consists of DiskDescriptor.xml and other files. Signed-off-by: Edgar Kaziakhmedov Signed-off-by: Klim Kireev Signed-off-by: Vladimir Sementsov-Ogievskiy Signed-off-by: Denis V. Lunev CC: Stefan Hajnoczi --- docs/interop/prl-xml.txt | 156 +++++++++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 156 insertions(+) create mode 100644 docs/interop/prl-xml.txt diff --git a/docs/interop/prl-xml.txt b/docs/interop/prl-xml.txt new file mode 100644 index 0000000000..57bffc67ae --- /dev/null +++ b/docs/interop/prl-xml.txt @@ -0,0 +1,156 @@ +=3D License =3D + +Copyright (c) 2015-2017, Virtuozzo, Inc. +Authors: + 2015 Denis Lunev + 2015 Vladimir Sementsov-Ogievskiy + 2016-2017 Klim Kireev + 2016-2017 Edgar Kaziakhmedov + +This work is licensed under the terms of the GNU GPL, version 2 or later. +See the COPYING file in the top-level directory. + +This specification contains minimal information about Parallels Disk Forma= t, +which is enough to proper work with QEMU. Nevertheless, Parallels Cloud Se= rver +and Parallels Desktop are able to add some unspecified nodes to xml and use +them, but they are for internal work and don't affect functionality. Also = it +uses auxiliary xml "Snapshot.xml", which allows to store optional snapshot +information, but it doesn't influence open/read/write functionality. QEMU = and +other software should not use fields not covered in this document and +Snapshot.xml file and must leave them as is. + +=3D Parallels Disk Format =3D + +Parallels disk consists of two parts: the set of snapshots and the disk +descriptor file, which stores information about all files and snapshots. + +=3D=3D Definitions =3D=3D + Snapshot a record of the contents captured at a particular time, + capable of storing current state. A snapshot has UUID a= nd + parent UUID. + + Snapshot image an overlay representing the difference between this + snapshot and some earlier snapshot. + + Overlay an image storing the different sectors between two capt= ured + states. + + Root image snapshot image with no parent, the root of snapshot tre= e. + + Storage the backing storage for a subset of the virtual disk. W= hen + there is more than one storage in a Parallels disk then= that + is referred to as a split image. In this case every sto= rage + covers specific address space area of the disk and has = its + particular root image. Split images are not considered = here + and are not supported. Each storage consists of disk + parameters and a list of images. The list of images alw= ays + contains a root image and may also contain overlays. The + root image can be an expandable Parallels image file or + plain. Overlays must be expandable. + + Description DiskDescriptor.xml stores information about disk parame= ters, + file snapshots, storages. + + Top The overlay between actual state and some previous snap= shot. + Snapshot It is not a snapshot in the classical sense because it + serves as the active image that the guest writes to. + + Sector a 512-byte data chunk. + +=3D=3D Description file =3D=3D +All information is placed in a single XML element Parallels_disk_image. +The element has only one attribute "Version", that must be 1.0. +Schema of DiskDescriptor.xml: + + + + ... + + + ... + + + ... + + + +=3D=3D Disk_Parameters element =3D=3D +The Disk_Parameters element describes the physical layout of the virtual d= isk +and some general settings. + +The Disk_Parameters element MUST contain the following child elements: + * Disk_size - number of sectors in the disk, + desired size of the disk. + * Cylinders - number of the disk cylinders. + * Heads - number of the disk heads. + * Sectors - number of the disk sectors per cylinder + (sector size is 512 bytes) + Limitation: Product of the Heads, Sectors and Cylinders + values MUST be equal to the value of the Disk_size param= eter. + * Padding - must be 0. Parallels Cloud Server and Parallels Desktop = may + use padding set to 1, however this case is not covered + by this spec, QEMU and other software should not open + such disks and should not create them. + +=3D=3D StorageData element =3D=3D +This element of the file describes the root image and all snapshot images. + +The StorageData element consists of the Storage child element, as shown be= low: + + + ... + + + +A Storage element has following child elements: + * Start - start sector of the storage, in case of non split storage + equals to 0. + * End - number of sector following the last sector, in case of n= on + split storage equals to Disk_size. + * Blocksize - storage cluster size, number of sectors per one cluster. + Cluster size for each "Compressed" (see below) image in + parallels disk must be equal to this field. Note: cluster + size for Parallels Expandable Image is in 'tracks' field= of + its header (see docs/interop/parallels.txt). + * Several Image child elements. + +Each Image element has following child elements: + * GUID - image identifier, UUID in curly brackets. + For instance, {12345678-9abc-def1-2345-6789abcdef12}. + * Type - image type of the element. It can be: + "Plain" for raw files. + "Compressed" for expanding disks. + * File - path to image file. Path can be relative to DiskDecriptor.xml= or + absolute. + +=3D=3D Snapshots element =3D=3D +The Snapshots element describes the snapshot relations with the snapshot t= ree. + +The element contains the set of Shot child elements, as shown below: + + ... /* Optional child element */ + + ... + + + ... + + ... + + +Each Shot element contains the following child elements: + * GUID - an image GUID. + * ParentGUID - GUID of the image of the parent snapshot. + +The software may traverse snapshots from child to parent using +field as reference. ParentGUID of root snapshot is +{00000000-0000-0000-0000-000000000000}. There should be only one root +snapshot. Top snapshot could be described via two ways: via TopGUID child +element of the Snapshots element or via predefined GUID +{5fbaabe3-6958-40ff-92a7-860e329aab41}. If TopGUID is defined, predefined = GUID is +interpreted as usual GUID. All snapshot images (except Top Snapshot) shoul= d be +opened read-only. There is another predefined GUID, +BackupID =3D {704718e1-2314-44c8-9087-d78ed36b0f4e}, which is used by orig= inal and +some third-party software for backup, QEMU and other software may operate = with +images with GUID =3D BackupID as usual, however, it is not recommended to = use this +GUID for new disks. Top snapshot cannot have this GUID. --=20 2.14.3