qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Question about cow format with hexdump


From: shhuiw
Subject: Re: [Qemu-devel] Question about cow format with hexdump
Date: Thu, 4 Sep 2014 21:28:12 +0800 (CST)

Sorry to trouble you all.

I found the right way: I should use the -o option when I create cow image files.
Then hexdump can give full info.


~> touch testcow               # maked up backing_file ahead to get non-0s 
.mtime

~> qemu-img create -f cow -o backing_file=testcow,size=1M dummy
Formatting 'dummy', fmt=cow size=1048576 backing_file='testcow' 

~> hexdump -C dummy 
00000000  4f 4f 4f 4d 00 00 00 02  74 65 73 74 63 6f 77 00  |OOOM....testcow.|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000400  00 00 00 00 00 00 00 00  54 08 66 e8 00 00 00 00  |........T.f.....|
00000410  00 10 00 00 00 00 02 00  00 00 00 00 00 00 00 00  |................|
00000420  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000510  00 00 00 00 00 00 00 00                           |........|
00000518


--

Regards,
shhuiw




At 2014-09-03 01:27:00, "shhuiw" <address@hidden> wrote:
>
>Hi,
>
>I'm reading the source code of cow.c: 
>https://github.com/qemu/qemu/blob/master/block/cow.c
>and try to understand the format better.
>
>I created a cow format imagefile and can run 'qume-img info' to query the 
>header info
>-------------------------------------------------------------------------------
>-bash-4.1$ qemu-img create -f cow dummy 1M
>Formatting 'test/dummy', fmt=cow size=1048576 
>-bash-4.1$ qemu-img info dummy 
>image: dummy
>file format: cow
>virtual size: 1.0M (1048576 bytes)
>disk size: 4.0K
>
>
>But when I used hexdump to dis the header part, I cannot find all info 
>recorded:
>(compared the define of struct cow_header_v2 and cow_create())
>------------------------------------------------------------------------------
>1) recognize the magic and version info:
>-bash-4.1$ hexdump -C dummy -n 8
>00000000  4f 4f 4f 4d 00 00 00 02                           |OOOM....|
>00000008
>
>2) backing_file and mtime fields are 0s:                                       
>     # I think the "dummy" should be recorded
>-bash-4.1$ hexdump -C dummy -n 1032
>00000000  4f 4f 4f 4d 00 00 00 02  00 00 00 00 00 00 00 00  |OOOM............|
>00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
>*
>00000400  00 00 00 00 00 00 00 00                           |........|
>00000408
>-bash-4.1$ hexdump -C dummy -n 1036
>00000000  4f 4f 4f 4d 00 00 00 02  00 00 00 00 00 00 00 00  |OOOM............|
>00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
>*
>00000400  00 00 00 00 00 00 00 00  00 00 00 00              |............|
>0000040c
>
>3) size field is 0s:
>-bash-4.1$ hexdump -C dummy -n 1044                                            
>    # size should be 1M
>00000000  4f 4f 4f 4d 00 00 00 02  00 00 00 00 00 00 00 00  |OOOM............|
>00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
>*
>00000410  00 00 00 00                                       |....|
>00000414
>
>4) sectorsize is 512:
>-bash-4.1$ hexdump -C dummy -n 1048
>00000000  4f 4f 4f 4d 00 00 00 02  00 00 00 00 00 00 00 00  |OOOM............|
>00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
>*
>00000410  00 00 00 00 00 10 00 00                           |........|
>00000418
>
>
>Can anyone help to explain this? Or how to debug further?
>
>--
>
>Regards,
>shhuiw

reply via email to

[Prev in Thread] Current Thread [Next in Thread]