|
@@ -0,0 +1,91 @@
|
|
|
|
+Author: Adam Buchbinder <adam.buchbinder@gmail.com>
|
|
|
|
+Description:
|
|
|
|
+ Update QEMU image magic, based on some reference docs and checked against
|
|
|
|
+ actual QEMU images (Closes: #451524).
|
|
|
|
+
|
|
|
|
+diff -Naurp file.orig//magic/Magdir/msdos file/magic/Magdir/msdos
|
|
|
|
+--- file.orig//magic/Magdir/msdos 2010-07-13 17:00:52.246670740 +0200
|
|
|
|
++++ file/magic/Magdir/msdos 2010-07-13 17:02:50.322699548 +0200
|
|
|
|
+@@ -639,43 +639,58 @@
|
|
|
|
+ #--------------------------------------------------------------------
|
|
|
|
+ # Qemu Emulator Images
|
|
|
|
+ # Lines written by Friedrich Schwittay (f.schwittay@yousable.de)
|
|
|
|
+-# Made by reading sources and doing trial and error on existing
|
|
|
|
+-# qcow files
|
|
|
|
+-0 string QFI Qemu Image, Format: Qcow
|
|
|
|
++# Updated by Adam Buchbinder (adam.buchbinder@gmail.com)
|
|
|
|
++# Made by reading sources, reading documentation, and doing trial and error
|
|
|
|
++# on existing QCOW files
|
|
|
|
++0 string QFI\xFB QEMU QCOW Image
|
|
|
|
+
|
|
|
|
+ # Uncomment the following line to display Magic (only used for debugging
|
|
|
|
+ # this magic number)
|
|
|
|
+ #>0 string x , Magic: %s
|
|
|
|
+
|
|
|
|
+-# There are currently 2 Versions: "1" and "2"
|
|
|
|
+-# I do not use Version 2 and therefor branch here
|
|
|
|
+-# but can assure: it works (tested on both versions)
|
|
|
|
+-# Also my Qemu 0.9.0 which uses this Version 2 refuses
|
|
|
|
+-# to start in its bios
|
|
|
|
+->0x04 belong 2 , Version: 2
|
|
|
|
+->0x04 belong 1 , Version: 1
|
|
|
|
++# There are currently 2 Versions: "1" and "2".
|
|
|
|
++# http://www.gnome.org/~markmc/qcow-image-format-version-1.html
|
|
|
|
++>4 belong 1 (v1)
|
|
|
|
+
|
|
|
|
+-# Using the existence of the Backing File Offset to Branch or not
|
|
|
|
++# Using the existence of the Backing File Offset to determine whether
|
|
|
|
+ # to read Backing File Information
|
|
|
|
+->>0xc belong >0 , Backing File( Offset: %lu
|
|
|
|
+->>>(0xc.L) string >\0 , Path: %s
|
|
|
|
+-
|
|
|
|
+-# Didn't get the trick here how qemu stores the "Size" at this Position
|
|
|
|
+-# There is actually something stored but nothing makes sense
|
|
|
|
+-# The header in the sources talks about it
|
|
|
|
+-#>>>16 lelong x , Size: %lu
|
|
|
|
++>>12 belong >0 \b, has backing file (
|
|
|
|
++# Note that this isn't a null-terminated string; the length is actually
|
|
|
|
++# (16.L). Assuming a null-terminated string happens to work usually, but it
|
|
|
|
++# may spew junk until it reaches a \0 in some cases.
|
|
|
|
++>>>(12.L) string >\0 \bpath %s
|
|
|
|
+
|
|
|
|
+ # Modification time of the Backing File
|
|
|
|
+ # Really useful if you want to know if your backing
|
|
|
|
+ # file is still usable together with this image
|
|
|
|
+->>>20 bedate x , Mtime: %s )
|
|
|
|
++>>>>20 bedate >0 \b, mtime %s)
|
|
|
|
++>>>>20 default x \b)
|
|
|
|
++
|
|
|
|
++# Size is stored in bytes in a big-endian u64.
|
|
|
|
++>>24 bequad x \b, %lld bytes
|
|
|
|
++
|
|
|
|
++# 1 for AES encryption, 0 for none.
|
|
|
|
++>>36 belong 1 \b, AES-encrypted
|
|
|
|
++
|
|
|
|
++# http://www.gnome.org/~markmc/qcow-image-format.html
|
|
|
|
++>4 belong 2 (v2)
|
|
|
|
++# Using the existence of the Backing File Offset to determine whether
|
|
|
|
++# to read Backing File Information
|
|
|
|
++>>8 bequad >0 \b, has backing file
|
|
|
|
++# Note that this isn't a null-terminated string; the length is actually
|
|
|
|
++# (16.L). Assuming a null-terminated string happens to work usually, but it
|
|
|
|
++# may spew junk until it reaches a \0 in some cases. Also, since there's no
|
|
|
|
++# .Q modifier, we just use the bottom four bytes as an offset. Note that if
|
|
|
|
++# the file is over 4G, and the backing file path is stored after the first 4G,
|
|
|
|
++# the wrong filename will be printed. (This should be (8.Q), when that syntax
|
|
|
|
++# is introduced.)
|
|
|
|
++>>>(12.L) string >\0 (path %s)
|
|
|
|
++>>24 bequad x \b, %lld bytes
|
|
|
|
++>>32 belong 1 \b, AES-encrypted
|
|
|
|
+
|
|
|
|
+-# Don't know how to calculate in Magicfiles
|
|
|
|
+-# Also: this Information is not reliably
|
|
|
|
+-# stored in image-files
|
|
|
|
+->>24 lelong x , Disk Size could be: %d * 256 bytes
|
|
|
|
++>4 default x (unknown version)
|
|
|
|
+
|
|
|
|
+-0 string QEVM QEMU's suspend to disk image
|
|
|
|
++0 string QEVM QEMU suspend to disk image
|
|
|
|
+
|
|
|
|
+ 0 string Bochs\ Virtual\ HD\ Image Bochs disk image,
|
|
|
|
+ >32 string x type %s,
|