Создание общей папки между хостом и VirtualBox

Как сделать общую папку в virtualbox

Содержание статьи

Как сделать общую папку в virtualbox

Общая папка между хостом и виртуальной машиной VirtualBox решает проблему обмена файлами без использования сетевых протоколов или внешних носителей. Для корректной работы потребуется установить Guest Additions – набор драйверов и утилит, расширяющих функционал гостевой ОС. Версия Guest Additions должна соответствовать версии VirtualBox: например, для VirtualBox 7.0.12 необходим пакет с аналогичным номером. Установка выполняется через меню Устройства → Подключить образ диска дополнений гостевой ОС.

На хосте Windows общая папка настраивается через интерфейс VirtualBox: Настройки ВМ → Общие папки → Добавить. Укажите путь к локальной директории и задайте имя папки (например, shared_host). Для Linux-гостя потребуется монтирование вручную: sudo mount -t vboxsf shared_host /mnt/shared. Ошибка Protocol error при монтировании часто возникает из-за несовпадения версий Guest Additions или отсутствия прав пользователя в группе vboxsf.

В Linux-гостевых системах добавьте пользователя в группу vboxsf командой sudo usermod -aG vboxsf $USER, затем перезагрузите ВМ. Для автоматического монтирования при старте добавьте строку в /etc/fstab: shared_host /mnt/shared vboxsf defaults 0 0. На Windows-гостях папка появляется в сетевом окружении как сетевой диск, но для доступа может потребоваться перезапуск службы VirtualBox Guest Additions Service.

Если общая папка не отображается, проверьте лог-файлы VirtualBox (VBox.log) на наличие ошибок VERR_ACCESS_DENIED или VERR_NET_NO_NETWORK. В Windows-гостях также убедитесь, что служба VirtualBox Shared Folders запущена и работает в режиме Автоматически. Для macOS-хостов используйте путь в формате /Users/username/SharedFolder, избегая пробелов в именах директорий.

Подготовка виртуальной машины перед настройкой общего доступа

Подготовка виртуальной машины перед настройкой общего доступа

Перед созданием общей папки убедитесь, что гостевая ОС в VirtualBox поддерживает Guest Additions. Для Linux-дистрибутивов проверьте наличие заголовков ядра и компилятора GCC: выполните uname -r и установите соответствующие пакеты (например, для Ubuntu: sudo apt install build-essential dkms linux-headers-$(uname -r)). На Windows-гостях Guest Additions устанавливаются автоматически через образ ISO, но требуют прав администратора. Без этих компонентов обмен файлами работать не будет.

Обновите систему до актуальной версии, чтобы избежать конфликтов с драйверами VirtualBox. В Linux выполните sudo apt update && sudo apt upgrade -y (Debian/Ubuntu) или sudo dnf upgrade -y (Fedora/RHEL). Для Windows используйте sfc /scannow и DISM /Online /Cleanup-Image /RestoreHealth через PowerShell от имени администратора. Устаревшие пакеты или поврежденные системные файлы могут блокировать монтирование общих папок.

  • Отключите временно антивирус и брандмауэр на гостевой ОС – они часто блокируют сетевые операции VirtualBox (особенно на Windows).
  • Настройте сетевой адаптер в VirtualBox на режим NAT или Сетевой мост – общие папки требуют стабильного сетевого подключения.
  • Для Linux-гостей добавьте пользователя в группу vboxsf командой sudo usermod -aG vboxsf $USER – без этого доступа к папке не будет.
  • Перезагрузите виртуальную машину после всех изменений – некоторые настройки применяются только после рестарта.

Установка дополнений гостевой ОС в VirtualBox

Установка дополнений гостевой ОС в VirtualBox

Дополнения гостевой ОС (Guest Additions) – набор драйверов и утилит, расширяющих функциональность виртуальной машины: общие папки, улучшенная графика, синхронизация времени и буфер обмена. Установка выполняется через ISO-образ, монтируемый в виртуальный привод. Для Linux-дистрибутивов потребуются зависимости: build-essential, dkms, linux-headers-$(uname -r). В Windows процесс автоматизирован – достаточно запустить VBoxWindowsAdditions.exe из смонтированного диска. После установки перезагрузите гостевую ОС.

ОС Команда установки зависимостей Особенности
Ubuntu/Debian sudo apt install build-essential dkms linux-headers-$(uname -r) Требуется пересборка модулей ядра при обновлении системы
Fedora sudo dnf install gcc kernel-devel kernel-headers dkms make bzip2 perl Необходимо совпадение версий ядра и заголовков
Arch Linux sudo pacman -S linux-headers virtualbox-guest-utils Пакет virtualbox-guest-utils включает все необходимые компоненты

Монтирование ISO-образа выполняется через меню VirtualBox: Устройства → Подключить образ диска Дополнений гостевой ОС. В Linux запустите sudo sh ./VBoxLinuxAdditions.run из корня смонтированного диска. При ошибках проверьте логи (/var/log/vboxadd-install.log) и наличие свободного места в /tmp. Для Windows 10/11 отключите Secure Boot в UEFI, если установщик завершается с ошибкой подписи драйверов.

