Единственный способ сделать это правильно - попытаться размонтировать компакт-диск внутри виртуальной машины.
Общая процедура, которую я обычно использую:
Проверьте, монтируется ли он вообще, желательно запустить от имени пользователя root:
grep /dev/sr0 /proc/self/mounts
Если это выплевывает какой-либо текст, то компакт-диск смонтирован и может использоваться (но его пока невозможно удалить, даже если он не используется), в противном случае вы можете предположить, что он не используется, если у вас не открыто программное обеспечение для записи компакт-дисков ,
Попытайтесь размонтировать его (необходимо сделать как root):
umount /dev/sr0
Если это произойдет без ошибок, в этот момент вы можете быть уверены, что компакт-диск не используется и можете безопасно удалить его на стороне гипервизора. Если он жалуется на
/dev/sr0
отсутствие монтирования, перепроверьте первый шаг, в противном случае переходите к следующему шагу.Выясните, что использовало его (также должно быть сделано от имени root, и вам, возможно, придется установить
fuser
команду):fuser -m $(grep /dev/sr0 /proc/self/mounts | cut -f 2)
Это выяснит, где он монтируется, а затем выложит одну строку для каждого используемого файла, начиная с имени файла, за которым следует разделенный пробелами список PID, которые используют файл. Затем вы можете посмотреть, к каким процессам относятся эти PID в большинстве программ мониторинга системы, например
top
. Если вас не волнует, что это такое, вы можете добавить-k -TERM
перед-m
этой командой выше, и она отправит SIGTERM всем процессам за вас (эквивалентно вызовуkill
каждого PID). После того, как со всеми этим покончено, вы можете повторить шаг 2, иumount
команда должна работать.
Обратите внимание, что в этом подходе предполагается, что пространства имен монтирования не задействованы, что обычно будет истинно, если вы не используете контейнеры (в этом случае вам может потребоваться выполнить все эти шаги в каждом работающем контейнере).