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!