Os passos que tomei para corrigir:
- BIOS atualizado
- Na BIOS, o modo combinado do SATA IDE é alterado para esta ajuda
- lendo a documentação do kernel sobre parâmetros do kernel , já que todas as soluções on-line tratavam da adição de parâmetros para naquela.
- Descobri que meu SSD realmente suporta apenas 3.0Gbps de velocidade SATA com um bom script de shell
for i in 'grep -l Gbps /sys/class/ata_link/*/sata_spd'; do echo Link "${i%/*}" Speed 'cat $i' cat "${i%/*}"/device/dev*/ata_device/dev*/id | perl -nE 's/([0-9a-f]{2})/print chr hex $1/gie' | echo " " Device 'strings' | cut -f 1-3 done
- Na configuração do grub, defina a porta SATA da unidade SSD para a velocidade máxima 3.0
vi /etc/default/grub
alterou o parâmetro nesta linha para permitir apenas 3Gbps para a porta SATA 7 (meu SSD)
GRUB_CMDLINE_LINUX_DEFAULT="libata.force=7:3.0G quiet"
atualize o grub e reinicie
update-grub reboot
A solução para isso já percorreu um longo caminho para mim. Basicamente, eu abordava todo o problema todos os dias do zero.
Os problemas que encontrei no caminho:
- Eu verifiquei minhas estatísticas da SMART todos os dias e comparei. A contagem de erros não aumentou, embora as exceções continuassem sendo lançadas.
- Meu SSD foi realmente o causador das exceções de kernel, esse script me ajudou muito a entender qual dispositivo ATA estava realmente qual disco rígido no caso
- Meu SSD e outras duas unidades em uma configuração errada de velocidade (UDMA )
root@msa-nas1:~# sudo hdparm -I /dev/sd{a,b,c,d,e,f,g} | grep -i udma DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 DMA: mdma0 mdma1 mdma2 udma0 udma1 *udma2 udma3 udma4 udma5 udma6 DMA: mdma0 mdma1 mdma2 udma0 *udma1 udma2 udma3 udma4 udma5 udma6 DMA: mdma0 mdma1 mdma2 udma0 udma1 *udma2 udma3 udma4 udma5 udma6
- O log do dmesg mostrou algumas mensagens estranhas sobre cabos de 40 fios, mesmo que eles realmente não existam mais, eu comprei dois cabos NEW diferentes, nada ajudou.
[ 1.193091] ata5.01: ATA-8: SanDisk SD6SF1M128G1022I, X231200, max UDMA/133 [ 1.193095] ata5.01: 250069680 sectors, multi 1: LBA48 NCQ (depth 0/32) [ 1.193743] ata5.00: limited to UDMA/33 due to 40-wire cable [ 1.193746] ata5.01: limited to UDMA/33 due to 40-wire cable
- O Grub carregou um kernel engraçado para as duas últimas unidades:
pata_atiixp
. Eu estava esperando o motorista da AHCI.
[ 1.022724] scsi4 : pata_atiixp [ 1.022834] scsi5 : pata_atiixp [ 1.022887] ata5: PATA max UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0xf100 irq 14 [ 1.022888] ata6: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0xf108 irq 15
- Eu verifiquei o consumo de energia e comparei se excedeu a unidade de energia, isso não aconteceu. Nem perto.
- Eu substituí o SSD exatamente com o mesmo modelo de outra máquina. Excactly o mesmo modelo. Ainda os mesmos erros.
- O SSD !! Na verdade, era incrivelmente lento, então o hdparm sobre a saída do UDMA estava correto.
root@msa-nas1:~# hdparm -t -T /dev/sdf /dev/sdf: Timing cached reads: 2144 MB in 2.00 seconds = 1072.18 MB/sec Timing buffered disk reads: 8 MB in 3.60 seconds = 2.22 MB/sec
Eu tentei chegando ao SandDisk , foi o disco rígido que me deu as exceções, sem sucesso algum. Eu realmente não encontrei ninguém com o mesmo problema, mas muitas pessoas com problemas semelhantes , no final Eu tentei algumas poucas dessas soluções sugeridas e Acabou sendo uma mistura de algumas coisas. Agora tudo faz muito sentido para mim, depois todo mundo sabe melhor, eu acho.