Subject: bug#7478: closed (Re: bug#7478: Puzzled by dd)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 26 Nov 2010 00:12:02 +0000

Your bug report

#7478: Puzzled by dd

which was filed against the coreutils package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
7478: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7478
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#7478: Puzzled by dd
From: Pádraig Brady <[email-masked]>
To: 庄钦平 <[email-masked]>
Cc: [email-masked]
Date: Fri, 26 Nov 2010 00:15:57 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

On 25/11/10 03:53, 庄钦平 wrote:
> According to the partition table, the partition sda1 starts from sector 64, so the following two command lines will get same files:
> 1) dd if=/dev/sda1 of=f1 bs=1M count=32
> 2) dd if=/dev/sda of=f2 bs=512 count=65536 skip=63
> It works and both of them get the same 32M raw data(md5sum f1 f2 get same checksum). But after some operations on the 32M in sda1(I'm running LVM tests, it only changes the 32M contents in the beginning of sda1, and maybe the LVM module reworked doesn't work well), it fails. Even if I dd 32M from /dev/zero(dd if=/dev/zero of=/dev/sda1 bs=1M count=32) and run above two commands, I get f1 and f2 with different checksum. WHY???

I very much doubt an issue with dd.
Your commands look valid, so I'm guessing some
kernel caching issue. I'd suggest doing a binary comparison
of the data, rather than comparing the hashes.

I'm closing this bug, and we can reopen
if you do find dd to be at issue.
If you still suspect dd, then we'll need version info
and straces of both commands.

cheers,
Pádraig.

Subject: Puzzled by dd
From: 庄钦平 <[email-masked]>
To: [email-masked]
Date: Thu, 25 Nov 2010 11:53:44 +0800 (CST)
List-Id: <debbugs-submit.debbugs.gnu.org>

According to the partition table, the partition sda1 starts from sector 64, so the following two command lines will get same files:
1) dd if=/dev/sda1 of=f1 bs=1M count=32
2) dd if=/dev/sda of=f2 bs=512 count=65536 skip=63
It works and both of them get the same 32M raw data(md5sum f1 f2 get same checksum). But after some operations on the 32M in sda1(I'm running LVM tests, it only changes the 32M contents in the beginning of sda1, and maybe the LVM module reworked doesn't work well), it fails. Even if I dd 32M from /dev/zero(dd if=/dev/zero of=/dev/sda1 bs=1M count=32) and run above two commands, I get f1 and f2 with different checksum. WHY???