[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