Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

ERR_DEV_RESOURCE_BUSY Linux / DevOps

Ошибка Device or resource busy в Linux: как найти блокирующий процесс через lsof

Обновлено: 27.08.2026 · Официальная документация ↗

Почему файл не удаляется?

При попытке удалить файл через rm или отмонтировать диск через umount /mnt/storage консоль возвращает ошибку Device or resource busy или Operation not permitted. Это происходит потому, что какой-то запущенный системный процесс держит открытый файловый дескриптор.

Симптомы блокировки

$ rm -rf /var/log/app.log
rm: cannot remove '/var/log/app.log': Device or resource busy

Поиск и освобождение заблокированного ресурса

  1. Ищем процесс, удерживающий конкретный файл, через lsof:
    sudo lsof /var/log/app.log

    Вы увидите имя программы (COMMAND) и её PID.

  2. Ищем все процессы, удерживающие целую точку монтирования/диск:
    sudo fuser -mv /mnt/storage
  3. Завершаем блокирующий процесс:
    # Мягкое завершение по PID:
    sudo kill -15 PID_ПРОЦЕССА
    
    # Принудительное закрытие всех процессов на точке монтирования:
    sudo fuser -kvm /mnt/storage
  4. Повторяем удаление или размонтирование:
    sudo rm -f /var/log/app.log
    sudo umount /mnt/storage

Если диск все равно не отмонтируется, используйте отложенное отключение: sudo umount -l /mnt/storage (Lazy unmount).

💡 Практика специалистов: Ситуация 'файл удален, но диск полон' часто происходит с логами Nginx. Всегда освобождайте дескриптор командой systemctl reload nginx после ручного rm.

Частые вопросы (FAQ)

Что делать, если lsof не выдает результатов?

Убедитесь, что запускаете команду с sudo, иначе lsof не видит процессы других пользователей.

Почему удаленный файл продолжает занимать место на диске?

Процесс все еще держит его открытым (статус deleted в lsof). Перезапустите службу, создавшую файл.

Что означает флаг -k в утилите fuser?

Флаг -k (kill) автоматически отправляет сигнал завершения всем процессам, использующим ресурс.

Что делать, если файл защищен атрибутом неизменяемости (immutable)?

Проверьте атрибуты: lsattr файл. Снимите блокировку: sudo chattr -i файл.

Полезные материалы
Рекомендуем