Demora en el arranque debido a un disco SATA inexistente

Mi placa ASUS M4A87TD EVO tiene dos controlleres de disco incorporados, uno de ellos es un JMicron JMB361 con un disco IDE antiguo conectado. Cuando inicio Arch Linux, se muestra en el diario del sistema de esta manera:

Nov 02 12:53:50 host kernel: ahci 0000:04:00.0: JMB361 has only one port Nov 02 12:53:50 host kernel: ahci 0000:04:00.0: AHCI 0001.0000 32 slots 2 ports 3 Gbps 0x3 impl SATA mode Nov 02 12:53:50 host kernel: ahci 0000:04:00.0: flags: 64bit ncq pm led clo pmp pio slum part Nov 02 12:53:50 host kernel: ata9: SATA max UDMA/133 abar m8192@0xfbffe000 port 0xfbffe100 irq 17 Nov 02 12:53:50 host kernel: ata10: SATA max UDMA/133 abar m8192@0xfbffe000 port 0xfbffe180 irq 17 Nov 02 12:53:50 host kernel: ata9: SATA link down (SStatus 0 SControl 300) Nov 02 12:53:50 host kernel: ata10: softreset failed (1st FIS failed) Nov 02 12:53:50 host kernel: ata10: softreset failed (1st FIS failed) Nov 02 12:53:50 host kernel: ata10: softreset failed (1st FIS failed) Nov 02 12:53:50 host kernel: ata10: limiting SATA link speed to 1.5 Gbps Nov 02 12:53:50 host kernel: ata10: softreset failed (1st FIS failed) Nov 02 12:53:50 host kernel: ata10: reset failed, giving up 

No sé de dónde vienen los dispositivos ata9 y ata10. Solo hay un disco IDE conectado a ese controller y se inicializa correctamente. El BIOS no muestra nada relacionado con ata9 o ata10 (y no debería ser porque no hay nada conectado allí) y no he encontrado ninguna forma de desactivarlos en el BIOS.

Pensé que había encontrado una forma de desactivar la detección de estos dos dispositivos aquí: ¿Cómo decirle a Linux Kernel> 3.0 que ignore por completo un disco defectuoso? pero no ha hecho ninguna diferencia. Así es como estoy arrancando el kernel:

 Nov 02 12:53:50 host kernel: Linux version 3.17.2-1-ARCH (builduser@thomas) (gcc version 4.9.1 20140903 (prerelease) (GCC) ) #1 SMP PREEMPT Thu Oct 30 20:49:39 CET 2014 Nov 02 12:53:50 host kernel: Command line: BOOT_IMAGE=/vmlinuz-linux root=UUID=2cfdc373-7023-48d7-a90d-43d030af277b rw libata.force=9:disable,10:disable quiet 

El sistema se las arregla para arrancar al final, pero los softrese defectuosos demoran molestamente el process de arranque por al less 90 segundos.

Así que, obviamente, la configuration del parámetro libata.force disable kernel se aplica demasiado tarde en el process. El controller ATA primero intenta restablecer el dispositivo antes de que lo desactive. Lo que funcionó para mí es desactivar los restablecimientos así como también el dispositivo con este parámetro de kernel libata.force=9:disable,9:norst,10:disable,10:norst .

Todavía estoy recibiendo algunas inputs de logging del kernel para estos dispositivos, pero no me molestan, siempre y cuando no se muestre nada en la console y el sistema arranque de inmediato:

 Nov 08 01:19:39 host kernel: ata9: FORCE: link flag 0x6 forced -> 0x6 Nov 08 01:19:39 host kernel: ata9: SATA max UDMA/133 abar m8192@0xfbffe000 port 0xfbffe100 irq 17 Nov 08 01:19:39 host kernel: ata10: DUMMY Nov 08 01:19:39 host kernel: ata9: SATA link down (SStatus 0 SControl 300)