Что означает ошибка EBUSY
Ошибка EBUSY (код 16) сообщает, что устройство или системный ресурс в данный момент занято и не может быть использовано. В Linux вы можете столкнуться с этим сообщением, когда пытаетесь смонтировать, демонтировать или удалить файл, к которому уже привязан другой процесс, или когда USB-накопитель не был безопасно извлечён.
Причины возникновения
- Процесс удерживает устройство открытым (например, смонтировано, используется).
- Попытка удалить файл, который открыт другим процессом.
- USB-устройство не было безопасно извлечено, и
udisks/udisksctlне завершил работу. - Раздел смонтирован с параметром
readonlyили активнымfsck. - Конфликт при одновременном монтировании/демонтировании устройства.
Способы решения
Способ 1: Использование fuser для выявления и завершения процесса
- Определите устройство, например
/dev/sdb. - Найдите PID, который блокирует его:
sudo fuser /dev/sdb
- Завершите процесс с помощью
fuser(одна команда):
sudo fuser -k /dev/sdb
⚠️ Важно:
fuser -kотправляет сигнал SIGKILL, поэтому используйте эту команду только для устройств, которые вы можете восстановить.
Способ 2: Ручное завершение процесса через lsof и kill
- Найдите PID процесса, держащего устройство открытым:
sudo lsof | grep /dev/sdb
- Завершите его:
sudo kill -9 PID
Способ 3: Перезагрузка системы (крайняя мера)
Если устройство заблокировано системным процессом, перезагрузка освободит его:
sudo reboot
Способ 4: Безопасное извлечение USB-носителя
- Отсоедините устройство физически.
- Используйте
udisksctlдля безопасного извлечения:
sudo udisksctl unmount -b /dev/sdb
sudo udisksctl eject -b /dev/sdb
💡 Совет: После извлечения подождите несколько секунд перед повторным подключением.
Профилактика
- Используйте
sudo umount /mntвместо принудительного завершения монтирования. - Извлекайте USB-носители только через меню системы или
udisksctl. - Регулярно проверяйте процессы, держащие устройства открытыми (
ps aux | grep mount). - Не выполняйте
fsckна активном разделе; отложите проверку до перезагрузки. - Обновляйте драйверы и ядро, чтобы избежать конфликтов с устройствами.