Linux EACCESВысокая

Как исправить ошибку 'Permission denied' в VirtualBox на Linux

Статья объясняет, почему в VirtualBox на Linux возникает ошибка 'Permission denied', и предлагает проверенные способы её исправить, включая добавление пользователя в группу vboxusers и настройку прав доступа.

Обновлено 16 февраля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 20.04+Debian 10+Fedora 34+Arch Linux

Что означает ошибка EACCES

Ошибка EACCES (Permission denied) в VirtualBox на Linux указывает на отсутствие прав доступа у текущего пользователя к необходимым ресурсам. Это системная ошибка Linux, которая возникает при попытке чтения, записи или выполнения операций без соответствующих разрешений. В контексте VirtualBox она обычно появляется при:

  • Запуске виртуальной машины через графический интерфейс или VBoxManage.
  • Попытке доступа к файлам виртуального диска (VDI, VMDK и др.).
  • Взаимодействии с устройством /dev/vboxdrv, которое управляет гипервизором.

Полный текст ошибки может варьироваться: VERR_ACCESS_DENIED, Could not open the medium или просто Permission denied. Проблема критична, так как полностью блокирует использование VirtualBox.

Причины возникновения

Ошибка Permission denied в VirtualBox на Linux возникает по следующим причинам:

  1. Пользователь не добавлен в группу vboxusers — основная причина. Группа vboxusers предоставляет доступ к устройству /dev/vboxdrv и другим ресурсам VirtualBox.
  2. Неправильные права на файлы виртуальных машин — если ВМ создана от имени root или другого пользователя, текущий пользователь не может к ним получить доступ.
  3. Блокировка SELinux или AppArmor — системы безопасности могут запрещать доступ VirtualBox к файлам или устройствам.
  4. Отсутствие или неправильные права на /dev/vboxdrv — устройство драйвера ядра может отсутствовать или принадлежать другой группе.
  5. Неполная установка VirtualBox — модули ядра (DKMS) не скомпилированы или не загружены.

Способ 1: Добавление пользователя в группу vboxusers

Это основное и наиболее частое решение. Группа vboxusers授予 доступ к гипервизору VirtualBox.

Шаги:

  1. Откройте терминал (Ctrl+Alt+T или через меню приложений).
  2. Проверьте текущие группы пользователя:
    groups
    
    Если в выводе нет vboxusers, переходите к следующему шагу.
  3. Добавьте пользователя в группу vboxusers:
    sudo usermod -aG vboxusers $USER
    
    Введите пароль администратора при запросе. Флаг -aG добавляет пользователя к группе без удаления из других групп.
  4. Примените изменения:
    • Вариант A (рекомендуется): Перезагрузите компьютер:
      sudo reboot
      
    • Вариант B: Если не хотите перезагружать, выполните:
      newgrp vboxusers
      
      Это применит группу к текущей сессии терминала. Для графического интерфейса всё равно потребуется перезагрузка или выход/вход в систему.
  5. Проверьте результат:
    groups
    
    В списке должен появиться vboxusers.
  6. Запустите VirtualBox — ошибка должна исчезнуть.

⚠️ Важно: После добавления в группу перезагрузка обязательна для графических приложений. Без неё VirtualBox может продолжать работать от старой сессии.

Способ 2: Исправление прав на файлы виртуальных машин

Если ВМ была создана от root (например, через sudo VirtualBox), её файлы принадлежат root, и обычный пользователь не может их читать.

Шаги:

  1. Найдите папку с виртуальными машинами. По умолчанию:
    • ~/VirtualBox VMs/ для пользовательских ВМ.
    • /var/lib/virtualbox/ для глобальных ВМ (если создавались от root).
  2. Определите владельца файлов:
    ls -la /path/to/vm/folder
    
    Если владелец root, измените его:
    sudo chown -R $USER:$USER /path/to/vm/folder
    
    Флаг -R рекурсивно применяет ко всем файлам и папкам.
  3. Проверьте права доступа:
    ls -ld /path/to/vm/folder
    
    Убедитесь, что у пользователя есть права на чтение/запись (например, drwxr-xr-x).
  4. Запустите VirtualBox — ВМ должна открываться без ошибок.

