Как да създадете споделена папка във VMware: Пълно техническо ръководство за Windows и Linux гости
Споделената папка на VMware е директория от страна на хоста, която се предоставя на гост виртуална машина чрез протокола HGFS (Host-Guest File System), реализиран чрез ядрени модули на VMware Tools. Тя функционира като монтиране на псевдофайлова система, която заобикаля изцяло виртуалния диск, позволявайки директен обмен на файлове между хост OS и гост OS без мрежова конфигурация, 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 е инсталиран вътре в гост OS — това е задължително. Функцията за споделени папки е изцяло зависима от ядрения модул `vmhgfs` (Linux) или драйвера VMCI/HGFS (Windows), който VMware Tools инсталира.
- Папката на хоста, която възнамерявате да споделите, съществува и има подходящи разрешения на файловата система за потребителския акаунт, изпълняващ процеса на VMware.
Защо HGFS е важен: За разлика от мрежово споделяне (SMB/NFS), HGFS работи чрез комуникационния канал на VMware backdoor. Не е включен TCP/IP стек, няма правила за защитна стена за конфигуриране и не се изисква DNS резолюция. Това го прави значително по-бърз за малки прехвърляния на файлове и напълно изолиран от мрежовата конфигурация на госта.
Стъпка 1: Инсталиране на VMware Tools на гост OS
VMware Tools е предпоставката, до която се свеждат повечето неуспешни настройки. Open-VM-Tools, еквивалентът с отворен код, поддържан от Linux общността, е напълно поддържан и предпочитан при съвременните Linux дистрибуции.
Инсталиране на VMware Tools на Windows гост
- С включена VM, навигирайте до VM > Инсталиране на VMware Tools в лентата с менюта на VMware. Ако опцията гласи „Преинсталиране на VMware Tools”, изберете я — тя извършва същата операция.
- VMware монтира виртуален ISO (`windows.iso`) като CD-ROM устройство вътре в госта.
- Отворете File Explorer, навигирайте до монтираното устройство (обикновено `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. VM не трябва да е включена за първоначална конфигурация, въпреки че можете да коригирате настройките, докато VM работи в някои версии на VMware.
- В VMware Workstation/Player изберете целевата виртуална машина от панела на библиотеката.
- Кликнете Редактиране на настройките на виртуалната машина (или натиснете `Ctrl+D`).
- Навигирайте до раздела Опции (не раздела Хардуер).
- Изберете Споделени папки от списъка вляво.
- В секцията „Споделяне на папки” изберете едно от следните:
| Настройка | Поведение | Препоръчителен случай на употреба |
|---|
| — | — | — |
|---|
| **Деактивирано** | Няма активни споделени папки | Състояние по подразбиране, не е необходимо споделяне |
|---|
| **Винаги активирано** | Запазва се при всички цикли на захранване | Среди за разработка, редовен обмен на файлове |
|---|
| **Активирано до следващото изключване или спиране** | Временно, нулира се при изключване | Еднократни прехвърляния, тестови сценарии |
|---|
Изберете Винаги активирано за постоянен работен процес за разработка или операции.
- Кликнете Добавяне, за да стартирате съветника за споделени папки.
Стъпка 3: Конфигуриране на споделената папка чрез съветника
Съветникът е лесен за използване, но съдържа една опция, която често предизвиква объркване:
- Кликнете Напред на началния екран на съветника.
- Кликнете Преглед, за да изберете директорията от страна на хоста, която искате да предоставите на госта. Можете също да въведете пътя директно. Важно: Пътят трябва да е достъпен за потребителския акаунт на OS, под който работи VMware. Ако VMware работи под вашия потребителски акаунт, папката трябва да е четима (и записваема, ако е необходимо) от този акаунт.
- Именувайте споделената папка. Това име се превръща в идентификатора на точката на монтиране вътре в госта — не е необходимо да съответства на действителното име на папката на хоста. Използвайте кратки, буквено-цифрови имена без интервали, за да избегнете проблеми с екраниране на пътища в Linux терминали.
- Отметнете Активиране на това споделяне, за да го активирате незабавно.
- По желание отметнете Само за четене, ако гостът не трябва да има достъп за запис до папката на хоста. Това е добра практика за сигурност при споделяне на изходен код или конфигурационни файлове с ненадеждни или експериментални VM.
- Кликнете Завършване, след това OK.
Стъпка 4: Достъп до споделената папка вътре в гост OS
Достъп до споделени папки на Windows гост
- Стартирайте VM и влезте в системата.
- Отворете File Explorer.
- В левия навигационен панел кликнете Мрежа. Ще видите хост с име `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 (безплатна версия) при определени конфигурации на хост OS, или когато 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 MB, помислете за използване на SCP, rsync по SSH към мрежов адаптер само за хост, или просто прикачете допълнителен виртуален диск. Споделените папки се отличават при малки конфигурационни файлове, скриптове и изходен код — не при масово движение на данни.
Стъпка 6: Управление и премахване на споделени папки
Управлението на споделени папки е неразрушително — премахването на споделена папка от настройките на VMware не изтрива директорията от страна на хоста. То само премахва HGFS映射ването.
- Изключете VM (или коригирайте настройките на живо, ако версията на VMware поддържа hot-add).
- Отворете Редактиране на настройките на виртуалната машина > Опции > Споделени папки.
- Изберете целевия запис на папката.
- Кликнете Премахване, за да изтриете映射ването, или Свойства, за да промените името, пътя или флага само за четене.
- Включете VM отново. Точката на монтиране в госта ще бъде празна или отсъстваща при следващото стартиране.
За да премахнете остарял запис `/etc/fstab` на Linux след премахване на споделената папка, редактирайте файла и изтрийте съответния ред `.host:/`, след което стартирайте `sudo mount -a`, за да проверите за грешки.
Споделени папки на VMware срещу алтернативни методи за прехвърляне на файлове
Разбирането кога да използвате споделени папки спрямо други механизми е от решаващо значение за производствени и разработчески среди.
| Метод | Протокол | Необходима мрежа | Производителност | Постоянен | Най-добър случай на употреба |
|---|
| — | — | — | — | — | — |
|---|
| **Споделени папки на VMware (HGFS)** | HGFS (backdoor) | Не | Средна | Да (с fstab) | Файлове за разработка, конфигурации, скриптове |
|---|
| **SMB/CIFS мрежово споделяне** | SMB | Да (само хост/NAT) | Висока | Да | Файлови сървъри за различни платформи |
|---|
| **NFS монтиране** | NFS | Да | Висока | Да | Големи прехвърляния Linux-към-Linux |
|---|
| **SCP / SFTP** | SSH | Да | Средна-Висока | Не | Сигурни еднократни прехвърляния |
|---|
| **Плъзгане и пускане (VMware Tools)** | HGFS | Не | Ниска | Не | Единични малки файлове |
|---|
| **Споделен виртуален диск** | SCSI/SATA | Не | Много висока | Да | Големи двоични/бази данни файлове |
|---|
| **rsync по SSH** | SSH | Да | Висока | Скриптируем | Инкрементална синхронизация, архивиране |
|---|
За екипи, управляващи виртуализирана инфраструктура в мащаб, ограниченията на HGFS стават бързо очевидни. Производствените натоварвания, изискващи последователен, високопроизводителен достъп до файлове между хост и гост, се обслужват по-добре от специализирани решения за съхранение. Ако управлявате множество VM за разработка, тестване или CI/CD конвейери, среда за VPS хостинг с правилно осигурени томове за съхранение елиминира изцяло границата хост-гост.
Съображения за сигурност при споделени папки на VMware
Споделените папки въвеждат директен мост на файловата система между хоста и госта. Това има значими последици за сигурността:
- Риск от избягване от VM: Компрометиран гост с достъп за запис до споделена папка може да модифицира файлове от страна на хоста. Винаги използвайте режим само за четене при споделяне на папки с VM, изпълняващи ненадежден софтуер или публично достъпни услуги.
- Принцип на минималните привилегии: Споделяйте само конкретната поддиректория, която е необходима, никога цялата домашна директория или системния корен.
- Разпространение на зловреден софтуер: Ransomware, изпълняващ се вътре в гост VM, може да криптира файлове в записваема споделена папка на хоста. Третирайте споделените папки като повърхност за атака.
- Последователност на снимките: Файловете, модифицирани чрез HGFS, не се улавят в снимките на VM. Ако последователността при връщане назад е важна, копирайте файловете на виртуалния диск преди правене на снимка.
За среди, където изолацията е от първостепенно значение — като изследване на сигурността, анализ на зловреден софтуер или многонаемателски хостинг — помислете за използване на Dedicated сървър с изолация на хардуерно ниво, вместо работни процеси, базирани на споделени папки.
Интегриране на споделени папки на VMware в работни процеси за разработка
Споделените папки са най-мощни, когато са интегрирани в автоматизирани работни процеси:
Синхронизиране на файлове на уеб проекти: Монтирайте споделена папка, сочеща към директорията на проекта от страна на хоста, след което конфигурирайте уеб сървъра на госта (Apache/Nginx) да обслужва директно от `/mnt/hgfs/project/`. Редакциите, направени в IDE на хоста, се отразяват незабавно в госта без никаква стъпка за синхронизиране.
Споделено управление на конфигурацията: Съхранявайте Ansible playbooks, Terraform state файлове или Docker Compose дефиниции на хоста и ги изпълнявайте от госта. Това поддържа файловете под контрол на версиите на хоста, като същевременно използва инструментите от страна на госта.
Събиране на артефакти от изграждане: Конфигурирайте CI скриптове вътре в госта да записват компилирани двоични файлове или тестови отчети в HGFS-монтираната директория, правейки ги незабавно достъпни на хоста без SSH или стъпки за копиране на файлове.
За екипи, управляващи множество виртуални среди с достъп до контролен панел, VPS с cPanel предоставя управлявана алтернатива, при която управлението на файлове, потребителските разрешения и конвейерите за внедряване се обработват чрез унифициран интерфейс без ръчна HGFS конфигурация.
Ако работният ви процес включва внедряване на уеб приложения от разработчески VM в производство, съчетаването на локалната VMware настройка с споделен уеб хостинг за staging среди ви позволява да тествате файловите структури и разрешенията преди публикуване на производствени сървъри.
За 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 MB) се маршрутизират чрез 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. Без него гост OS няма драйвер, способен да комуникира с подсистемата за споделяне на файлове на VMware хипервайзора. Няма заобиколно решение — инсталирането на VMware Tools е задължително.
Каква е разликата между `vmhgfs` и `vmhgfs-fuse`?
`vmhgfs` е наследеният вграден ядрен модул, използван от по-стари версии на VMware Tools. `vmhgfs-fuse` е заместителят, базиран на потребителско пространство FUSE, въведен в open-vm-tools 10.x, който не изисква компилиране на ядрен модул и работи при различни версии на ядрото без прекомпилиране. Съвременните Linux дистрибуции използват изключително `vmhgfs-fuse`.
Влияе ли активирането на споделени папки на производителността на VM?
HGFS каналът добавя пренебрежимо малко натоварване на CPU по време на неактивни периоди. При интензивен I/O — като компилиране на големи кодови бази директно от HGFS монтирането — ще наблюдавате увеличение на латентността в сравнение с нативен I/O на виртуален диск. За I/O-интензивни операции, копирайте файловете първо на локалния виртуален диск на госта, извършете операцията, след което копирайте резултатите обратно в споделената папка.
Поддържат ли се споделени папки на VMware в VMware ESXi или vSphere?
Не. Споделените папки чрез HGFS са функция само на VMware Workstation, Player и Fusion — продуктите за настолен хипервайзор. VMware ESXi и vSphere не поддържат споделени папки, базирани на HGFS. В тези среди споделянето на файлове между хост и гост се обработва чрез NFS хранилища за данни, vSAN или мрежови протоколи (SMB/NFS), конфигурирани на ниво гост OS.
