Laitteistovika (kiintolevy) (DMA-aikakatkaisuvirhe, dma_timer_expiry)
Last modified on 24. heinäkuuta 2026 • 2 min read • 239 wordsJokin aika sitten palvelimellamme ilmeisesti tapahtui kiintolevyvika, sillä seuraavia virheilmoituksia ilmestyi jatkuvasti: hda: dma-aikakatkaisuvirhe: […] hda: dma_timer_expiry: […] Vaihdoimme 20 GB:n kiintolevyn vanhan Mac-tietokoneeni 4,7 GB:n kiintolevyyn ja asensimme järjestelmän uudelleen.
hda: dma-aikakatkaisuvirhe: […] hda: dma_timer_expiry: […] Vaihdimme 20 GB:n kiintolevyn vanhan Mac-tietokoneeni 4,7 GB:n kiintolevyyn ja asensimme järjestelmän uudelleen. Ystäväni kokeili “rikkinäistä” 20 GB:n kiintolevyä Windows-järjestelmässä ja sanoi, että se toimii hyvin. Asensimme sen takaisin palvelimellemme toissijaiseksi asemaksi, ja kaikki sujui hyvin seuraavat kuusi kuukautta, kunnes käynnistyksen aikana alkoi ilmestyä samanlainen viesti: spurious 8259A interrupt: IRQ7 hdc: read_intr: status=0x59 {DriveReady SeekComplete DataRequest Error} hdc: read_intr: error=0x04 {DriveStatusError} ide1: reset: success ja sammutuksen aikana: hdc: status timeout: status=0x80 hdc: drive not ready for command ide1: reset timed-out Lisäksi kuului outoja napsahdusääniä. Myös kiintolevyn pyörimisen pysäyttämisessä oli ongelma: se ei enää koskaan pysähtynyt, mikä teki palvelimesta melko meluisan yöllä. Koska RedHatin oletusarvoinen 2.4.20-ytimen versio ei tue kannettavan tilaa, päätimme vaihtaa jakelua. Vaihdoin kyseisen kiintolevyn 6 GB:n levyyn ja asensin Suse Linux 9.1:n uudelleen. Kun kopioin tietoja 20 GB:n levyltä 6 GB:n levylle, kolmea tai neljää tiedostoa ei voitu kopioida (IO-virhe). Nyt mietin, onko 20 GB:n kiintolevy todella rikki vai ei. Kaikkien oireiden perusteella se vaikuttaa hyvin todennäköiseltä. Vaikka kyseessä olisivatkin vain DMA-virheilmoitukset, ne voidaan poistaa käytöstä kytkemällä DMA-tila pois päältä (annetaan käynnistysparametreina: ide=nodma noapic apm=off). Tämä heikentää tietenkin suorituskykyä. DMA tarkoittaa Direct Memory Accessia, eli suoraa muistiyhteyttä, ja se tarkoittaa, että dataa voidaan siirtää kiintolevyltä toiseen paikkaan (esim. muistiin tai toiselle levylle) ilman, että CPU on mukana prosessissa (mikä tekee siitä paljon nopeamman ja vapauttaa CPU:n tarpeettomasta työstä).