Как создать общую папку VMware: полное техническое руководство для гостевых систем Windows и Linux
Общая папка VMware — это каталог на стороне хоста, предоставляемый гостевой виртуальной машине через протокол HGFS (Host-Guest File System), реализованный посредством модулей ядра VMware Tools. Она функционирует как монтирование псевдофайловой системы, полностью минуя виртуальный диск, что обеспечивает прямой обмен файлами между хостовой и гостевой ОС без настройки сети, FTP или SCP-передач.
Данное руководство охватывает полный процесс настройки для VMware Workstation, VMware Player и VMware Fusion — включая установку VMware Tools, настройку общих папок, доступ к ним на стороне гостя в Windows и Linux, постоянное монтирование HGFS через `/etc/fstab`, а также устранение наиболее распространённых сбоев, которые обычно не описаны в документации.
Предварительные требования и обзор архитектуры
Перед изменением каких-либо настроек убедитесь в следующем:
- На хосте установлен VMware Workstation Pro/Player (v16+), VMware Fusion (хост на macOS) или VMware Workstation Pro 17.
- Существует рабочая виртуальная машина, которая успешно загружается.
- Внутри гостевой ОС установлен VMware Tools — это обязательное условие. Функция общих папок полностью зависит от модуля ядра `vmhgfs` (Linux) или драйвера VMCI/HGFS (Windows), устанавливаемых VMware Tools.
- Папка на хосте, которую вы планируете сделать общей, существует и имеет соответствующие права доступа для учётной записи пользователя, от имени которого запущен процесс VMware.
Почему важен HGFS: В отличие от сетевого ресурса (SMB/NFS), HGFS работает через канал обратной связи VMware. Здесь не задействован стек TCP/IP, не требуется настройка правил брандмауэра и разрешение DNS. Это делает его значительно быстрее для передачи небольших файлов и полностью изолированным от сетевой конфигурации гостя.
Шаг 1: Установка VMware Tools в гостевой ОС
VMware Tools — это предварительное требование, с отсутствием которого связано большинство неудачных настроек. Open-VM-Tools, эквивалент с открытым исходным кодом, поддерживаемый сообществом Linux, полностью поддерживается и предпочтителен в современных дистрибутивах Linux.
Установка VMware Tools в гостевой ОС Windows
- При запущенной виртуальной машине перейдите в меню VMware и выберите VM > Установить VMware Tools. Если пункт меню отображается как «Переустановить VMware Tools», выберите его — операция выполняется та же.
- VMware монтирует виртуальный ISO-образ (`windows.iso`) как привод CD-ROM внутри гостевой системы.
- Откройте Проводник, перейдите к смонтированному диску (обычно `D:`) и запустите `setup.exe`.
- Выберите Типичную установку, если у вас нет особых причин для настройки компонентов.
- Перезагрузите гостевую систему по запросу.
Установка VMware Tools в гостевой ОС Linux
В современных дистрибутивах следует использовать open-vm-tools из собственного менеджера пакетов, а не устаревший установщик на основе Perl:
“`bash
Debian / Ubuntu
sudo apt update && sudo apt install open-vm-tools open-vm-tools-desktop
RHEL / CentOS / AlmaLinux / Rocky Linux
sudo dnf install open-vm-tools
Arch Linux
sudo pacman -S open-vm-tools
“`
После установки включите и запустите службу:
“`bash
sudo systemctl enable vmtoolsd
sudo systemctl start vmtoolsd
“`
Важное замечание для гостевых Linux-систем без графического интерфейса/серверных: Устанавливайте только `open-vm-tools` (без суффикса `-desktop`), если в гостевой системе нет графической среды. Пакет `-desktop` добавляет интеграцию с X11, которая не нужна и потенциально проблематична на серверах.
Если вы используете устаревший метод установки VMware Tools через ISO на Linux:
“`bash
Mount the CD if not auto-mounted
sudo mount /dev/cdrom /mnt/cdrom
Copy and extract the tarball
cp /mnt/cdrom/VMwareTools-*.tar.gz /tmp/
cd /tmp && tar -xzf VMwareTools-*.tar.gz
Run the installer
cd vmware-tools-distrib
sudo ./vmware-install.pl
“`
Примите все значения по умолчанию, если у вас нет особых требований к конфигурации. После завершения перезагрузите систему.
Шаг 2: Включение общих папок в настройках VMware
Этот шаг выполняется на хост-машине через интерфейс VMware. Виртуальная машина не обязательно должна быть включена для первоначальной настройки, хотя в некоторых версиях VMware параметры можно изменять и во время работы виртуальной машины.
- В VMware Workstation/Player выберите целевую виртуальную машину на панели библиотеки.
- Нажмите Изменить параметры виртуальной машины (или нажмите `Ctrl+D`).
- Перейдите на вкладку Параметры (не на вкладку «Оборудование»).
- Выберите Общие папки в списке слева.
- В разделе «Общий доступ к папкам» выберите один из следующих вариантов:
| Параметр | Поведение | Рекомендуемый сценарий использования |
|---|
| — | — | — |
|---|
| **Отключено** | Общие папки не активны | Состояние по умолчанию, общий доступ не нужен |
|---|
| **Всегда включено** | Сохраняется при всех циклах включения/выключения | Среды разработки, регулярный обмен файлами |
|---|
| **Включено до следующего выключения или приостановки** | Временно, сбрасывается при выключении | Разовые передачи, тестовые сценарии |
|---|
Выберите Всегда включено для постоянного рабочего процесса разработки или эксплуатации.
- Нажмите Добавить, чтобы запустить мастер настройки общих папок.
Шаг 3: Настройка общей папки с помощью мастера
Мастер прост в использовании, однако содержит один параметр, который часто вызывает путаницу:
- Нажмите Далее на приветственном экране мастера.
- Нажмите Обзор, чтобы выбрать каталог на стороне хоста, который вы хотите предоставить гостевой системе. Путь также можно ввести вручную. Важно: путь должен быть доступен учётной записи ОС, от имени которой запущен VMware. Если VMware запущен от имени вашей учётной записи, папка должна быть доступна для чтения (и записи, если необходимо) этой учётной записью.
- Назовите общую папку. Это имя становится идентификатором точки монтирования внутри гостевой системы — оно не обязано совпадать с фактическим именем папки на хосте. Используйте короткие буквенно-цифровые имена без пробелов, чтобы избежать проблем с экранированием пути в терминалах Linux.
- Установите флажок Включить этот ресурс, чтобы активировать его немедленно.
- При необходимости установите флажок Только для чтения, если гостевая система не должна иметь доступа на запись в папку хоста. Это надёжная практика безопасности при совместном использовании исходного кода или файлов конфигурации с ненадёжными или экспериментальными виртуальными машинами.
- Нажмите Готово, затем ОК.
Шаг 4: Доступ к общей папке внутри гостевой ОС
Доступ к общим папкам в гостевой ОС Windows
- Загрузите виртуальную машину и войдите в систему.
- Откройте Проводник.
- На левой панели навигации нажмите Сеть. Вы увидите хост с именем `vmware-host`.
- Разверните `vmware-host` > Общие папки — здесь отобразится настроенная папка.
- Вы можете подключить её как постоянный сетевой диск: щёлкните папку правой кнопкой мыши, выберите Подключить сетевой диск и назначьте букву диска (например, `Z:`).
Кроме того, к ней можно получить доступ напрямую через UNC-путь в диалоговом окне «Выполнить» (`Win+R`):
“`
vmware-hostShared Foldersyour_folder_name
“`
Доступ к общим папкам в гостевой ОС Linux
По умолчанию VMware Tools монтирует общие папки в `/mnt/hgfs/`. Проверьте это сразу после загрузки:
“`bash
ls /mnt/hgfs/
“`
Если имя вашей общей папки отображается, перейдите в неё:
“`bash
cd /mnt/hgfs/your_folder_name
ls -la
“`
Если `/mnt/hgfs/` пуст или каталог не существует, файловая система HGFS не была смонтирована автоматически. Это распространённая проблема с более новыми ядрами и open-vm-tools. Используйте следующую команду для монтирования вручную:
“`bash
sudo mkdir -p /mnt/hgfs
sudo vmhgfs-fuse .host:/ /mnt/hgfs/ -o subtype=vmhgfs-fuse,allow_other
“`
Бинарный файл `vmhgfs-fuse` (входящий в состав open-vm-tools) заменяет устаревший подход на основе модуля ядра, используемый в старых версиях VMware Tools. Синтаксис `.host:/` монтирует все общие папки в `/mnt/hgfs/` одновременно.
Постоянное монтирование HGFS после перезагрузки (Linux)
Добавьте запись в `/etc/fstab`, чтобы общие папки монтировались автоматически при загрузке:
“`bash
sudo nano /etc/fstab
“`
Добавьте следующую строку:
“`
.host:/ /mnt/hgfs fuse.vmhgfs-fuse defaults,allow_other,uid=1000,gid=1000 0 0
“`
Замените `uid=1000` и `gid=1000` фактическими UID/GID вашей учётной записи (проверьте с помощью `id yourusername`). Установка этих значений гарантирует, что смонтированные файлы будут принадлежать вашему пользователю, а не root, что предотвращает ошибки прав доступа при редактировании файлов из гостевой системы.
Проверьте запись fstab без перезагрузки:
“`bash
sudo mount -a
“`
Шаг 5: Устранение распространённых сбоев общих папок
Следующие проблемы представляют собой наиболее частые сценарии сбоев, включая граничные случаи, которые стандартная документация обычно не рассматривает.
Общая папка не отображается в гостевой ОС Linux
Симптом: `/mnt/hgfs/` существует, но пуст после включения общих папок в настройках VMware.
Причина 1 — модуль vmhgfs не загружен:
“`bash
lsmod | grep vmhgfs
“`
Если вывод отсутствует, модуль не загрузился. Проверьте `dmesg` на наличие ошибок:
“`bash
dmesg | grep -i vmhgfs
“`
Причина 2 — несоответствие версии ядра: После обновления ядра модули ядра open-vm-tools могут не перекомпилироваться автоматически. Выполните переустановку:
“`bash
sudo apt reinstall open-vm-tools # Debian/Ubuntu
sudo dnf reinstall open-vm-tools # RHEL-based
“`
Причина 3 — vmtoolsd не запущен:
“`bash
sudo systemctl status vmtoolsd
sudo systemctl restart vmtoolsd
“`
Ошибки отказа в доступе к смонтированной папке HGFS
Симптом: Файлы видны, но их нельзя редактировать или создавать внутри общей папки из гостевой системы.
Основная причина: По умолчанию монтирование HGFS выполняется с правами root. Параметры FUSE `allow_other` и `uid`/`gid` решают эту проблему. При использовании устаревшего модуля ядра (не FUSE) добавьте пользователя в группу `vmware` или настройте ACL папки на хосте.
Общие папки недоступны для изменения в настройках VMware
Симптом: Параметр «Общие папки» присутствует, но недоступен для настройки.
Причина: Это происходит с VMware Player (бесплатная версия) при определённых конфигурациях хостовой ОС, или когда виртуальная машина настроена в ограниченном/зашифрованном режиме. Для полного управления общими папками в корпоративных развёртываниях требуется VMware Workstation Pro.
Общая папка недоступна после перехода хоста в режим сна/гибернации
Симптом: Монтирование HGFS становится устаревшим после выхода хоста из режима сна.
Решение: Выполните повторное монтирование вручную или добавьте службу systemd, которая выполняет повторное монтирование при возобновлении работы:
“`bash
sudo systemctl restart vmtoolsd
sudo vmhgfs-fuse .host:/ /mnt/hgfs/ -o subtype=vmhgfs-fuse,allow_other
“`
Низкая скорость передачи файлов через общие папки
Основная причина: HGFS не оптимизирован для передачи больших двоичных файлов. Для передачи файлов размером более 500 МБ рекомендуется использовать SCP, rsync через SSH с адаптером только для хоста или просто подключить дополнительный виртуальный диск. Общие папки лучше всего подходят для небольших файлов конфигурации, скриптов и исходного кода, а не для перемещения больших объёмов данных.
Шаг 6: Управление общими папками и их удаление
Управление общими папками является неразрушающим — удаление общей папки из настроек VMware не удаляет каталог на стороне хоста. Удаляется только сопоставление HGFS.
- Выключите виртуальную машину (или измените настройки в режиме реального времени, если версия VMware поддерживает горячее добавление).
- Откройте Изменить параметры виртуальной машины > Параметры > Общие папки.
- Выберите нужную запись папки.
- Нажмите Удалить, чтобы удалить сопоставление, или Свойства, чтобы изменить имя, путь или флаг «только для чтения».
- Снова включите виртуальную машину. Точка монтирования в гостевой системе будет пустой или отсутствующей при следующей загрузке.
Чтобы удалить устаревшую запись `/etc/fstab` в Linux после удаления общей папки, отредактируйте файл и удалите соответствующую строку `.host:/`, затем выполните `sudo mount -a` для проверки отсутствия ошибок.
Общие папки VMware в сравнении с альтернативными методами передачи файлов
Понимание того, когда использовать общие папки, а когда — другие механизмы, критически важно как для производственных, так и для разрабочих сред.
| Метод | Протокол | Требуется сеть | Производительность | Постоянный | Лучший сценарий использования |
|---|
| — | — | — | — | — | — |
|---|
| **Общие папки VMware (HGFS)** | HGFS (backdoor) | Нет | Средняя | Да (с fstab) | Файлы разработки, конфигурации, скрипты |
|---|
| **Сетевой ресурс SMB/CIFS** | SMB | Да (только хост/NAT) | Высокая | Да | Кроссплатформенные файловые серверы |
|---|
| **Монтирование NFS** | NFS | Да | Высокая | Да | Крупные передачи между Linux-системами |
|---|
| **SCP / SFTP** | SSH | Да | Средняя-высокая | Нет | Безопасные разовые передачи |
|---|
| **Перетаскивание (VMware Tools)** | HGFS | Нет | Низкая | Нет | Отдельные небольшие файлы |
|---|
| **Общий виртуальный диск** | SCSI/SATA | Нет | Очень высокая | Да | Большие двоичные файлы/базы данных |
|---|
| **rsync через SSH** | SSH | Да | Высокая | Поддаётся автоматизации | Инкрементальная синхронизация, резервные копии |
|---|
Для команд, управляющих виртуализированной инфраструктурой в масштабе, ограничения HGFS быстро становятся очевидными. Производственные нагрузки, требующие стабильного высокопроизводительного доступа к файлам между хостом и гостем, лучше обслуживаются специализированными решениями для хранения данных. Если вы запускаете несколько виртуальных машин для разработки, тестирования или CI/CD-конвейеров, среда VPS Хостинг с надлежащим образом выделенными томами хранилища полностью устраняет границу между хостом и гостем.
Соображения безопасности для общих папок VMware
Общие папки создают прямой файловый мост между хостом и гостем. Это имеет существенные последствия для безопасности:
- Риск побега из виртуальной машины: Скомпрометированная гостевая система с доступом на запись в общую папку может изменять файлы на стороне хоста. Всегда используйте режим только для чтения при совместном использовании папок с виртуальными машинами, запускающими ненадёжное программное обеспечение или общедоступные сервисы.
- Принцип наименьших привилегий: Предоставляйте доступ только к конкретному необходимому подкаталогу, но никогда ко всему домашнему каталогу или корню системы.
- Распространение вредоносного ПО: Программа-вымогатель, выполняющаяся внутри гостевой виртуальной машины, может зашифровать файлы в доступной для записи общей папке на хосте. Относитесь к общим папкам как к поверхности атаки.
- Согласованность снимков: Файлы, изменённые через HGFS, не фиксируются в снимках виртуальной машины. Если важна согласованность при откате, скопируйте файлы на виртуальный диск перед созданием снимка.
Для сред, где изоляция имеет первостепенное значение — таких как исследование безопасности, анализ вредоносного ПО или многопользовательский хостинг — рассмотрите использование Выделенного сервера с аппаратной изоляцией вместо рабочих процессов на основе общих папок.
Интеграция общих папок VMware в рабочие процессы разработки
Общие папки наиболее эффективны при интеграции в автоматизированные рабочие процессы:
Синхронизация файлов веб-проекта: Смонтируйте общую папку, указывающую на каталог проекта на стороне хоста, затем настройте веб-сервер гостевой системы (Apache/Nginx) для обслуживания непосредственно из `/mnt/hgfs/project/`. Правки, внесённые в IDE на хосте, мгновенно отражаются в гостевой системе без каких-либо шагов синхронизации.
Управление общей конфигурацией: Храните плейбуки Ansible, файлы состояния Terraform или определения Docker Compose на хосте и выполняйте их из гостевой системы. Это позволяет хранить файлы под контролем версий на хосте, используя при этом инструменты гостевой системы.
Сбор артефактов сборки: Настройте CI-скрипты внутри гостевой системы для записи скомпилированных двоичных файлов или отчётов о тестировании в каталог, смонтированный через HGFS, делая их немедленно доступными на хосте без SSH или копирования файлов.
Для команд, управляющих несколькими виртуальными средами с доступом через панель управления, VPS с cPanel предоставляет управляемую альтернативу, где управление файлами, права пользователей и конвейеры развёртывания обрабатываются через единый интерфейс без ручной настройки HGFS.
Если ваш рабочий процесс включает развёртывание веб-приложений из виртуальных машин разработки в производственную среду, сочетание локальной установки VMware с Общим веб-хостингом для промежуточных сред позволяет тестировать файловые структуры и права доступа перед переносом на производственные серверы.
Для развёртываний с SSL-защитой, где сертификаты необходимо распространять по средам, SSL-сертификаты от AlexHost можно получить и затем распространить на гостевые виртуальные машины через общие папки в ходе автоматизированных скриптов настройки.
Контрольный список технических решений
Используйте этот контрольный список перед настройкой общих папок VMware в любой среде:
- [ ] VMware Tools или open-vm-tools установлен и служба `vmtoolsd` запущена
- [ ] Путь к папке на стороне хоста не содержит пробелов или специальных символов (позволяет избежать ошибок экранирования пути в FUSE)
- [ ] Для папки на хосте установлены соответствующие права на чтение/запись для пользователя процесса VMware
- [ ] Для гостевых систем Linux: бинарный файл `vmhgfs-fuse` доступен (`which vmhgfs-fuse`)
- [ ] Для постоянных монтирований: запись `/etc/fstab` включает параметры `uid`/`gid` и `allow_other`
- [ ] Режим «только для чтения» включён для любой виртуальной машины, выполняющей ненадёжные или внешние рабочие нагрузки
- [ ] Передача больших файлов (>500 МБ) осуществляется через SCP/rsync, а не через HGFS
- [ ] Снимки создаются для состояния виртуального диска, а не используются для истории файлов на стороне HGFS
- [ ] После обновления ядра в гостевых системах Linux модули open-vm-tools проверяются или переустанавливаются
- [ ] Устаревшие записи `/etc/fstab` удаляются при удалении общих папок из настроек VMware
Часто задаваемые вопросы
Почему `/mnt/hgfs/` пуст, хотя общие папки включены в VMware?
Наиболее распространённая причина — демон `vmhgfs-fuse` не запущен или модуль ядра HGFS не загрузился после обновления ядра. Выполните `sudo systemctl restart vmtoolsd`, затем выполните монтирование вручную с помощью `sudo vmhgfs-fuse .host:/ /mnt/hgfs/ -o subtype=vmhgfs-fuse,allow_other`. Если это не помогает, проверьте `dmesg | grep vmhgfs` на наличие ошибок загрузки модуля и переустановите open-vm-tools.
Можно ли использовать общие папки VMware без установленных VMware Tools?
Нет. Протокол HGFS реализован исключительно в VMware Tools. Без него гостевая ОС не имеет драйвера, способного взаимодействовать с подсистемой общего доступа к файлам гипервизора VMware. Обходного пути не существует — установка VMware Tools обязательна.
В чём разница между `vmhgfs` и `vmhgfs-fuse`?
`vmhgfs` — это устаревший модуль ядра, используемый в старых версиях VMware Tools. `vmhgfs-fuse` — это замена на основе FUSE в пространстве пользователя, введённая в open-vm-tools 10.x, которая не требует компиляции модуля ядра и работает с различными версиями ядра без перекомпиляции. Современные дистрибутивы Linux используют исключительно `vmhgfs-fuse`.
Влияет ли включение общих папок на производительность виртуальной машины?
Канал HGFS добавляет незначительную нагрузку на CPU в периоды простоя. При интенсивном вводе-выводе — например, при компиляции больших кодовых баз непосредственно из монтирования HGFS — вы заметите увеличение задержки по сравнению с нативным вводом-выводом виртуального диска. Для операций с интенсивным вводом-выводом сначала скопируйте файлы на локальный виртуальный диск гостевой системы, выполните операцию, а затем скопируйте результаты обратно в общую папку.
Поддерживаются ли общие папки VMware в VMware ESXi или vSphere?
Нет. Общие папки через HGFS — это функция только VMware Workstation, Player и Fusion, то есть продуктов гипервизора для настольных компьютеров. VMware ESXi и vSphere не поддерживают общие папки на основе HGFS. В этих средах обмен файлами между хостом и гостем осуществляется через хранилища данных NFS, vSAN или сетевые протоколы (SMB/NFS), настроенные на уровне гостевой ОС.
