i386/60603: dd causes error when copying cd from ATA drives
bde at zeta.org.au
Sun Dec 28 03:02:56 PST 2003
On Fri, 26 Dec 2003, Thomas Moyer wrote:
> When running the command dd bs=2048 if=/dev/acd0 of=cd.image the following error occurs
> acd0:FAILURE - READ_BIG status=51<READY,DSC,ERROR> sensekey=ILLEGAL REQUEST error=4<ABORTED>
> dd: /dev/acd0: Input/output error
> 250167+0 records in
> 250167+0 records out
> 512342016 bytes transferred in 841.234361 secs (609036 bytes/sec)
> Using GENERIC dd bs=2048 if=/dev/acd0 of=cd.image
I believe this is caused by a bad table of contents on the media. The
TOC sometimes says that there are more blocks than there actually are,
and dd handles this perfectly by getting an i/o error attempting to
read a nonexistent block.
I see this problem deterministically for cd's written by burncd, perhaps
because I always create multi-session cd's. Factory-burned cd's mostly
don't have it. burncd seems to do the right things, but somehow the TOC
always says that the track has more sectors that burncd wrote. Usually
only 1 more. but for small writes the minimum track length seems to be
300. This is with "acd0: CDRW <RICOH CD-RW MP7320A> at ata1-master UDMA33"
I tried to use cdrecord on
"cd0: <RICOH CD-RW MP7320A bp13> Removable CD-ROM SCSI-0 device"
for comparison, but atapicam doesn't seem to support cdrecord.
More information about the freebsd-i386