Создание папки на хостовой системе для совместного использования

Для Windows отключите контроль учетных записей (UAC) на время настройки или добавьте пользователя виртуальной машины в группу с правами на запись. В Linux проверьте принадлежность папки к группе vboxsf командой sudo usermod -aG vboxsf $USER – это необходимо для доступа из гостевой системы без прав root. На macOS убедитесь, что папка не находится в защищённой системной директории, например, /System.

Если планируется работа с большими файлами (более 4 ГБ), форматируйте раздел хоста в NTFS (Windows) или ext4 (Linux) – FAT32 не поддерживает такие объёмы. На macOS используйте APFS или HFS+. Избегайте размещения общей папки на сетевых дисках или съёмных носителях – это может вызвать задержки при синхронизации.

Перед настройкой в VirtualBox закройте все программы, использующие папку, и временно отключите антивирусное ПО. На хосте Linux выполните sudo systemctl restart vboxdrv для обновления драйверов VirtualBox, если папка создаётся после установки гостевой ОС. Для Windows проверьте, что служба VirtualBox Guest Additions запущена в гостевой системе – без неё общий доступ работать не будет.

Настройка параметров общей папки в VirtualBox

Общие папки в VirtualBox позволяют обмениваться файлами между хостом и гостевой ОС без использования сетевых протоколов. Для их работы требуется установка Guest Additions – набора драйверов и утилит, специфичных для гостевой системы. Без них функциональность будет недоступна, а попытки монтирования завершатся ошибкой VERR_ACCESS_DENIED.

Настройка начинается с выбора виртуальной машины в VirtualBox Manager. Перейдите в Настройки → Общие папки. Здесь отображаются все ранее добавленные ресурсы. Чтобы добавить новую папку, нажмите кнопку с иконкой папки и плюсом. Укажите путь к директории на хосте и задайте имя папки в гостевой системе – оно будет использоваться для монтирования.

Ключевые параметры при создании общей папки:

  • Только для чтения – запрещает гостевой ОС запись в папку, полезно для защиты данных от случайного изменения.
  • Авто-подключение – папка монтируется автоматически при старте виртуальной машины, без ручного вмешательства.
  • Создать постоянную папку – сохраняет настройки после перезагрузки хоста, иначе потребуется повторное добавление.

После добавления папки в VirtualBox её необходимо смонтировать в гостевой ОС. В Linux-системах используйте команду:

sudo mount -t vboxsf <имя_папки> <путь_к_точке_монтирования>

Например, для папки с именем shared и точкой монтирования /mnt/shared:

sudo mount -t vboxsf shared /mnt/shared

Если команда завершается ошибкой Protocol error, убедитесь, что Guest Additions установлены корректно и версия совпадает с версией VirtualBox.

В Windows-системах общие папки появляются в сетевом окружении как сетевые диски. Их можно найти по пути \\VBOXSVR\<имя_папки> или через проводник в разделе Сеть. Для автоматического подключения при старте добавьте папку в автозагрузку через ярлык или скрипт:

net use Z: \\VBOXSVR\shared

Где Z: – буква диска, а shared – имя общей папки.

Проблемы с доступом часто связаны с правами пользователя. В Linux добавьте текущего пользователя в группу vboxsf:

sudo usermod -aG vboxsf $USER

После этого перезагрузите гостевую систему. В Windows проверьте, что учётная запись имеет права на запись в папку на хосте – VirtualBox использует учётные данные текущего пользователя хоста.

Для динамического изменения содержимого общей папки без перезагрузки используйте параметр -o remount в Linux:

sudo mount -t vboxsf -o remount shared /mnt/shared

В Windows достаточно обновить содержимое папки в проводнике. Если изменения не отображаются, проверьте настройки кэширования в VirtualBox – в некоторых случаях помогает отключение опции Использовать кэш хоста в настройках виртуального диска.

При работе с большими файлами (>4 ГБ) убедитесь, что файловая система хоста поддерживает их. Для NTFS на Windows или ext4 на Linux ограничений нет, но FAT32 не подойдёт – VirtualBox выдаст ошибку VERR_INVALID_PARAMETER. Также избегайте использования символов /\:*?"<>| в именах файлов – они могут вызвать проблемы при синхронизации.

Монтирование общей папки в гостевой операционной системе

Монтирование общей папки в гостевой операционной системе

Проблемы с доступом часто решаются проверкой прав: в Linux убедитесь, что пользователь добавлен в группу vboxsf (sudo usermod -aG vboxsf $USER), а в Windows – что гостевые дополнения установлены корректно (переустановите их через меню VirtualBox). Если папка не монтируется, выполните dmesg | grep vboxsf для диагностики ошибок ядра. Для временного монтирования в Linux используйте флаг -o rw для записи, а в Windows – отключите UAC или запустите VirtualBox от имени администратора.

Проверка прав доступа и разрешения на запись в общей папке

