Problemas con ATA3 y Linux

Linux y disco duro antiguo, estándar ATA3, segunda mitad de los 90. Parece que no quieren ser amigos, un continuo chorreo de fallos con failed commands READ DMA, READ MULTIPLE, READ SECTOR, WRITE DMA, etc.

Siendo hardware tan desfasado, ¿puede que no esté soportado correctamente? No debería ser eso pero, de hecho, todas las especificaciones ATA están declaradas como obsoletas hasta justamente la ATA3, las siguientes todavía son válidas. Si hubiera algún bug o algo supongo que, no ya que sea poco prioritario, sino que directamente nadie puede haberse preocupado en hacerlo notar en caso de habérselo encontrado.

He probado un ATA4 y ningún problema. Poseo discos bastante más antiguos, los probaría para ver qué tal pero no los tengo muy a mano.

Otro tema que me mosquea es que si pregunto al disco sobre sus especificaciones me dice que es ATA3, que soporta hasta Ultra DMA 2 y que por tanto tira a 33MB/s. Según la red parece ser que UDMA no empezó hasta ATA4, en principio no debería ser UDMA2 y tirar a 33MB (corregidme si no es así). ¿Tal vez sea un disco especial? Es un Samsung, ¿quizá les dio por hacer algo a medio camino entre ATA3 y ATA4?

Linux detecta el disco y lo configura a /33. Tras un rato fallando lo baja a /25. No lo baja más pero sigue fallando igual.

En el arranque modifico los paramétros del kernel forzando el funcionamiento a PIO4, un modo que sí soporta la especificación ATA3 y que el propio disco también dice aceptar. Los errores bajan drásticamente, ahora se puede utilizar el sistema pero tampoco desaparecen por completo, de vez en cuando vuelve a saltar alguno de esos failed commands. Del mismo modo he probado a desactivar el soporte DMA y HPA pero el resultado es el mismo.

En la BIOS (placa de hace una década) creo que no veo nada relacionado, aunque puedo estar equivocado. Si dejo Linux y arranco con alguna utilidad para inspeccionar el disco también me dice que es ATA3 y UDMA2. La placa y el disco no están tan alejados en el tiempo, para su lanzamiento el estándar ATA3 haría unos 2-3 años que estaría marcado como obsoleto pero supongo que debería reconocerlo sin problemas.

Creo que físicamente el disco está bien, los fallos con Linux de vez en cuando acaban marcando sectores defectuosos pero diría que son errores que saltan por esa mala comunicación. Pasando alguna utilidad puedo corregirlos sin problemas y si machaco el disco fuera de Linux no pasa nada, no encuentro fallos si lo voy leyendo/escribiendo de inicio a fin.

En definitiva, no sé muy bien cómo arreglarlo porque tampoco sé por dónde puede estar el error. El disco no se entiende con el sistema y tanto Linux como placa me dicen que es un ATA3 funcionando como un ATA4, no sé si es un Samsung raro que dice ser ATA3 pero que de verdad soporta cosas de ATA4 (no creo), no sé si simplemente es un ATA3 con una identificación medio tarada que le hace decir que funciona como un ATA4 (más probable)... Y en cualquier caso, ¿alguna sugerencia para hacerlo funcionar en Linux?

:)
Buenas, ¿esto podría ser un "parche"?

https://git.kernel.org/cgit/linux/kerne ... ac940268dc

https://www.redhat.com/archives/dm-deve ... 00092.html

En Octubre de 2014 se anunció un soporte específico para ATA3 bajo Linux, podemos ir Googleando desde aquí.

http://dplinux.net/el-kernel-habilita-la-norma-ata-3-2/

https://lkml.org/lkml/2014/10/29/698

En mi caso hace años instalé Mandrake en un PC con placa base DFI del año 2000, el disco duro era un Segate de 80 Gb que poco despues se estropeó (clic) y no pude hacer más pruebas con el, Linux funcionó aunque recuerdo que a veces se congelaba. En este ordenador sobre todo he utilizado Linux Live, pero el disco duro que tiene ahora es más reciente. Si puedo ayudar Googleando estoy por aquí.


Saludos
@[Jun] Thx por responder!

Diría que ya está solucionado y que el problema era mucho más tonto de lo que parecía.

Está mañana he abierto la torre para ver qué encontraba, a ver si en el disco ponía algo que se me hubiera pasado por alto o lo que fuese. Ya lo había probado pero, ya que estaba, también me ha dado por jugar un poco con los cables, por si acaso. Y parece que era eso, concretamente el de corriente. Ahora mismo hace horas que intento que pete pero no lo consigo, de momento se mantiene estable, ninguna queja.

De todas maneras sigo desconcertado, un fallo de alimentación no acaba de encajar con que pete en Linux pero no fuera de él. Y aún más raro, ahora está funcionando con otro conector de la misma fuente, pero el conector con el que no funcionaba sí lo hace con cualquier otro dispositivo. He probado de todo para echarle la culpa al cable, quería que hiciera mal contacto o lo que sea, pero no, sólo no funciona con este disco.

Para buscar alguna explicación quiero entender que me he equivocado al valorar las pruebas dentro y fuera de Linux, básicamente me dedicaba a verificar el estado del disco y con ello dejaba conectados el resto de dispositivos. Supongo que ha podido afectar el tener un Linux con todo en marcha a simplemente tener un sistema bajo mínimo sólo centrado en el disco, quizá se produzcan más fluctuaciones y el disco sea más sensible o algo. Pero igualmente no tiene sentido, ahora está funcionando todo igual, sólo he cambiado conectores de sitio, la fuente y los cables en uso son los mismos.
2 respuestas