С полноценной установкой debian в VMWare у меня была постоянная морока, т.к. никогда у меня без напильника до конца нормально не устанавливались vmware tools. Может у меня руки не те, спорить не буду — с линуксом я всё же не на ты. Недавно вышла новая версия debian и, на второй день после официального релиза, я принял волевое решение перевести свои виртуалки, организующие серверы FTP/SFTP, с WindowsXP на линукс. Тут как раз подоспела новая версия VMWare 11, новая версия тулзов, debian 8 testing уже давно народом использовалась и я решил что уже всё должно быть гладко и мне надо будет поднапрячься и только разобраться с настройками proftpd. После установки и настройки debian 8 я решил установить vmware tools и завершить, таким образом, начальную фазу — подготовку базовой машины. И что вы думаете? VMware tools встали кривовато…

Этот вопиющий факт не оставил меня равнодушным.Ну сколько уже можно? Например, Gnome3 на debian 7 у меня запускался только в альтернативной режиме и никак не получалось нормально установить драйвера для видео и/или задействовать поддержку 3D. Я помню некоторое время потратил на поиск решения и опробывания предложений по самостоятельной сборке, но успеха мне это не принесло и я забросил это дело, тем более работе оно не мешало. Но оставалось чувство недовыполненности работы.

И тут, опять что-то не то. GUI заработал изначально нормально. Gnome3 после настройки мне даже очень понравился (настройка через gnome-tweak-tool + допрасширения: Lock keys, Remove dropdown arrows). Тулсы ставятся почти нормально. Но в конечном счёте мы не получаем поддержки Shared Folders. Это печально, т.к. такой механизм удобен: подключаем папки в настройках виртуалки, они автоматом монтируются в /mnt/hgfs/. И не надо заморачиваться с расшариванием папок по сети в хостовой машине. Но после установки тулзов мы получаем неработающий модуль vmhgfs. В рунете я решения не нашел, но помню нашёл как решить проблему на каком-то англоязычном форуме. Это всё действо происходило 26-28 апреля. Меня удивило когда вчера ко мне обратился знакомый и посетовал, дескать не могу настроить вмваровскую сеть в виртуалке с новым дебианом. И я решил написать мануал другу, оформив его в виде статьи на хабре — вдруг ещё кому-то пригодится!

Итак, как установить тулзы.

Для начала устанавливаем нужные пакеты для сборки тулзов (это тянется с доисторических времён, иначе есть риск, что нормально ничего не соберётся):

sudo apt-get install linux-headers-$(uname -r) make gcc


Если далее выполнить установку штатных тулзов из поставки VMWare:

mount the VMware tools cdrom and install VMware Tools
sudo mount /dev/cdrom /media/cdrom
tar xvzf /media/cdrom/VMwareTools-9.9.2-2496486.tar.gz
cd vmware-tools-distrib
sudo ./vmware-install.pl -d


То после презагрузки получим неработающий модуль vmhgfs. Цитирую конец лога установки:

/usr/src/linux-headers-3.16.0-4-common/scripts/Makefile.build:262: ошибка выполнения рецепта для цели «/tmp/modconfig-zqp0EX/vmhgfs-only/inode.o»
make[4]: *** [/tmp/modconfig-zqp0EX/vmhgfs-only/inode.o] Ошибка 1
make[4]: *** Ожидание завершения заданий…
/usr/src/linux-headers-3.16.0-4-common/Makefile:1350: ошибка выполнения рецепта для цели «_module_/tmp/modconfig-zqp0EX/vmhgfs-only»
make[3]: *** [_module_/tmp/modconfig-zqp0EX/vmhgfs-only] Ошибка 2
Makefile:181: ошибка выполнения рецепта для цели «sub-make»
make[2]: *** [sub-make] Ошибка 2
Makefile:8: ошибка выполнения рецепта для цели «all»
make[1]: *** [all] Ошибка 2
make[1]: выход из каталога «/usr/src/linux-headers-3.16.0-4-amd64»
Makefile:120: ошибка выполнения рецепта для цели «vmhgfs.ko»
make: *** [vmhgfs.ko] Ошибка 2
make: выход из каталога «/tmp/modconfig-zqp0EX/vmhgfs-only»

The filesystem driver (vmhgfs module) is used only for the shared folder
feature. The rest of the software provided by VMware Tools is designed to work
independently of this feature.

