No linux, determine se um dispositivo de bloco está sendo usado

2

Estou fazendo automação que irá reformatar um novo disco e montá-lo. Eu quero que minha automação verifique e verifique se o disco não está em uso, por isso não quebro algo que já estava sendo executado (como aconteceu comigo hoje!).

EG, quando eu faço minha automação todas as minhas máquinas possuem / dev / sda e eu vou automatizar adicionando / dev / sdb, mas então tento usar uma máquina que já usa / dev / sdb para alguma coisa.

Só para ficar claro, não quero dizer que o disco tenha espaço. Quero dizer, é montado em tudo.

Eu quero algum tipo de comando ou função para o qual eu possa passar um dispositivo de bloco e ele retornará verdadeiro ou falso dependendo se o disco está em uso.

O disco pode ser montado como um dispositivo inteiro (por exemplo, "mount / dev / sda / mnt / foo") ou pode ser particionado (por exemplo, "mount / dev / sda1 / mnt / foo"). LVM. Pode ser outra forma de usar um disco que ainda não foi inventado.

Eu tentei lsof e fuser, nem trabalhei.

Note que o disco tem que ser montado para falhar no meu teste. Se for formatado ou fizer parte de um grupo de volume, mas não estiver montado, não me importo. Tudo bem.

Existe uma maneira melhor de fazer isso do que verificar a tabela de partições e verificar se ela faz parte de um grupo de volumes e, em seguida, verificar se alguma partição ou lvs está montada?

Obrigado!

    
por Dylan Martin 11.08.2018 / 01:26

0 respostas