Linux documentation excerpt:
Modern CD-ROM drives can attain very high head speeds, yet some CD-ROM drives are capable of running at reduced speeds. There are several reasons that might make you consider changing the speed of a CD-ROM drive:
There have been reports of read errors at high speeds, especially with badly pressed CD-ROMs. Reducing the speed can prevent data loss under these circumstances.
Many CD-ROM drives are annoyingly loud, a lower speed may reduce the noise.
You can reduce the speed of IDE CD-ROM drives with hdparm or a program called setcd. It works like this:
hdparm -E [speed] [cdrom device]
setcd -x [speed] [cdrom device]
If you have root privileges the following command may also help:
echo file_readahead:2000000 > /proc/ide/[cdrom device]/settings
This sets prefetched file reading to 2MB, which helps with scratched CD-ROMs. If you set it to too high, the drive will continuously spin up and down, and will dramatically decrease the performance. It is recommended that you also tune your CD-ROM drive with hdparm:
hdparm -d1 -a8 -u1 cdrom device
This enables DMA access, read-ahead, and IRQ unmasking (read the hdparm man page for a detailed explanation).
Please refer to "/proc/ide/cdrom device/settings" for fine-tuning your CD-ROM.
SCSI drives do not have a uniform way of setting these parameters (Do you know one? Tell us!) There is a tool that works for Plextor SCSI drives.
Speed: cdcontrol [-f device] speed speed
DMA: sysctl hw.ata.atapi_dma=1