[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- dd 5.0 possible bug,
Buciuman Adrian <=