Como verificar se há alguma atividade em um disco físico?

0

Eu tenho um cartão SD conectado por meio de uma interface USB.

A saída de fdisk -l indica o seguinte:

Disk /dev/sdb: 3965 MB, 3965190144 bytes

Eu tenho um script que reinicializa várias partições em um disco usando os comandos mkfs.ext4 e mkfs.vfat , todos seguidos por sync . Embora o comando sync termine com um código de saída 0, a luz no adaptador SD USB ainda está piscando (indicando a atividade do disco).

Atualmente, no meu script, tenho um cronômetro de contagem regressiva para contagem regressiva de 90 segundos, que determinei como "bom o suficiente" para garantir que o disco não esteja ocupado antes da próxima operação, mas é realmente um hack.

Pergunta: Existe uma maneira genérica de verificar se o dispositivo físico /dev/sdb está sendo acessado, independentemente da operação (por exemplo, incluindo reescrever partições, reler a tabela de partições usando sfdisk , ou acessando um arquivo em uma partição no disco)?

Já experimentei fuser /dev/sdb e fuser /dev/sdb* , mas isso não acontece. Quando a luz está piscando no adaptador de cartão SD USB, nem sempre há saída do comando fuser .

    
por CJBS 29.01.2015 / 20:50

1 resposta

1

Se você estava usando dd, há um comando que nos diria se ainda está fazendo seu trabalho

 sudo pkill -USR1 -n -x dd

Não soe assim o que você está fazendo.

Eu acho que a razão pela qual a luz da atividade ainda está indo depois da sincronização é porque escrever para o cartão SD tende a ser mais lento ...... Ou eu perdi totalmente o ponto

Desculpe, não foi possível encontrar resposta à pergunta sobre como verificar se / dev / sdb está em uso.

editar

Confira o iotop

 sudo apt-get install iotop

Em seguida, execute-o com este comando

 sudo iotop --only

Dessa forma, você mostrará apenas o que está em uso.

É isso que você está procurando? Se não houver outras sugestões, AQUI

    
por geoffmcc 29.01.2015 / 21:23