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???