Принудительно отключить устройство, как?


8

Я установил блочное устройство (внутренний жесткий диск), чтобы сказать ~/HD, и я пытаюсь,

~# umount ~/HD

Это отвечает,

umount: device is busy.

Теперь я убиваю все процессы вручную, изучив

~# fuser -m ~/HD

Я также уверен, что на самом деле ни один процесс не обращается к ~/HDпути

~# lsof | grep HD

Еще umount ~/HDговорит device is busyдаже с -fопцией.

PS: я не хочу использовать -lопцию umount, поскольку подключенное устройство на самом деле является зашифрованным устройством отображения, которое, в свою очередь, не будет отключено, если устройство отображения явно не отключено.

Поэтому в основном мой вопрос заключается в том , как на самом деле заставить umountразмонтировать устройство или Как устройство по- прежнему помечается как занятый в то время как ни один процесс не доступа к ней (или , по крайней мере , fuserи lsofне сообщают об этом) , и что я могу поделать?

Я на Ubuntu 9.10 x64.


Ответы:


3

Вы увидите это поведение, если вы смонтировали что-то еще в подкаталоге ~ / hd. В этом случае ни fuser, ни lsof ничего не покажут. Если вы ничего не смонтировали в ~ / hd ('mount' ответит на этот вопрос), то я не уверен, что проверять.


Я выбираю ваш ответ как лучший, даже это не мое состояние, но оно может помочь другим. Кроме того, не могу найти лучшего ответа. ;)
Викрант Чаудхари

5

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


3

Команда lsof скажет вам, какие процессы удерживают файл открытым.


2

чтобы найти активные процессы / пользователи выполняют:

fuser -u / path / to / mount

затем выполните следующее, чтобы удалить их:

fuser -k / path / to / mount

наконец-то размонтировать нарушающее устройство.


Dangerous. Используйте -Mтакже.
Том Хейл,

1

Ларкс писал: «Такое поведение вы увидите, если подключите что-то еще в подкаталог ~ / hd. В этом случае ни fuser, ни lsof ничего не покажут».

Использование lsof с grep покажет использование подкаталога - например, «lsof | grep HD».

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


0

Вы пытались использовать синхронизацию ?

Команда sync очищает кеши файловой системы, заставляя записанные измененные блоки записываться на диск.


Синхронизация не требуется - umount будет очищать кеш по мере необходимости.
Кевин Панко

0

Если вы действительно хотите просто размонтировать его, вы можете использовать umount -f

от человека размонтировать :

-f     Force unmount (in case of an unreachable NFS system).  (Requires kernel 2.1.116 or later.)

Не работает, но это не твоя вина. Это вина Линуса. :-(
Петер - Восстановить Монику

0

Я не мог размонтировать, потому что у пользователя был открытый сеанс SMB. Стоит проверить.


1
Это больше похоже на комментарий, чем на 5-летний вопрос.
Ramhound

у меня не было представителя, и при этом я не буду с downvotes, но имеет ли значение возраст, когда у сообщения есть ~ 21k просмотров? Это то, куда Google привел меня сегодня и lsof | grep / mnt / disk решил мою проблему
FreeSoftwareServers

1
Да; это важно, потому что комментарии не являются ответами. Вы можете легко отредактировать свой ответ и сделать его ответом, но в настоящее время то, как он написан, больше похоже на комментарий. Ответ подробно описывает решение и конкретно отвечает на заданный вопрос. Если у вас нет репутации, чтобы оставлять комментарии в качестве ответа, вы не пишете комментарий.
Ramhound

Конечно, я хотел сделать это комментарием, но не мог, но вы ссылаетесь на тот факт, что ему 5 лет, как будто это важно.
Тогда я обновлю

1
Весь контент важен. Ваш ответ перенес этот вопрос на 1-ю страницу. Если вы хотите прокомментировать полезный подробный контент на вопросы, ответы на которые вы знаете, или задать подробные конкретные вопросы
Ramhound
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.