M
M
Maxim2012-10-26 14:23:26
FreeBSD
Maxim, 2012-10-26 14:23:26

Strange behavior of dd in freebsd

We have FreeBSD 6.3-RELEASE

[email protected] [~]# diskinfo -v /dev/ad8s1d
/dev/ad8s1d
512 # sectorsize
193273528320 # mediasize in bytes (180G)
377487360 # mediasize in sectors
374491 # Cylinders according to firmware.
16 # Heads according to firmware.
63 # Sectors according to firmware.

[email protected] [~]# dd if=/dev/ad8s1d of=/dev/null bs=4k conv=sync,noerror
17085274+0 records in
17085274+0 records out
69981282304 bytes transferred in 2140.335542 secs (32696407 bytes/sec)

The behavior does not depend on the sync and noerror flags. When the block size changes, the number of bytes changes, but never reaches the target value.
What am I doing wrong, or why does dd want to drive me crazy?

Answer the question

In order to leave comments, you need to log in

2 answer(s)
Z
zuborg, 2012-10-26
@zuborg

Most likely you have a broken label, with a 180G slice on a smaller screw, or with a larger than necessary slice start. In total, gpart detects a 180G slice using the bsdlabel table and creates a block device with the corresponding characteristics. And dd requests go to the physical disk and reach its end before they reach the end of the slice.

M
microphone, 2012-10-27
@microphone

And falls out in the same place? Broken sectors on the screw in smarts? If so try?
dd if=/dev/ad8s1d of=/dev/null bs=1m count=184 320
gpart show -v shows the same numbers?

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question