12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- 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,
|