O dispositivo de bloco desconectado permanece em / dev /, comandos de sincronização não comutáveis

1

Estou executando o Linux Mint 18/2 com o kernel 4.10.0-38-lowlatency e o desktop KDE5.

Estou testando muita memória flash USB com um script bash personalizado e f3 e hoje tive uma situação estranha. Uma unidade não desapareceu de / dev / quando estava fisicamente desconectada da máquina.

Eu também notei que qualquer comando sync será completamente desligado e até sudo pkill -9 sync não ajuda.

Eu finalmente consegui sudo rm /dev/sdd , mas sync continuará pendente para sempre.

Todos os processos de sincronização que foram executados desde o início do erro permanecem no sistema. Htop diz que todos fazem I / O o tempo todo:

Alguém tinha algo assim? Posso consertar isso sem reiniciar a máquina?

    
por unfa 17.11.2017 / 13:57

2 respostas

2

Você não deve excluir o /dev/sdX file ; em vez disso, você pode fazer isso:

echo "1" > /sys/block/sdX/device/delete

Ao fazer isso, seu processo pode desaparecer.

    
por 17.11.2017 / 17:28
1

A entrada em /dev é apenas um arquivo de dispositivo, ou seja, um gateway através do qual os aplicativos conversam com o driver. Criar ou remover entradas em /dev não tem impacto na operação do driver, muito menos na operação do dispositivo. O motorista nem está ciente dessas entradas.

Os processos não devem permanecer presos no estado D. Se o fizerem, isso indica um erro no kernel. O bug do kernel pode ser desencadeado por um mau funcionamento do hardware: a maioria dos drivers não funciona bem quando o hardware se comporta mal de maneiras não triviais. pkill -9 irá matar o processo assim que o driver decidir que está fazendo algo que possa ser interrompido, mas se o driver estiver preso em um código ininterrupto, isso pode durar para sempre.

O lugar para procurar pistas é o seu sistema de logs. Provavelmente haverá pistas, seja do driver que está se comportando mal ou de um driver genérico (por exemplo, o driver de barramento USB) que detectou algo estranho, como um dispositivo desconectando-se abruptamente ou enviando mensagens malformadas. Tente dmesg ou journalctl -k ou less /var/log/kern.log (acho que esse é o nome no Mint, se não olhar para qualquer arquivo que contenha logs do kernel).

Tentando desconectar forçadamente o dispositivo via /sys entradas pode funcionar (depende do problema)

    
por 17.11.2017 / 22:15