Иногда, когда я хочу отключить устройство, например,
sudo umount /dev/loop0
Я получу сообщение
umount: /mnt: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
Я обычно решаю эту проблему, закрывая окно консоли (в моем случае xfce4-терминал), а затем umount
.
Что означает эта проблема? Есть ли более разумное решение?
Ответы:
Это означает, что некоторый процесс имеет рабочий каталог или дескриптор открытого файла под точкой монтирования. Лучшее, что можно сделать, это завершить процесс, вызвавший нарушение, изменить его рабочий каталог или закрыть дескриптор файла перед размонтированием.
Хотя в Linux есть альтернатива. Использование
umount -l
звонков «ленивым» размонтированием. Файловая система все еще будет смонтирована, но вы не сможете ее увидеть или использовать, за исключением процессов, которые уже ее используют. Когда программа-нарушитель завершает работу (с помощью любых средств), система «заканчивает» размонтирование файловой системы.источник
lsof
, вероятно, лучший способ.lsof | grep loop0
?Вы также можете использовать,
fuser
чтобы убить все процессы, используя смонтированную файловую систему.Параметры:
Проверьте себя на объяснение оболочки .
источник
Учитывая ваше «обычное решение», это означает, что оболочка, которую вы запускаете в окне консоли, имеет каталог в файловой системе на этом устройстве в качестве текущего рабочего каталога.
Linux и Unixes в целом очень сильно хотят, чтобы файловая система была смонтирована, если у процесса есть текущий рабочий каталог в этой файловой системе.
Вы можете просто использовать
cd
в окне консоли, чтобы выйти из каталога в или под,/mnt
а не убивать окно консоли, и оболочка работает внутри него.источник
Я обнаружил ситуацию, которая может помешать размонтированию устройства, которым я поделюсь в качестве ответа, даже если этот вопрос очень старый.
Если у вас есть общие ресурсы NFS, размещенные на компьютере, и любые из этих общих ресурсов NFS поддерживаются устройством, которое вы пытаетесь отключить, вам придется прекратить их совместное использование (лучше всего это сделать, остановив службу NFS, например,
sudo service nfs-kernel-server stop
в последних версиях Ubuntu. ). Сервер NFS может не отображаться в lsof или fuser, что может затруднить выявление проблемы.источник