major problem -- Bad CDs require system reboot?

Joe Rhett jrhett at
Mon Jun 7 20:12:37 GMT 2004

I just spent most of the last few days trying to diagnose and resolve a 
fairly major problem with FreeBSD that forced reboots.  Here is the long
and short of the deal.

1. FreeBSD assumes DMA access for hard drives, but assumes PIO access for
ATAPI devices like CD-ROMs.  Your notes say that this is because DMA access
for CD-ROMs is broken too often.  However, some CD-ROMs are actually broken
in PIO mode but work great in DMA mode (like my Acer 50x unit)
 -- learned this through many reports regarding the unit under Windows

To fix, I edited /boot/loader.conf and added hw.ata.atapi="1" 

2. If you have a bad CD-ROM (or you are using broken PIO mode) you'll see
failed BIG_READ errors.  When this happens, the process accessing the drive
will Zombie.  You can't kill it, as it will show "D" locked status.  You
can't unmount the CD either. You'll be forced to reboot at this point.

notes: this was nasty to diagnose because of the dual problems.  I switched
CDs several times and still had the problem so I ruled out it being the CD.
Learned to switch DMA mode and still had the problem, but had had stopped 
swapping CDs at this point.  Reburning the freebsd-10 install CD solved the 
problem after DMA mode was enabled.  And yes, I went back and undid everything 
I did to confirm these issues before I brought it back to working mode.

So in the end run, there are two issues:

1. Having a CD-ROM in PIO mode instead of DMA mode should not force a

2. Having a CD which burned incorrectly or has a scratch should not force a

There must be some way to recover from this.  And in particular, shouldn't
the driver be able to deal with case #2 better?

Joe Rhett
Senior Systems Engineer

More information about the freebsd-current mailing list