Як створити спільну папку 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
- Коли VM увімкнена, перейдіть до VM > Install VMware Tools у рядку меню VMware. Якщо опція відображається як «Reinstall 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, яка є зайвою і потенційно проблематичною на серверах.
Якщо ви використовуєте застарілий метод ISO VMware Tools на 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. VM не обов’язково має бути увімкнена для початкового налаштування, хоча в деяких версіях VMware можна також змінювати налаштування під час роботи VM.
- У VMware Workstation/Player виберіть цільову віртуальну машину з панелі бібліотеки.
- Натисніть Edit virtual machine settings (або натисніть `Ctrl+D`).
- Перейдіть на вкладку Options (не на вкладку Hardware).
- Виберіть Shared Folders зі списку ліворуч.
- У розділі «Folder sharing» виберіть один із наступних варіантів:
| Налаштування | Поведінка | Рекомендований випадок використання |
|---|
| — | — | — |
|---|
| **Disabled** | Спільні папки неактивні | Стан за замовчуванням, спільний доступ не потрібен |
|---|
| **Always enabled** | Зберігається після всіх циклів живлення | Середовища розробки, регулярний обмін файлами |
|---|
| **Enabled until next power off or suspend** | Тимчасово, скидається при вимкненні | Одноразові передачі, тестові сценарії |
|---|
Виберіть Always enabled для постійного робочого процесу розробки або операцій.
- Натисніть Add, щоб запустити майстер спільних папок.
Крок 3: Налаштування спільної папки через майстер
Майстер простий у використанні, але містить одну опцію, яка часто викликає плутанину:
- Натисніть Next на екрані привітання майстра.
- Натисніть Browse, щоб вибрати директорію на стороні хоста, яку ви хочете надати гостю. Ви також можете ввести шлях безпосередньо. Важливо: Шлях має бути доступним для облікового запису ОС, від імені якого запущено VMware. Якщо VMware запущено від імені вашого облікового запису, папка має бути доступна для читання (і запису, якщо потрібно) цим обліковим записом.
- Назвіть спільну папку. Ця назва стає ідентифікатором точки монтування всередині гостя — вона не обов’язково має збігатися з фактичною назвою папки на хості. Використовуйте короткі буквено-цифрові назви без пробілів, щоб уникнути проблем з екрануванням шляхів у терміналах Linux.
- Встановіть прапорець Enable this share, щоб активувати його негайно.
- За бажанням встановіть прапорець Read-only, якщо гість не повинен мати доступу на запис до папки хоста. Це є надійною практикою безпеки при спільному використанні вихідного коду або файлів конфігурації з ненадійними або експериментальними VM.
- Натисніть Finish, потім OK.
Крок 4: Доступ до спільної папки всередині гостьової ОС
Доступ до спільних папок на гостьовій системі Windows
- Завантажте VM і увійдіть у систему.
- Відкрийте Провідник файлів.
- На лівій панелі навігації натисніть Мережа. Ви побачите хост з іменем `vmware-host`.
- Розгорніть `vmware-host` > Shared Folders — тут з’явиться ваша налаштована папка.
- Ви можете підключити її як постійний мережевий диск: клацніть папку правою кнопкою миші, виберіть Map network drive і призначте літеру диска (наприклад, `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
Симптом: Опція Shared Folders присутня, але недоступна для налаштування.
Причина: Це відбувається з VMware Player (безкоштовна версія) у певних конфігураціях хостової ОС, або коли VM налаштована в обмеженому/зашифрованому режимі. Для повного управління спільними папками в корпоративних розгортаннях потрібен 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.
- Вимкніть VM (або налаштуйте параметри в реальному часі, якщо версія VMware підтримує гаряче додавання).
- Відкрийте Edit virtual machine settings > Options > Shared Folders.
- Виберіть цільовий запис папки.
- Натисніть Remove, щоб видалити відображення, або Properties, щоб змінити назву, шлях або прапорець лише для читання.
- Знову увімкніть VM. Точка монтування в гостьовій системі буде порожньою або відсутньою при наступному завантаженні.
Щоб видалити застарілий запис `/etc/fstab` у Linux після видалення спільної папки, відредагуйте файл і видаліть відповідний рядок `.host:/`, потім виконайте `sudo mount -a` для перевірки відсутності помилок.
Спільні папки VMware порівняно з альтернативними методами передачі файлів
Розуміння того, коли використовувати спільні папки, а коли інші механізми, є критично важливим як для виробничих, так і для розробницьких середовищ.
| Метод | Протокол | Потрібна мережа | Продуктивність | Постійний | Найкращий випадок використання |
|---|
| — | — | — | — | — | — |
|---|
| **VMware Shared Folders (HGFS)** | HGFS (backdoor) | Ні | Середня | Так (з fstab) | Файли розробки, конфіги, скрипти |
|---|
| **SMB/CIFS Network Share** | SMB | Так (host-only/NAT) | Висока | Так | Міжплатформні файлові сервери |
|---|
| **NFS Mount** | NFS | Так | Висока | Так | Великі передачі Linux-Linux |
|---|
| **SCP / SFTP** | SSH | Так | Середня-Висока | Ні | Безпечні одноразові передачі |
|---|
| **Drag-and-Drop (VMware Tools)** | HGFS | Ні | Низька | Ні | Окремі невеликі файли |
|---|
| **Shared Virtual Disk** | SCSI/SATA | Ні | Дуже висока | Так | Великі бінарні/файли баз даних |
|---|
| **rsync over SSH** | SSH | Так | Висока | Скриптована | Інкрементальна синхронізація, резервні копії |
|---|
Для команд, що керують віртуалізованою інфраструктурою у великому масштабі, обмеження HGFS стають очевидними досить швидко. Виробничі навантаження, що вимагають стабільного високопродуктивного доступу до файлів між хостом і гостем, краще обслуговуються спеціалізованими рішеннями для зберігання даних. Якщо ви запускаєте кілька VM для розробки, тестування або CI/CD-конвеєрів, середовище VPS Хостинг з належно виділеними томами зберігання повністю усуває межу між хостом і гостем.
Міркування безпеки для спільних папок VMware
Спільні папки створюють прямий файловий міст між хостом і гостем. Це має суттєві наслідки для безпеки:
- Ризик виходу з VM: Скомпрометований гість із доступом на запис до спільної папки може змінювати файли на стороні хоста. Завжди використовуйте режим лише для читання при спільному використанні папок з VM, що запускають ненадійне програмне забезпечення або загальнодоступні сервіси.
- Принцип найменших привілеїв: Надавайте спільний доступ лише до конкретної піддиректорії, яка потрібна, ніколи до всієї домашньої директорії або кореня системи.
- Поширення шкідливого програмного забезпечення: Програми-вимагачі, що виконуються всередині гостьової VM, можуть зашифрувати файли у доступній для запису спільній папці на хості. Ставтеся до спільних папок як до поверхні атаки.
- Узгодженість знімків: Файли, змінені через HGFS, не захоплюються у знімках VM. Якщо важлива узгодженість відкату, скопіюйте файли на віртуальний диск перед створенням знімка.
Для середовищ, де ізоляція є першочерговою — наприклад, дослідження безпеки, аналіз шкідливого програмного забезпечення або багатоорендний хостинг — розгляньте використання Виділеного сервера з апаратною ізоляцією замість робочих процесів на основі спільних папок.
Інтеграція спільних папок VMware у робочі процеси розробки
Спільні папки найбільш ефективні при інтеграції в автоматизовані робочі процеси:
Синхронізація файлів веб-проекту: Змонтуйте спільну папку, що вказує на директорію проекту на стороні хоста, потім налаштуйте веб-сервер гостя (Apache/Nginx) для обслуговування безпосередньо з `/mnt/hgfs/project/`. Зміни, внесені у вашому IDE на хості, миттєво відображаються в гостьовій системі без будь-яких кроків синхронізації.
Спільне управління конфігурацією: Зберігайте плейбуки Ansible, файли стану Terraform або визначення Docker Compose на хості та виконуйте їх з гостьової системи. Це зберігає файли під контролем версій на хості, використовуючи при цьому інструменти на стороні гостя.
Збір артефактів збірки: Налаштуйте CI-скрипти всередині гостьової системи для запису скомпільованих бінарних файлів або звітів про тести до директорії, змонтованої через HGFS, роблячи їх одразу доступними на хості без кроків SSH або копіювання файлів.
Для команд, що керують кількома віртуальними середовищами з доступом до панелі керування, VPS з cPanel надає керовану альтернативу, де управління файлами, дозволи користувачів і конвеєри розгортання обробляються через єдиний інтерфейс без ручного налаштування HGFS.
Якщо ваш робочий процес передбачає розгортання веб-додатків з розробницьких VM у виробництво, поєднання локального налаштування VMware з Спільним веб-хостингом для проміжних середовищ дозволяє тестувати структури файлів і дозволи перед відправкою на виробничі сервери.
Для розгортань із захистом SSL, де сертифікати потрібно розповсюджувати між середовищами, SSL Сертифікати від AlexHost можна отримати, а потім розповсюдити на гостьові VM через спільні папки під час автоматизованих скриптів налаштування.
Контрольний список технічних рішень
Використовуйте цей контрольний список перед налаштуванням спільних папок VMware в будь-якому середовищі:
- [ ] VMware Tools або open-vm-tools встановлено та служба `vmtoolsd` запущена
- [ ] Шлях до папки на стороні хоста не містить пробілів або спеціальних символів (уникає помилок екранування шляхів FUSE)
- [ ] Відповідні дозволи на читання/запис встановлено для папки хоста для користувача процесу VMware
- [ ] Для гостьових систем Linux: бінарний файл `vmhgfs-fuse` доступний (`which vmhgfs-fuse`)
- [ ] Для постійних монтувань: запис `/etc/fstab` включає параметри `uid`/`gid` та `allow_other`
- [ ] Режим лише для читання увімкнено для будь-якої VM, що виконує ненадійні або зовнішньо доступні навантаження
- [ ] Передача великих файлів (>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`.
Чи впливає увімкнення спільних папок на продуктивність VM?
Канал HGFS додає незначне навантаження на CPU в неактивні періоди. При інтенсивному введенні-виведенні — наприклад, компіляції великих кодових баз безпосередньо з монтування HGFS — ви помітите збільшення затримки порівняно з рідним введенням-виведенням віртуального диска. Для операцій з інтенсивним введенням-виведенням спочатку скопіюйте файли на локальний віртуальний диск гостя, виконайте операцію, а потім скопіюйте результати назад до спільної папки.
Чи підтримуються спільні папки VMware у VMware ESXi або vSphere?
Ні. Спільні папки через HGFS є функцією лише VMware Workstation, Player та Fusion — продуктів гіпервізора для настільних комп’ютерів. VMware ESXi та vSphere не підтримують спільні папки на основі HGFS. У цих середовищах спільний доступ до файлів між хостом і гостем здійснюється через сховища даних NFS, vSAN або мережеві протоколи (SMB/NFS), налаштовані на рівні гостьової ОС.
