bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

dd 5.0 possible bug


From: Buciuman Adrian
Subject: dd 5.0 possible bug
Date: Tue, 19 Aug 2003 20:10:57 +0300

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









reply via email to

[Prev in Thread] Current Thread [Next in Thread]