Способы оплаты Abuse

Ошибка device or resource busy

29.01.2024, 22:39

Нередко во время работы с флешками, дисками, образами появляется ошибка device or resource busy. Она может выводится, когда вы пытаетесь отмонтировать внешний диск, раздел, а также при попытке переместить или удалить файл. В этой статье поговорим, почему может возникать данная ошибка, а также пути её устранения.

Почему появляется ошибка device or resource busy

В переводе с английского на русский язык сообщение означает, что устройство или ресурс занято. Если объяснять более подробно - файл, который вы пытаетесь удалить или диск, который нужно отмонтировать, ещё используется одной из запущенных программ. Это могло произойти потому, что программа ещё не завершила свою работу, зависла, возникли какие-либо проблемы в процессе её работы.

Ошибка может возникнуть при попытке выполнить операцию с файлом, который уже используется другим процессом или программой. Часто проблема связана с открытым файлом, заблокированным устройством, сетевым соединением. В случае с флешкой вы можете просто вынуть её из ПК, но это не решение, потому что высока вероятность потерять не сохранённые данные. Есть пути обхода этой проблемы.

Как исправить device or resource busy?

Первое - закрыть программы, которые могут использовать этот файл или один из файлов на съёмном носителе. Если воспроизводится один из видеофайлов, то проигрыватель надо закрыть. И только поле этого пробовать ещё раз выполнять операции.

Если вы не знаете какая программа мешает вам выполнить операцию, то это можно очень просто узнать с помощью команды lsof. Просто выполните её и отсейте только те записи, которые относятся к точке монтирования вашего носителя:

lsof | grep /media/sergiy/83AE-2346

Также можно отсеять нужные процессы в самой утилите, используйте опцию +D, так даже лучше, потому что она не будет показывать системные службы, а отобразит только программу, которую надо завершить:

lsof +D /media/sergiy/83AE-2346

Так вы увидите все процессы, которые используют файлы на нашем носителе, и завершить их с помощью команды kill. В нашем случае надо завершить плеер totem с PID 5616:

$ kill -TERM 5616

Как посмотреть, какие процессы используют файл? Используйте команду fuser:

fuser -vm /home/sergiy/83AE-2346

Вы увидите всю необходимую информацию: будет отображаться пользователь, от имени которого запущен процесс. Точно так же можно его завершить:

Если вы закрыли все программы, но это не помогло, можно попытаться очистить файловый кэш системы с помощью такой команды:

sync && echo 2 > /proc/sys/vm/drop_caches

На этом всё.