Как проверить, используется ли компакт-диск в настоящее время в Linux?

Как проверить, используется ли компакт-диск, прежде чем удалить его из виртуальной машины?
В настоящее время он установлен на /dev/sr0 на машине Ubuntu 14.04, и мне нужно отключить его для миграции хранилища данных.

Я знаю, что это не пишется, но мне нужно знать, если это чтение.

1
задан wintermuted
19.02.2023 4:14 Количество просмотров материала 3023
Распечатать страницу

1 ответ

единственный способ сделать это правильно, чтобы попытаться отключить компакт-диск внутри виртуальной машины.

общий порядок я использую это:

  1. проверьте, если он установлен на всех, предпочтительно работать как корень:

    grep /dev/sr0 /proc/self/mounts
    

    если это выплевывает какой-либо текст, то компакт-диск смонтирован и может быть в использовании (но не безопасно удалить еще, даже если он не используется), в противном случае вы можете предположить, что он не используется, если у вас есть программное обеспечение для записи компакт-дисков открытый.

  2. попытка размонтировать его (должно быть сделано как root):

    umount /dev/sr0
    

    если это удастся без ошибок, вы можете быть уверены, что на данный момент компакт-диск не используется и может безопасно удалить его со стороны гипервизора. Если он жалуется на /dev/sr0 не установлен, повторите первый шаг, в противном случае перейдите к следующему шагу.

  3. выяснить, что с его помощью (также должно быть сделано в качестве корня, и вы, возможно, придется установить fuser command):

    fuser -m $(grep /dev/sr0 /proc/self/mounts | cut -f 2)
    

    это выяснит, где он смонтирован, а затем выплюнет одну строку для каждого используемого файла, начиная с имени файла, а затем разделенный пробелами список PID, которые используют файл. Затем вы можете посмотреть, какие процессы эти PID принадлежат в большинстве программного обеспечения для мониторинга системы, как top. Если вам все равно, что они, вы можете добавить -k -TERM до -m к этой вышеуказанной команде, и она пошлет SIGTERM к всем процессам для вы (эквивалентно вызову kill на каждом PID). После того, как все они были рассмотрены, вы можете повторить шаг 2, и umount команда должна работать.

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

1
отвечен Austin Hemmelgarn 2023-02-20 12:02

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх