[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Problema con configuración de disco IDE (con hdparm)



Hola a todos, no son problemas graves, pero sí que me provocan muchas dudas.

Tengo dos discos duros, conectados a un mismo canal ide (ide0), uno maestro de 80 GB y otro esclavo de 20 GB. Aquí pongo las características (he borrado alguna información irrelevante).

/dev/hda:

 Model=ST380011A, FwRev=8.01, SerialNo=5JVRFDM2
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
 BuffType=unknown, BuffSize=2048kB, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=156301488
 PIO modes:  pio0 pio1 pio2 pio3 pio4
 DMA modes:  mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 *udma3 udma4 udma5

/dev/hdb:

 Model=ST320413A, FwRev=3.35, SerialNo=6ED11CQH
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
 BuffType=unknown, BuffSize=512kB, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=39102336
 PIO modes:  pio0 pio1 pio2 pio3 pio4
 DMA modes:  mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 *udma4 udma5
El problema es que cuando arranco Debian (con linux 2.6.18-5-686), durante la carga del núcleo aparecen los siguientes mensajes de error.

Dec 28 16:48:58 debian kernel: hdb: dma_intr: status=0x51 { DriveReady SeekComplete Error
 }
Dec 28 16:48:58 debian kernel: hdb: dma_intr: error=0x84 { DriveStatusError BadCRC }
Dec 28 16:48:58 debian kernel: ide: failed opcode was: unknown
Dec 28 16:48:58 debian kernel: hdb: dma_intr: status=0x51 { DriveReady SeekComplete Error
 }
Dec 28 16:48:58 debian kernel: hdb: dma_intr: error=0x84 { DriveStatusError BadCRC }
Dec 28 16:48:58 debian kernel: ide: failed opcode was: unknown
Dec 28 16:48:58 debian kernel: hdb: dma_intr: status=0x51 { DriveReady SeekComplete Error
 }
Dec 28 16:48:58 debian kernel: hdb: dma_intr: error=0x84 { DriveStatusError BadCRC }
Dec 28 16:48:58 debian kernel: ide: failed opcode was: unknown
Dec 28 16:48:58 debian kernel: hdb: dma_intr: status=0x51 { DriveReady SeekComplete Error
 }
Dec 28 16:48:58 debian kernel: hdb: dma_intr: error=0x84 { DriveStatusError BadCRC }
Dec 28 16:48:58 debian kernel: ide: failed opcode was: unknown
Dec 28 16:48:58 debian kernel: hda: DMA disabled
Dec 28 16:48:58 debian kernel: ide0: reset: success
He estado googleando un poco y el error que aparece (fallo con el CRC) es básicamente que hay algunos sectores del disco no se han podido leer. Pero he testeado el disco y no me da sectores defectuosos. Lo que sí que ocurre es que, una vez arrancado el sistema, al comprobar los modos de transferencias que se están usando, hda está usando el modo PIO4 y hdb el modo UDMA4 (66 MB/s).

Esto es algo que he solucionado usando en /etc/hdparm.conf la siguiente configuración:
/dev/hda {
        mult_sect_io = 16
        write_cache = off
        dma = on
        transfer_mode = 67       #Modo de transferencia UDMA3 (44 MB/s)
        io32_support = 3
}

NOTA: Respecto a hdb, no aplico ninguna configuración respecto al modo de transferenc
Y consigo que se active el modo UDMA en hda, de manera que queda así (información aportada por el controlador IDE, he borrado alguna información irrelevante)

----------AMD BusMastering IDE Configuration----------------
Driver Version:                     2.13
South Bridge:                       0000:00:0f.0
Revision:                           IDE 0xa2
Highest DMA rate:                   UDMA133
BM-DMA base:                        0xf000
PCI clock:                          33.3MHz
-----------------------Primary IDE-------Secondary IDE------
Cable Type:                   80w              40w
--------------------------drive0------drive1-----drive2------drive3-----
Transfer Mode:       UDMA      UDMA      UDMA       DMA
Transfer Rate:       44.4MB/s  66.6MB/s  33.3MB/s   3.3MB/s

Lo que ocurre es que, si intento aplicar a hda un modo de trasferencia UDMA4 O UDMA5, los errores antes mencionados de BadCRC me salen también durante la ejecución de INIT (imagino que cuando se lee la configuración de /etc/hdparm.conf), pero esta vez el error aparece tanto en los dos discos, y el resultado es que, hda ahora queda funcionando en modo DMA, pero hdb queda en modo PIO.

No comprendo por qué aparecen errores en lectura de sectores si se cambia el modo de transferencia a uno más rápido, sobretodo cuando son modos soportados según las características del disco duro y estoy usando un cable IDE de 80 hilos (ya comprobé que no es fallo del cable, con otro cable me ocurre lo mismo).
Si alguien me supiera decir a qué podría deberse, se lo agradecería

Por último, a ver si alguien pudiera saber si habría alguna forma de que se pudieran salvar los errores de BadCRC durante la carga del kernel, lo he intentado poniendo como parámetro del kernel ide=nodma y persiste el problema.

Un saludo, y gracias de antemano!

Reply to: