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?