xref: /dflybsd-src/contrib/file/magic/Magdir/virtual (revision 739f0ef867128a933e021db3d831e906fcafd825)
1e4d4ce0cSPeter Avalos
2e4d4ce0cSPeter Avalos#------------------------------------------------------------------------------
3*3b9cdfa3SAntonio Huete Jimenez# $File: virtual,v 1.17 2022/08/23 08:00:54 christos Exp $
4e4d4ce0cSPeter Avalos# From: James Nobis <quel@quelrod.net>
5e4d4ce0cSPeter Avalos# Microsoft hard disk images for:
6e4d4ce0cSPeter Avalos# Virtual Server
7e4d4ce0cSPeter Avalos# Virtual PC
86fca56fbSSascha Wildner# VirtualBox
96fca56fbSSascha Wildner# URL: http://fileformats.archiveteam.org/wiki/VHD_(Virtual_Hard_Disk)
106fca56fbSSascha Wildner# Reference: https://download.microsoft.com/download/f/f/e/ffef50a5-07dd-4cf8-aaa3-442c0673a029/
116fca56fbSSascha Wildner# Virtual%20Hard%20Disk%20Format%20Spec_10_18_06.doc
12*3b9cdfa3SAntonio Huete Jimenez0	string	conectix	Microsoft Disk Image, Virtual Server or Virtual PC
136fca56fbSSascha Wildner# alternative shorter names
14*3b9cdfa3SAntonio Huete Jimenez#0	string	conectix	Microsoft Virtual Hard Disk image
15*3b9cdfa3SAntonio Huete Jimenez#0	string	conectix	Microsoft Virtual HD image
166fca56fbSSascha Wildner!:mime	application/x-virtualbox-vhd
176fca56fbSSascha Wildner!:ext   vhd
186fca56fbSSascha Wildner# Features is a bit field used to indicate specific feature support
19614728caSSascha Wildner#>8	ubelong		!0x00000002	\b, Features %#x
206fca56fbSSascha Wildner# Reserved. This bit must always be set to 1.
21614728caSSascha Wildner#>8	ubelong		&0x00000002	\b, Reserved %#x
226fca56fbSSascha Wildner# File Format Version for the current specification 0x00010000
23614728caSSascha Wildner#>12	ubelong		!0x00010000	\b, Version %#8.8x
246fca56fbSSascha Wildner# Data Offset only found 0x200
25614728caSSascha Wildner#>16	ubequad		!0x200		\b, Data Offset %#llx
26614728caSSascha Wildner#>16	ubequad		x		\b, at %#llx
276fca56fbSSascha Wildner# Dynamic Disk Header cookie like cxsparse
286fca56fbSSascha Wildner#>(16.Q)	string		x		"%-.8s"
296fca56fbSSascha Wildner# This field contains a Unicode string (UTF-16) of the parent hard disk filename
30614728caSSascha Wildner#>(16.Q+64)	ubequad	x		\b, parent name %#llx
316fca56fbSSascha Wildner# Creator Application
326fca56fbSSascha Wildner# vpc~Microsoft Virtual PC, vs~Microsoft Virtual Server, vbox~VirtualBox, d2v~disk2vhd
336fca56fbSSascha Wildner>28	string		x		\b, Creator %-4.4s
346fca56fbSSascha Wildner# Creator Version: 0x00010000~Virtual Server 2004, 0x00050000~Virtual PC 2004
356fca56fbSSascha Wildner# holds the major/minor version of the application that created the image
366fca56fbSSascha Wildner>32	ubeshort	x		%x
376fca56fbSSascha Wildner>34	ubeshort	x		\b.%x
38614728caSSascha Wildner#>32	ubelong		x		\b, Version %#8.8x
396fca56fbSSascha Wildner# Creator Host OS: 0x5769326B~Windows (Wi2k), 0x4D616320~Macintosh (Mac)
406fca56fbSSascha Wildner>36	ubelong		x		(
416fca56fbSSascha Wildner>>36	ubelong		0x5769326B	\bW2k
426fca56fbSSascha Wildner>>36	ubelong		0x4D616320	\bMac
436fca56fbSSascha Wildner>>36	default		x		\b0x
446fca56fbSSascha Wildner>>>36	ubelong		x		\b%8.8x
456fca56fbSSascha Wildner# creation Time in seconds since 1 Jan 2000 UTC~946684800 sec. since Unix Epoch
466fca56fbSSascha Wildner>24	bedate+946684800	x	\b) %s
476fca56fbSSascha Wildner# Original Size
48614728caSSascha Wildner#>40	ubequad		x		\b, o.-Size %#llx
496fca56fbSSascha Wildner# Current Size is same as original size, but change when disk is expanded
50614728caSSascha Wildner#>48	ubequad		x		\b, Size %#llx
516fca56fbSSascha Wildner>48	ubequad		x		\b, %llu bytes
526fca56fbSSascha Wildner# Disk Geometry: cylinder, heads, and sectors/track for hard disk
53614728caSSascha Wildner#>56	ubeshort	x		\b, Cylinder %#x
546fca56fbSSascha Wildner>56	ubeshort	x		\b, CHS %u
556fca56fbSSascha Wildner# Heads
56614728caSSascha Wildner#>58	ubyte		x		\b, Heads %#x
576fca56fbSSascha Wildner>58	ubyte		x		\b/%u
586fca56fbSSascha Wildner# Sectors per track
59614728caSSascha Wildner#>59	ubyte		x		\b, Sectors %#x
606fca56fbSSascha Wildner>59	ubyte		x		\b/%u
616fca56fbSSascha Wildner# Disk Type: 3~Dynamic hard disk
62614728caSSascha Wildner>60	ubelong		!0x3		\b, type %#x
636fca56fbSSascha Wildner# Checksum
64614728caSSascha Wildner#>64	ubelong		x		\b, cksum %#x
656fca56fbSSascha Wildner# universally unique identifier (UUID) to associate a parent with its differencing image
66614728caSSascha Wildner#>68	ubequad		x		\b, id %#16.16llx
676fca56fbSSascha Wildner#>76	ubequad		x		\b-%16.16llx
686fca56fbSSascha Wildner# Saved State: 1~Saved State
69614728caSSascha Wildner>84	ubyte		!0		\b, State %#x
706fca56fbSSascha Wildner# Reserved 427 bytes with nils
71614728caSSascha Wildner#>85	ubequad	!0			\b, Reserved %#16.16llx
72e4d4ce0cSPeter Avalos
736fca56fbSSascha Wildner# From: Joerg Jenderek
746fca56fbSSascha Wildner# URL: https://msdn.microsoft.com/en-us/library/mt740058.aspx
756fca56fbSSascha Wildner# Reference: https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/
766fca56fbSSascha Wildner# MS-VHDX/[MS-VHDX].pdf
776fca56fbSSascha Wildner# Note: extends the VHD format with new capabilities, such as a 16TB maximum size
786fca56fbSSascha Wildner# TODO:	find and display values like virtual size, disk size, cluster_size, etc
796fca56fbSSascha Wildner#	display id in GUID format
806fca56fbSSascha Wildner#
816fca56fbSSascha Wildner# VHDX_FILE_IDENTIFIER signature 0x656C696678646876
826fca56fbSSascha Wildner0	string			vhdxfile
836fca56fbSSascha Wildner# VHDX_HEADER signature. 1 header is stored at offset 64KB and the other at 128KB
846fca56fbSSascha Wildner>0x10000	string		head		Microsoft Disk Image eXtended
856fca56fbSSascha Wildner#>0x20000	string			head	\b, 2nd header
866fca56fbSSascha Wildner#!:mime	application/x-virtualbox-vhdx
876fca56fbSSascha Wildner!:ext	vhdx
886fca56fbSSascha Wildner# Creator[256] like "QEMU v3.0.0", "Microsoft Windows 6.3.9600.18512"
896fca56fbSSascha Wildner>>8		lestring16		x	\b, by %.256s
906fca56fbSSascha Wildner# The Checksum field is a CRC-32C hash over the entire 4 KB structure
91614728caSSascha Wildner#>>0x10004	ulelong			x	\b, CRC %#x
926fca56fbSSascha Wildner# SequenceNumber
93614728caSSascha Wildner>>0x10008	ulequad			x	\b, sequence %#llx
946fca56fbSSascha Wildner# FileWriteGuid
95614728caSSascha Wildner#>>0x10010	ubequad			x	\b, file id %#llx
966fca56fbSSascha Wildner#>>>0x10018	ubequad			x	\b-%llx
976fca56fbSSascha Wildner# DataWriteGuid
98614728caSSascha Wildner#>>0x10020	ubequad			x	\b, data id %#llx
996fca56fbSSascha Wildner#>>>0x10028	ubequad			x	\b-%llx
1006fca56fbSSascha Wildner# LogGuid. If this field is zero, then the log is empty or has no valid entries
101614728caSSascha Wildner>>0x10030	ubequad			>0	\b, log id %#llx
1026fca56fbSSascha Wildner>>>0x10038	ubequad			x	\b-%llx
1036fca56fbSSascha Wildner# LogVersion. If not 0 there is a log to replay
104614728caSSascha Wildner>>0x10040	uleshort		>0	\b, LogVersion %#x
1056fca56fbSSascha Wildner# Version. This field must be set to 1
106614728caSSascha Wildner>>0x10042	uleshort		!1	\b, Version %#x
1076fca56fbSSascha Wildner# LogLength must be multiples of 1 MB
1086fca56fbSSascha Wildner>>0x10044	ulelong/1048576		>1	\b, LogLength %u MB
1096fca56fbSSascha Wildner# LogOffset (normally 0x100000 when log direct after header); multiples of 1 MB
110614728caSSascha Wildner>>0x10048	ulequad			!0x100000 \b, LogOffset %#llx
1116fca56fbSSascha Wildner# Log Entry Signature must be 0x65676F6C~loge
1126fca56fbSSascha Wildner>>(0x10048.q)	ulelong			!0x65676F6C \b, NO Log Signature
1136fca56fbSSascha Wildner>>(0x10048.q)	ulelong			=0x65676F6C	\b; LOG
1146fca56fbSSascha Wildner# Log Entry Checksum
115614728caSSascha Wildner#>>>(0x10048.q+4)	ulelong		x	\b, Log CRC %#x
1166fca56fbSSascha Wildner# Log Entry Length must be a multiple of 4 KB
1176fca56fbSSascha Wildner>>>(0x10048.q+8)	ulelong/1024	>4	\b, EntryLength %u KB
1186fca56fbSSascha Wildner# Log Entry Tail must be a multiple of 4 KB
119614728caSSascha Wildner#>>>(0x10048.q+12)	ulelong		x	\b, Tail %#x
1206fca56fbSSascha Wildner# Log Entry SequenceNumber
121614728caSSascha Wildner#>>>(0x10048.q+16)	ulequad		x	\b, # %#llx
1226fca56fbSSascha Wildner# Log Entry DescriptorCount may be zero. only 4 bytes in other docs instead 8
123614728caSSascha Wildner#>>>(0x10048.q+24)	ulelong		x	\b, DescriptorCount %#llx
1246fca56fbSSascha Wildner# Log Entry Reserved must be set to 0
125614728caSSascha Wildner>>>(0x10048.q+28)	ulelong		!0	\b, Reserved %#x
1266fca56fbSSascha Wildner# Log Entry LogGuid
127614728caSSascha Wildner#>>>(0x10048.q+32)	ubequad		x	\b, Log id %#llx
1286fca56fbSSascha Wildner#>>>(0x10048.q+40)	ubequad		x	\b-%llx
1296fca56fbSSascha Wildner# Log Entry FlushedFileOffset should VHDX size when entry is written.
1306fca56fbSSascha Wildner#>>>(0x10048.q+48)	ulequad		x	\b, FlushedFileOffset %llu
1316fca56fbSSascha Wildner# Log Entry LastFileOffset
1326fca56fbSSascha Wildner#>>>(0x10048.q+56)	ulequad		x	\b, LastFileOffset %llu
1336fca56fbSSascha Wildner# filling
1346fca56fbSSascha Wildner#>>>(0x10048.q+64)	ulequad		>0	\b, filling %llx
1356fca56fbSSascha Wildner# Reserved[4016]
136614728caSSascha Wildner#>>0x10050	ulequad			>0	\b, Reserved %#llx
1376fca56fbSSascha Wildner# VHDX_REGION_TABLE_HEADER Signature 0x69676572~regi at offset 192 KB and 256 KB
1386fca56fbSSascha Wildner>0x30000	ulelong			!0x69676572 \b, 1st region INVALID
1396fca56fbSSascha Wildner>0x30000	ulelong			=0x69676572 \b; region
1406fca56fbSSascha Wildner# region Checksum. CRC-32C hash over the entire 64-KB table
141614728caSSascha Wildner#>>0x30004	ulelong			x	\b, CRC %#x
1426fca56fbSSascha Wildner# The EntryCount specifies number of valid entries; Found 2; This must be =< 2047.
1436fca56fbSSascha Wildner>>0x30008	ulelong			x	\b, %u entries
1446fca56fbSSascha Wildner# reserved must be zero
145614728caSSascha Wildner#>>0x3000C	ulelong			!0	\b, RESERVED %#x
1466fca56fbSSascha Wildner# Region Table Entry starts with identifier for the object. often BAT id
1476fca56fbSSascha Wildner>>0x30010	use			vhdx-id
1486fca56fbSSascha Wildner# FileOffset
149614728caSSascha Wildner>>0x30020	ulequad		x		\b, at %#llx
1506fca56fbSSascha Wildner# Length. Specifies the length of the object within the file
151614728caSSascha Wildner#>>0x30028	ulelong		x		\b, Length %#x
1526fca56fbSSascha Wildner# 1 means region entry is required. if region not recognized, then REFUSE to load VHDX
1536fca56fbSSascha Wildner>>0x3002C	ulelong		x		\b, Required %u
1546fca56fbSSascha Wildner# 2nd region entry often metadata id
1556fca56fbSSascha Wildner>>0x30030	use			vhdx-id
1566fca56fbSSascha Wildner# 2nd entry FileOffset
157614728caSSascha Wildner>>0x30040	ulequad		x		\b, at %#llx
1586fca56fbSSascha Wildner# 1 means region entry is required. if region not recognized, then REFUSE to load VHDX
1596fca56fbSSascha Wildner>>0x3004C	ulelong		x		\b, Required %u
1606fca56fbSSascha Wildner# 2nd region
1616fca56fbSSascha Wildner>>0x40000	ulelong		!0x69676572	\b, 2nd region INVALID
1626fca56fbSSascha Wildner# check in vhdx images for known id and show names instead hexadecimal
1636fca56fbSSascha Wildner0	name		vhdx-id
1646fca56fbSSascha Wildner# https://www.windowstricks.in/online-windows-guid-converter
1656fca56fbSSascha Wildner# 2DC27766-F623-4200-9D64-115E9BFD4A08		BAT GUID
1666fca56fbSSascha Wildner# 6677C22D23F600429D64115E9BFD4A08		BAT ID
1676fca56fbSSascha Wildner>0	ubequad		=0x6677C22D23F60042
1686fca56fbSSascha Wildner>>8	ubequad		=0x9D64115E9BFD4A08	\b, id BAT
1696fca56fbSSascha Wildner# no BAT id
1706fca56fbSSascha Wildner>>8	default		x
1716fca56fbSSascha Wildner>>>0	use		vhdx-id-hex
1726fca56fbSSascha Wildner# 8B7CA206-4790-4B9A-B8FE-575F050F886E		Metadata region GUID
1736fca56fbSSascha Wildner# 06A27C8B90479A4BB8FE575F050F886E		Metadata region ID
1746fca56fbSSascha Wildner>0	ubequad		=0x06A27C8B90479A4B
1756fca56fbSSascha Wildner>>8	ubequad		=0xB8FE575F050F886E	\b, id Metadata
1766fca56fbSSascha Wildner# no Metadata id
1776fca56fbSSascha Wildner>>8	default		x
1786fca56fbSSascha Wildner>>>0	use		vhdx-id-hex
1796fca56fbSSascha Wildner# 2FA54224-CD1B-4876-B211-5DBED83BF4B8		Virtual Disk Size GUID
1806fca56fbSSascha Wildner# 2442A52F1BCD7648B2115DBED83BF4B8		Virtual Disk Size ID
1816fca56fbSSascha Wildner# value "virtual size" can be verified by command `qemu-img info `
1826fca56fbSSascha Wildner>0	ubequad		=0x2442A52F1BCD7648
1836fca56fbSSascha Wildner>>8	ubequad		=0xB2115DBED83BF4B8	\b, id vsize
1846fca56fbSSascha Wildner# no Virtual Disk Size ID
1856fca56fbSSascha Wildner>>8	default		x
1866fca56fbSSascha Wildner>>>0	use		vhdx-id-hex
1876fca56fbSSascha Wildner# other ids
1886fca56fbSSascha Wildner>0	default		x
1896fca56fbSSascha Wildner>>0	use		vhdx-id-hex
1906fca56fbSSascha Wildner# in vhdx images show id as hexadecimal
1916fca56fbSSascha Wildner0	name		vhdx-id-hex
192614728caSSascha Wildner>0	ubequad		x			\b, ID %#16.16llx
1936fca56fbSSascha Wildner>8	ubequad		x			\b-%16.16llx
1946fca56fbSSascha Wildner#
195e8af9738SPeter Avalos# libvirt
196e8af9738SPeter Avalos# From: Philipp Hahn <hahn@univention.de>
197e8af9738SPeter Avalos0	string	LibvirtQemudSave	Libvirt QEMU Suspend Image
198e8af9738SPeter Avalos>0x10	lelong	x	\b, version %u
199e8af9738SPeter Avalos>0x14	lelong	x	\b, XML length %u
200e8af9738SPeter Avalos>0x18	lelong	1	\b, running
201e8af9738SPeter Avalos>0x1c	lelong	1	\b, compressed
202e8af9738SPeter Avalos
203e8af9738SPeter Avalos0	string	LibvirtQemudPart	Libvirt QEMU partial Suspend Image
20482c5fa3eSPeter Avalos# From: Alex Beregszaszi <alex@fsn.hu>
20582c5fa3eSPeter Avalos0	string/b	COWD		VMWare3
20682c5fa3eSPeter Avalos>4	byte	3		disk image
20782c5fa3eSPeter Avalos>>32	lelong	x		(%d/
20882c5fa3eSPeter Avalos>>36	lelong	x		\b%d/
20982c5fa3eSPeter Avalos>>40	lelong	x		\b%d)
21082c5fa3eSPeter Avalos>4	byte	2		undoable disk image
21182c5fa3eSPeter Avalos>>32	string	>\0		(%s)
21282c5fa3eSPeter Avalos
21382c5fa3eSPeter Avalos0	string/b	VMDK		 VMware4 disk image
21482c5fa3eSPeter Avalos0	string/b	KDMV		 VMware4 disk image
21582c5fa3eSPeter Avalos
21682c5fa3eSPeter Avalos#--------------------------------------------------------------------
21782c5fa3eSPeter Avalos# Qemu Emulator Images
21882c5fa3eSPeter Avalos# Lines written by Friedrich Schwittay (f.schwittay@yousable.de)
21982c5fa3eSPeter Avalos# Updated by Adam Buchbinder (adam.buchbinder@gmail.com)
22082c5fa3eSPeter Avalos# Made by reading sources, reading documentation, and doing trial and error
22182c5fa3eSPeter Avalos# on existing QCOW files
222*3b9cdfa3SAntonio Huete Jimenez0	string/b	QFI\xFB	QEMU QCOW Image
223*3b9cdfa3SAntonio Huete Jimenez!:mime	application/x-qemu-disk
22482c5fa3eSPeter Avalos
22582c5fa3eSPeter Avalos# Uncomment the following line to display Magic (only used for debugging
22682c5fa3eSPeter Avalos# this magic number)
22782c5fa3eSPeter Avalos#>0	string/b	x	, Magic: %s
22882c5fa3eSPeter Avalos
22982c5fa3eSPeter Avalos# There are currently 2 Versions: "1" and "2".
2306fca56fbSSascha Wildner# https://www.gnome.org/~markmc/qcow-image-format-version-1.html
231*3b9cdfa3SAntonio Huete Jimenez>4	belong		x	(v%d)
23282c5fa3eSPeter Avalos
23382c5fa3eSPeter Avalos# Using the existence of the Backing File Offset to determine whether
23482c5fa3eSPeter Avalos# to read Backing File Information
23582c5fa3eSPeter Avalos>>12	belong	 >0	 \b, has backing file (
23682c5fa3eSPeter Avalos# Note that this isn't a null-terminated string; the length is actually
23782c5fa3eSPeter Avalos# (16.L). Assuming a null-terminated string happens to work usually, but it
23882c5fa3eSPeter Avalos# may spew junk until it reaches a \0 in some cases.
23982c5fa3eSPeter Avalos>>>(12.L)	 string >\0	\bpath %s
24082c5fa3eSPeter Avalos
24182c5fa3eSPeter Avalos# Modification time of the Backing File
24282c5fa3eSPeter Avalos# Really useful if you want to know if your backing
24382c5fa3eSPeter Avalos# file is still usable together with this image
24482c5fa3eSPeter Avalos>>>>20	bedate >0	\b, mtime %s)
24582c5fa3eSPeter Avalos>>>>20	default x	\b)
24682c5fa3eSPeter Avalos
24782c5fa3eSPeter Avalos# Size is stored in bytes in a big-endian u64.
24882c5fa3eSPeter Avalos>>24	bequad	x	 \b, %lld bytes
24982c5fa3eSPeter Avalos
25082c5fa3eSPeter Avalos# 1 for AES encryption, 0 for none.
25182c5fa3eSPeter Avalos>>36	belong	1	\b, AES-encrypted
25282c5fa3eSPeter Avalos
2536fca56fbSSascha Wildner# https://www.gnome.org/~markmc/qcow-image-format.html
25482c5fa3eSPeter Avalos>4	belong	2	(v2)
25582c5fa3eSPeter Avalos# Using the existence of the Backing File Offset to determine whether
25682c5fa3eSPeter Avalos# to read Backing File Information
25782c5fa3eSPeter Avalos>>8	bequad  >0	 \b, has backing file
25882c5fa3eSPeter Avalos# Note that this isn't a null-terminated string; the length is actually
25982c5fa3eSPeter Avalos# (16.L). Assuming a null-terminated string happens to work usually, but it
26082c5fa3eSPeter Avalos# may spew junk until it reaches a \0 in some cases. Also, since there's no
26182c5fa3eSPeter Avalos# .Q modifier, we just use the bottom four bytes as an offset. Note that if
26282c5fa3eSPeter Avalos# the file is over 4G, and the backing file path is stored after the first 4G,
26382c5fa3eSPeter Avalos# the wrong filename will be printed. (This should be (8.Q), when that syntax
26482c5fa3eSPeter Avalos# is introduced.)
26582c5fa3eSPeter Avalos>>>(12.L)	 string >\0	(path %s)
26682c5fa3eSPeter Avalos>>24	bequad	x	\b, %lld bytes
26782c5fa3eSPeter Avalos>>32	belong	1	\b, AES-encrypted
26882c5fa3eSPeter Avalos
26982c5fa3eSPeter Avalos>4	belong	3	(v3)
27082c5fa3eSPeter Avalos# Using the existence of the Backing File Offset to determine whether
27182c5fa3eSPeter Avalos# to read Backing File Information
27282c5fa3eSPeter Avalos>>8	bequad  >0	 \b, has backing file
27382c5fa3eSPeter Avalos# Note that this isn't a null-terminated string; the length is actually
27482c5fa3eSPeter Avalos# (16.L). Assuming a null-terminated string happens to work usually, but it
27582c5fa3eSPeter Avalos# may spew junk until it reaches a \0 in some cases. Also, since there's no
27682c5fa3eSPeter Avalos# .Q modifier, we just use the bottom four bytes as an offset. Note that if
27782c5fa3eSPeter Avalos# the file is over 4G, and the backing file path is stored after the first 4G,
27882c5fa3eSPeter Avalos# the wrong filename will be printed. (This should be (8.Q), when that syntax
27982c5fa3eSPeter Avalos# is introduced.)
28082c5fa3eSPeter Avalos>>>(12.L)	 string >\0	(path %s)
28182c5fa3eSPeter Avalos>>24	bequad	x	\b, %lld bytes
28282c5fa3eSPeter Avalos>>32	belong	1	\b, AES-encrypted
28382c5fa3eSPeter Avalos
28482c5fa3eSPeter Avalos>4	default x	(unknown version)
28582c5fa3eSPeter Avalos
28682c5fa3eSPeter Avalos0	string/b	QEVM		QEMU suspend to disk image
28782c5fa3eSPeter Avalos
28882c5fa3eSPeter Avalos# QEMU QED Image
2896fca56fbSSascha Wildner# https://wiki.qemu.org/Features/QED/Specification
29082c5fa3eSPeter Avalos0	string/b	QED\0		QEMU QED Image
29182c5fa3eSPeter Avalos
29282c5fa3eSPeter Avalos# VDI Image
29382c5fa3eSPeter Avalos# Sun xVM VirtualBox Disk Image
29482c5fa3eSPeter Avalos# From: Richard W.M. Jones <rich@annexia.org>
29582c5fa3eSPeter Avalos# VirtualBox Disk Image
29682c5fa3eSPeter Avalos0x40	ulelong		0xbeda107f	VirtualBox Disk Image
29782c5fa3eSPeter Avalos>0x44	uleshort	>0		\b, major %u
29882c5fa3eSPeter Avalos>0x46	uleshort	>0		\b, minor %u
29982c5fa3eSPeter Avalos>0	string		>\0		(%s)
30082c5fa3eSPeter Avalos>368	lequad		x		 \b, %lld bytes
30182c5fa3eSPeter Avalos
30282c5fa3eSPeter Avalos0	string/b	Bochs\ Virtual\ HD\ Image	Bochs disk image,
30382c5fa3eSPeter Avalos>32	string	x				type %s,
30482c5fa3eSPeter Avalos>48	string	x				subtype %s
30582c5fa3eSPeter Avalos
30682c5fa3eSPeter Avalos0	lelong	0x02468ace			Bochs Sparse disk image
30782c5fa3eSPeter Avalos
308