В Linux добавьте текущего пользователя в группу vboxsf командой sudo usermod -aG vboxsf $USER, затем перезагрузите систему или выполните newgrp vboxsf для применения изменений без перезагрузки. Если после этого запись всё равно недоступна, проверьте монтирование папки: mount | grep vboxsf должен показать строку с параметром rw (read-write). При отсутствии – перемонтируйте с явным указанием прав: sudo mount -t vboxsf -o rw,uid=1000,gid=1000 ИмяПапки /media/sf_ИмяПапки, где uid и gid – идентификаторы вашего пользователя.

Устранение ошибок при подключении общей папки

Ошибка «Protocol error» при монтировании общей папки в VirtualBox чаще всего возникает из-за несовпадения версий Guest Additions на хосте и в гостевой ОС. Проверьте версии через VBoxManage --version на хосте и modinfo vboxguest в гостевой системе. Если они отличаются, обновите Guest Additions в виртуальной машине до версии, соответствующей хосту. Для Linux-систем также убедитесь, что модули ядра загружены: sudo modprobe vboxsf. В Windows гостевых системах переустановите драйверы через «Устройства» → «Установить драйверы Guest Additions».

Если папка не отображается после монтирования, проверьте права доступа. В Linux добавьте пользователя в группу vboxsf: sudo usermod -aG vboxsf $USER, затем перезагрузите систему. Для Windows убедитесь, что в настройках общей папки снят флажок «Только для чтения» и указан корректный путь без пробелов или кириллицы. При ошибке «Shared folder cannot be mounted» в логах (dmesg | grep vboxsf) проверьте, что путь на хосте существует и доступен для чтения/записи. В VirtualBox 7.x и новее используйте синтаксис монтирования с указанием UID/GID: sudo mount -t vboxsf -o uid=1000,gid=1000 SharedFolder /mnt/share.

Автоматическое монтирование общей папки при запуске виртуальной машины

Автоматическое монтирование общей папки при запуске виртуальной машины

Чтобы общая папка монтировалась автоматически при старте виртуальной машины (ВМ) в VirtualBox, используйте механизм автозагрузки гостевой ОС. В Linux-системах добавьте запись в файл /etc/fstab, указав параметры монтирования. Пример строки для Ubuntu/Debian:

shared_folder /mnt/shared vboxsf uid=1000,gid=1000,dmode=775,fmode=664 0 0

Здесь shared_folder – имя общей папки, заданное в настройках VirtualBox, /mnt/shared – точка монтирования, а uid и gid соответствуют идентификаторам пользователя в гостевой системе. Проверьте их командой id -u и id -g.

Для Windows-систем автоматическое монтирование настраивается через реестр. Откройте редактор реестра (regedit) и перейдите к разделу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VBoxSF\Parameters. Создайте строковый параметр MountDir с путем к точке монтирования, например C:\Shared. Перезагрузите ВМ для применения изменений.

Если общая папка не монтируется автоматически, проверьте установку дополнений гостевой ОС (VirtualBox Guest Additions). Версия дополнений должна соответствовать версии VirtualBox. Обновите их через меню Устройства → Подключить образ диска дополнений гостевой ОС и выполните установку в гостевой системе.

В Linux для диагностики проблем с монтированием используйте команду dmesg | grep vboxsf. Она выведет ошибки, связанные с модулем ядра vboxsf. Если модуль не загружен, выполните sudo modprobe vboxsf. Для постоянной загрузки добавьте vboxsf в файл /etc/modules.

В Windows проверьте наличие службы VirtualBox Guest Additions Service в списке служб (services.msc). Если она не запущена, измените тип запуска на Автоматически и перезапустите службу. Без работающей службы автоматическое монтирование работать не будет.

Для систем с systemd (большинство современных дистрибутивов Linux) создайте юнит-файл монтирования. Пример для папки /mnt/shared:

[Unit]
Description=Mount VirtualBox Shared Folder
After=vboxadd-service.service

[Mount]
What=shared_folder
Where=/mnt/shared
Type=vboxsf
Options=uid=1000,gid=1000,dmode=775,fmode=664

[Install]
WantedBy=multi-user.target

Сохраните файл как /etc/systemd/system/mnt-shared.mount, затем выполните sudo systemctl enable mnt-shared.mount и sudo systemctl start mnt-shared.mount.

В macOS автоматическое монтирование настраивается через launchd. Создайте plist-файл в /Library/LaunchDaemons/com.virtualbox.sharedfolder.plist с содержимым:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.virtualbox.sharedfolder</string>
<key>ProgramArguments</key>
<array>
<string>/sbin/mount_vboxsf</string>
<string>shared_folder</string>
<string>/Users/username/Shared</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>

Замените username на имя пользователя и выполните sudo launchctl load /Library/LaunchDaemons/com.virtualbox.sharedfolder.plist.

Для проверки автоматического монтирования перезагрузите ВМ и убедитесь, что папка доступна без ручного вмешательства. Если возникают ошибки, проанализируйте логи системы: в Linux – journalctl -xe, в Windows – Просмотр событий (eventvwr.msc). Убедитесь, что имя общей папки в настройках VirtualBox совпадает с указанным в конфигурационных файлах.

Вопрос-ответ:

Ссылка на основную публикацию