Способ 3: Настройка SELinux или AppArmor

На дистрибутивах с SELinux (Fedora, CentOS, RHEL) или AppArmor (Ubuntu, Debian) системы безопасности могут блокировать доступ VirtualBox.

Для SELinux:

  1. Проверьте статус SELinux:
    sestatus
    
    Если Enabled, временно отключите для теста:
    sudo setenforce 0
    
    Если ошибка исчезла, проблема в SELinux. Для постоянного решения настройте политики:
    sudo ausearch -m avc -ts recent | audit2allow -M virtualbox
    sudo semodule -i virtualbox.pp
    
    Или отключите SELinux (не рекомендуется):
    sudo nano /etc/selinux/config
    
    Измените SELINUX=enforcing на SELINUX=disabled, затем перезагрузите.

Для AppArmor:

  1. Проверьте профили AppArmor:
    sudo apparmor_status
    
    Если есть профиль для VirtualBox (/etc/apparmor.d/usr.bin.VirtualBox), отключите его:
    sudo aa-disable /usr/bin/VirtualBox
    
    Или перезагрузите, чтобы изменения вступили в силу.

Способ 4: Переустановка VirtualBox и модулей ядра

Если проблема связана с отсутствием или неправильной загрузкой модуля ядра vboxdrv.

Шаги:

  1. Убедитесь, что модуль загружен:
    lsmod | grep vbox
    
    Если вывод пуст, модуль не загружен.
  2. Переустановите пакет DKMS (для автоматической компиляции модулей):
    • Ubuntu/Debian:
      sudo apt-get update
      sudo apt-get install --reinstall virtualbox-dkms
      
    • Fedora:
      sudo dnf reinstall virtualbox
      
    • Arch Linux:
      sudo pacman -S virtualbox-host-modules-arch
      
  3. Скомпилируйте и загрузите модуль:
    sudo modprobe vboxdrv
    
    Если команда завершится с ошибкой, проверьте логи:
    sudo dmesg | grep vbox
    
  4. Проверьте права на /dev/vboxdrv:
    ls -l /dev/vboxdrv
    
    Должно быть: crw-rw---- 1 root vboxusers ... /dev/vboxdrv. Если группа не vboxusers, исправьте:
    sudo chown root:vboxusers /dev/vboxdrv
    sudo chmod 660 /dev/vboxdrv
    
  5. Перезагрузите систему и попробуйте запустить VirtualBox.

Профилактика

Чтобы избежать ошибки Permission denied в будущем:

  • При установке VirtualBox всегда добавляйте текущего пользователя в группу vboxusers (многие установщики делают это автоматически, но проверьте).
  • Не запускайте VirtualBox от root через sudo — это создаст файлы ВМ с владельцем root, что вызовет проблемы позже.
  • Регулярно обновляйте VirtualBox и модули ядра через менеджер пакетов вашего дистрибутива.
  • Для новых виртуальных машин убедитесь, что папка хранения принадлежит вашему пользователю (например, ~/VirtualBox VMs/).
  • При использовании внешних дисков или сетевых шап mounted, проверяйте права доступа к ним.

Эти шаги обеспечат стабильную работу VirtualBox на Linux без ошибок доступа.

Часто задаваемые вопросы

Почему в VirtualBox на Linux появляется ошибка 'Permission denied'?
Как добавить текущего пользователя в группу vboxusers?
Что делать, если ошибка 'Permission denied' остаётся после добавления в группу?
Можно ли запускать VirtualBox с sudo вместо добавления в группу?

Полезное

Проверьте принадлежность к группе vboxusers
Добавьте пользователя в группу vboxusers
Примените изменения группы
Запустите VirtualBox