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 someGB , so i have to
kill dd.
The same problem in dd version 4.1 and perhaps others
Adrian Buciuman
_______________________________________________
Bug-coreutils mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-coreutils