[prev in list] [next in list] [prev in thread] [next in thread] 

List:       coreutils-bug
Subject:    dd 5.0 possible bug
From:       Buciuman Adrian <adibuciuman () easynet ! ro>
Date:       2003-08-19 17:10:57
Message-ID: 000301c36674$ec3a7780$e969e9d5 () xyz
[Download RAW message or body]

Kernel 2.4.20
slackware
coreutils 5.0


 I think there is a bug in DD .

Dd with conv=noerror,sync on a floppy disk  does sometimes not work as
aspected if an i/o appears ( in the middle  ?? ) of an input block
larger than 512bytes

 It  seems that it fails to seek past the requested block
( or can this be a kernel bug ???? )



Exemple1 :


A floppy with 2880 sectors of 512 bytes ( 1440 k )
sectors 1- 72 good
sector 73 bad
sector 74 bad
sectors 75- 1439 same good , some bad
sectors 1440 - 2880 good

dd if=/dev/fd0 of=test bs=720k conv=sync,noerror

dd: reading `/dev/fd0': Input/output error
0+1 records in
1+0 records out
0+3 records in
3+0 records out

The result should be a file with a size of 1440k with this content :
sectors 1-72 from the floppy , 1368 *512  bytes of null padding ,  sectors
1440-2880 from the floppy

But the result is a file with a size of 2160k with this content :
sectors 1-72 from the floppy , (1368+1440) * 512 bytes of null padding ,
sectors 1513 - 2880 from the floppy ,  72 * 512 bytes
of null padding.
. This  is going not to work at all on a raw device .



Exemple 2 .

dd if=/dev/fd0 of=test2 bs=1440k conv=sync,noerror
should copy the first 72 sectors and pad with nulls till the final size of
1440k .
Instead it seems it  enters an endless loop ,  the size of test2 is of some
GB , so i have to kill  dd.





The same problem in dd version 4.1 and perhaps others








[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic