A while ago our server seems to have a hard disk failure as the following error messages kept coming up: hda: dma timeout error: [...] hda: dma_timer_expiry: [...]
We exchanged the 20 GB HD against my old Mac's 4.7 GB HD and reinstalled the system. A friend of mine tried the "broken" 20GB HD on a Windows system and said it works fine. We put it back as a secondary drive to our server and everything went OK for another 6 months until a similar message started appearing during booting: spurious 8259A interrupt: IRQ7 hdc: read_intr: status=0x59 {DriveReady SeekComplete DataRequest Error} hdc: read_intr: error=0x04 {DriveStatusError} ide1: reset: success
and during shutdown: hdc: status timeout: status=0x80 hdc: drive not ready for command ide1: reset timed-out
Additionally there were strange clicking sound appearing. And there is also a problem with spinning down the hard drive: it never did spin down anymore which made the server quite loud during the night. Since RedHat's default 2.4.20 kernel doesn't support laptop mode, we decided to switch the distro. I exhanged that drive for a 6 GB drive and newly installed Suse Linux 9.1. When I copied over the data from the 20 GB drive to the 6 GB drive there were three or four files that I couldn't copy (IO failure). Now I wonder whether the 20 GB drive is really broken or not. From all symptoms it seems very likely yes. Although if its just DMA failure messages, they can be switched off by turning off DMA mode (given as boot parameters: ide=nodma noapic apm=off
That makes obviously performance worse. DMA means Direct Memory Access and it means that data can be moved from the hard disk to another place (e.g. memory or another disk) without the CPU being involved (which makes it much faster and frees the CPU from unnecessary work.