Назад | Перейти на главную страницу

В Linux определите, используется ли блочное устройство

Я делаю автоматизацию, которая переформатирует новый диск и смонтирует его. Я хочу, чтобы моя автоматизация проверила и убедилась, что диск не используется, чтобы я не сломал то, что уже работало (как это случилось со мной сегодня!).

Например, когда я делаю автоматизацию, все мои машины имеют / dev / sda, и я собираюсь автоматизировать добавление / dev / sdb, но затем я пытаюсь использовать машину, которая уже для чего-то использует / dev / sdb.

Чтобы было ясно, я не имею в виду, есть ли на диске место. Я имею в виду, он вообще установлен.

Мне нужна какая-то команда или функция, которой я могу передать блочное устройство, и она вернет истину или ложь в зависимости от того, используется ли диск.

Диск может быть смонтирован как целое устройство (например, «mount / dev / sda / mnt / foo») или он может быть разбит на разделы (например, «mount / dev / sda1 / mnt / foo») его можно использовать в LVM. Это мог бы быть другой способ использования диска, который еще не был изобретен.

Я пробовал lsof и fuser, ни один из них не работал.

Обратите внимание, что диск должен быть смонтирован, чтобы не пройти мой тест. Если он отформатирован или является частью группы томов, но не смонтирован, мне все равно. Это хорошо.

Есть ли лучший способ сделать это, чем проверить таблицу разделов и проверить, входит ли она в группу томов, а затем проверить, смонтированы ли какие-либо разделы или lvs?

Спасибо!