If you wish to have the shared folders feature, you can install the driver by
running vmware-config-tools.pl again after making sure that gcc, binutils, make
and the kernel sources for your running kernel are installed on your machine.
These packages are available on your distribution's installation CD.


Для устранения этой печальной проблемы нужно выполнить ряд действий по замене d_alias на d_u.d_alias в пакете vmhgfs:

#!/bin/sh -x
cd /usr/lib/vmware-tools/modules/source
tar xf vmhgfs.tar
grep -q d_u.d_alias vmhgfs-only/inode.c && echo "already patched" && exit 0
sed -i -e s/d_alias/d_u.d_alias/ vmhgfs-only/inode.c
cp -p vmhgfs.tar vmhgfs.tar.orig
tar cf vmhgfs.tar vmhgfs-only
vmware-config-tools.pl -d -m


После этого функционал Shared Folders от VMWare начнет нормально работать — в папке /mnt/ngfs появятся подключенные папки в настройках виртуальной машины.
ПРИМЕЧАНИЕ: это метод, несовместим с более ранними версиями ядра (ниже 3.13.0-45)!!!

После этих исправлений я собрал обратно тулзы в архив, из которого теперь можно устанавливать тузлы не заморачиваясь с дополнительными действия по замене d_alias на d_u.d_alias. Если кому-то нужно я могу выложить файл. Подскажите только куда, файл весит 178Мб, хотелось бы выложить его на какой-то файловый хостинг без регистрации и прочей мороки, что бы он там пролежал год-два хотябы.

Справедливости ради, считаю, нужно отметить что не только на тулзах от vmware свет клином сошёлся. Существует замечательный проект open-vm-tools. Пакет, правда, давно не обновлялся, но в своё время я им вполне успешно обходился и всё там всегда сразу работало. К тому же open.

Так же добрые люди подсказывают, что существует еще удобный набор патчей vmware-tools-patches.

Комментарии (10)


  1. rino906
    08.06.2015 13:06

    del


  1. UksusoFF
    08.06.2015 18:51

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


    1. AlexanderS Автор
      08.06.2015 22:44

      Нужен доступ по фтп. Специально комп выделять под это дело нет возможности. Поэтому на одном из компов в хостовой системе есть папка для фтп, которая подключена к виртуалке, в которой крутится фтп сервер. Раньше просто стояла WindowsXP с FileZilla Server, а теперь Debian с proftpd )


      1. UksusoFF
        08.06.2015 22:52
        +1

        Но что мешает на хост машине настроить ftp (FileZilla Server или proftpd)?


        1. AlexanderS Автор
          09.06.2015 09:22

          Ну… понимаете там не всё так просто. Там из подмонтированной папки внутри линукса монтируется том truecrypt и уже в этот контейнер попадает пользователь по SFTP. Том автоматом монтируется при запуске системы и автоматом размонтируется при завершении. А за компом сидит обычный пользователь, который не может ни влезть в debian (т.к. доступов у него нет), ни открыть том tc (т.к. паролей не знает). Контейнер же периодически бэкапится на другой комп.
          Вот такой вот изврат)


  1. Inferno23
    08.06.2015 20:15
    +1

    Помимо этой проблемы на новых kernel'ах может вылезти множество других.

    Из-за бездействия самих разработчиков добрые люди запилили удобный набор патчей:
    github.com/rasa/vmware-tools-patches

    Ставится все это дело парой команд.


    1. navion
      08.06.2015 23:38

      Справедливости ради, считаю, нужно отметить что не только на тулзах от vmware свет клином сошёлся.

      Они сами рекомендуют их ставить для дистрибутивов с новым ядром (со встроенными драйверами VMXNET3 и PVSCSI). А Debian 8 официально поддерживается только для ESXi 6.0, но там по понятным причинам Shared Folders никто не пользуется.


  1. vasilisc
    09.06.2015 07:50
    +2

    А что даёт вам лично использование GUI на «сервере»?


    1. AlexanderS Автор
      09.06.2015 09:27

      Лично мне — ничего. Мало того, я своё знакомство с линукс начинал именно с принципа отказа от GUI. Виртуалка просто делалась не как сервер, а для личного использования. А немножко её доработать идея уже потом возникла.

      Так как оно всё настроено и работает, в принципе, GUI и не нужен.
      С другой стороны, тот же Double Commander, лично мне, очень сильно облегчает жизнь в процессе настройки/пользования.


  1. aim
    09.06.2015 09:30
    +5

    apt-get install open-vm-tools