В linux у меня есть файл, который я смонтировал с помощью -o loop
вариант. Я хочу его размонтировать. Однако это говорит мне, что device is busy
. Однако, делая lsof | grep pathofimagefile
Я не получаю результатов. И все же я не могу размонтировать!
В своем вопросе вы написали grep pathofimagefile
. Вы пробовали с grep pathofmountpoint
?
Также убедитесь, что ни один процесс, запущенный на вашем компьютере, не имеет вашей точки монтирования (или ее подкаталога) в качестве текущего рабочего каталога.
sudo ls -l /proc/*/cwd | grep pathofmountpoint
предоставит вам эти номера процессов.
Я считаю, что это то, что термоэлемент для. В частности, fuser -km /path/to/mount/point
- обратите внимание, что -k
flag убивает процессы с файлами, открытыми в этой файловой системе. Вы можете опустить этот флаг, чтобы сначала просмотреть список.
Вау, это действительно старое, но чтобы помочь тем, кто найдет это в будущем, вот что я обнаружил: У меня были вложенные крепления. То есть я смонтировал образ корневой файловой системы с устройством обратной связи на / mnt. Затем под этой точкой монтирования я смонтировал файловые системы proc и sysfs, смонтированные в / mnt / proc и / mnt / sys. Позже я забыл о файловых системах proc и sysfs, когда пытался размонтировать образ файловой системы.
# mount -o loop rootfs_disk.img /mnt
# mount proc /mnt/proc -t proc
# mount sysfs /mnt/sys -t sysfs
# # ... ages pass
# umount rootfs_disk.img
umount: /mnt: device is busy.
# umount /mnt
umount: /mnt: device is busy.
- Ной Спурриер
Убедитесь, что у вас нет открытой оболочки в смонтированном каталоге. Я никогда не смотрел, отображается ли это в lsof или нет. Также при выполнении lsof попробуйте greping на точке монтирования, а не на самом файле образа.
У меня такая же проблема. Каталог был смонтирован не только с помощью -o loop
, но он экспортировался в NFS с помощью exportfs
команда. fuser
и lsof
оба сказали, что устройство не использовалось. Так же exportfs -u
претензий не было. Однако NFS все еще показывала устройство в / proc / fs / nfs / exports. Я перезапустил nfs и получил следующее:
Shutting down NFS mountd: [ OK ] Shutting down NFS daemon: [ OK ] Shutting down NFS services: [FAILED] Starting NFS services: [ OK ] Starting NFS quotas: [ OK ] Starting NFS daemon: [ OK ] Starting NFS mountd: [ OK ]
Затем я мог размонтировать устройства. К сожалению, воспроизвести это довольно сложно. Может быть, кто-то может дать больше идей.
У меня была такая же проблема, umount не размонтирует мое устройство. Как ни странно, ни lsof, ни fuser не смогли найти какой-либо процесс, использующий эту точку монтирования. lsof нашел только поток ядра [loop0], я попытался убить его (даже с -9), но безуспешно.
Что меня действительно удивило, так это то, что после нескольких минут ожидания (после попытки umount -f / mnt и т. Д. - не сработало) я попробовал еще раз, и вуаля, теперь это сработало ?!
Я не уверен, но, может быть, само ядро какое-то время не могло освободить loop0-thread, но потом могло закрыть его? Кто знает...
Итак, суть в следующем: попробуйте этот umount снова и снова, через определенное время вам может повезти :-)
бегать pwd
... ваш терминал все еще сидит в pathofimagefile
? Если да, выйдите из pathofimagefile
а затем повторно выполнить umount
.
Что о:
sudo lsof | grep loop
Пытаться sudo losetup --detach /dev/loop0