Pull to refresh

Полноценная замена Denwer или разворачиваем Ubuntu-server на VMware (часть 2)

Reading time5 min
Views13K
В первой части мы с вами создали виртуальную машину, установили Ubuntu, настроили сеть и SSH доступ к гостевой ОС (Ubuntu). Теперь, самое время разобраться с синхронизацией наших файлов. Можно конечно не заморачиваться с этим, а просто копировать файлы по sftp после каждого редактирования, но это быстро надоест. По этому, для полного счастья стоит взять на вооружение один из ниже описанных способов.

Способ номер 1

Достоинство: простота настройки.
Недостаток: синхронизация односторонняя.

Самым простым способом для решения нашей задачи будет настройка синхронизации в WinSCP. Для это нам понадобится WinSCP и настроенный SSH. Первое вы уже качаете, а второе мы настроили в предыдущей статье, поэтому сразу перейдем к настройке синхронизации.

Для настройки синхронизации запускаем WinSCP, настраиваем SSH соединение с нашей Ubuntu (все как в putty) и конектимся. Теперь идем в Команды > Синхронизация папки на сервере (Ctrl + U) и настраиваем синхронизацию (там все очень просто).

P.S. Данный способ имеет очень большой недостаток: синхронизация будет односторонней – windows > Ubuntu.

Способ номер 2

Достоинство: универсальный.
Недостаток: проблемы со сменой прав на файлы и директории.

Второй способ самый универсальный — он не зависит от конкретной системы виртуализации и весьма прост в настройке.

Для начала идем в Windows и создаем нового пользователя с паролем. Теперь выберем папку, для которой мы откроем общий доступ, и в которой будут храниться наши скрипты (если пользуетесь Денвером, то можете открыть доступ к папке /home).

Примечание
Для включения общего доступа:
  • Выбираем папку, заходим в свойства.
  • Переходим в «Доступ» > «Общий доступ».
  • Выбираем из выпадающего списка нашего созданного пользователя и нажимаем «Добавить».
  • Выбираем нашего пользователя в таблице и ставим ему «Уровень разрешения» — «Чтение и запись».

Возвращаемся в Ubuntu и ставим smbfs:

sudo apt-get install smbfs

Теперь создаем директорию, в которую будем монтировать нашу удаленную папку:

mkdir ~/www

Создаем файл с логином и паролем нашего windows пользователя:

sudo  touch /root/.smbclient

Открываем созданный файл и добавляем в него данные нашего Windows пользователя:

username=логин
password=пароль

Монтируем нашу удаленную папку (пускай это будет папка /home) в директорию ~/www. Для этого нам надо знать имя нашей Windows машины или ее IP (как узнать IP смотрите в первой части).

sudo smbmount //192.168.80.1/home /home/claud/www -o credentials=/root/.smbclient,uid=claud,gid=claud,forceuid=claud,forcegid=claud,rw,_netdev, dir_mode=0777, file_mode=0666

Примечание
  • 192.168.80.1 – это мой IP замените его на свой.
  • Claud – это мой пользователь в Ubuntu замените его на своего (будьте внимательны — замените везде).
Описание опций
  • credentials=/root/.smbclient — файл, в котором хранится логин и пароль для пользователя на удаленном компьютере.
  • uid=claud — UID для всех файлов и директорий, переданный сервером. Если сервер не передал UID, то используется это значение. По умолчанию оно равно 0 (root) можно писать имя или UID пользователя.
  • gid=claud — тоже самое, что и UID только для групп.
  • forceuid=claud — принудительно устанавливает UID для всех директорий и файлов.
  • forcegid=claud — тоже самое, что и forceuid только для группы.
  • iocharset=utf8 — кодировка файлов на сервере.
  • rw — монтиреут для чтения и записи. Можно поменять на «ro» — монтирует только для чтения.
  • _netdev — опция, указывающая, что данный ресурс является сетевым. Полезно, если при запуске системы будет отсутствовать сеть, тогда система не будет выдавать ошибку о невозможности примонтирования ресурсов.
  • file_mode=0666 — права доступа к файлам на сервере. В данном случае файлы могут читать и изменять все пользователи системы.
  • dir_mode=0777 — права доступа к каталогам на сервере. В данном случае каталог может быть изменен любым пользователем.

Все теперь наша общая папка из Windows доступна на Ubuntu и все изменения, сделанные в ней на одной из ОС, будут тут же доступны и на другой. Но есть один не достаток: изменение прав доступа на файлы или директории в общей папке не фиксируются.

Добавление в /etc/fstab
Если добавить запись в /etc/fstab, то при перезагрузке или выключении системы, можно будет увидеть такое сообщение:
1.CIFS VFS: No Response for Cmd number mid number

В интернете много различных способов лечения этой гадости. Например:

Но самый простой это:
Я плюнул на все танцы с бубнами на очередность загрузки и все win ресурсы монтирую в /etc/rc.local через smbmount


Способ номер 3

Достоинство: помимо общих папок получаем еще несколько полезных дополнений.
Недостаток: подходит только для Vmware, проблемы со сменой прав на файлы и директории.

У VMware есть Vmware tools – это набор различных утилит, которые ставятся на гостевую ОС и дают раз дополнительных улучшений (общая папка, свой сетевой драйвер и т.д.).
Примечание
Пред началом установки, крайне рекомендую сделать бекап вашей ВМ или (если доступно) сделать снепшот.

Для установки VMware tools запускаем нашу ВМ. После входа в Ubuntu открываем меню Virtual Machine и нажимаем «Install VMware Tools».

Переходим в Ubuntu и создаем две директории:

mkdir ~/tmp
sudo mkdir /mnt/cdrom

Монтируем наш cdrom:

sudo mount /dev/cdrom /mnt/cdrom

Теперь внимание. Проверяем версию VMware tools:

ls –l /mnt/cdrom/

Если у вас VMwareTools-8.4.6 и выше, то скорее всего установка на Ubuntu 11.04 пройдет без проблем в противном случае, вам придется попотеть и покурить это и возможно вот это, ну и вот это тоже.

Предположим нам повезло и у нас VMwareTools-8.4.6:

tar -zxvf /mnt/cdrom/VMwareTools-*.tar.gz -C ~/tmp
cd /tmp/vmware-tools-distrib/

Устанавливаем:

sudo ./vmware-install.pl –d

После завершения установки идем в настройки нашей ВМ > Options > Shared Folders ставим переключатель на Always enabled и добавляем, какую не то директорию (например: /home из Денвера). Сохраняем и закрываем настройки.
Возвращаемся в нашу Ubuntu и выполняем команду:

ls –l /mnt/hgfs

Если все было сделано правильно, то вы увидите свои папки из windows (вообще в этой директории будут доступны все ваши расшаренные папки).

Теперь давайте подмонтируем папку /home в директорию ~www. Для этого выполним команду (claud – имя моей учетной записи в Ubuntu, поменяйте его на свое):

sudo mount -t vmhgfs -o file_mode=0666,dir_mode=0777uid=claud,gid=claud,forceuid=claud,forcegid=claud,rw,_netdev .host:/home /home/claud/www 


P.S. Данный способ позволяет менять права только на два вида rwxrwxrwx или r-xr-xr-x (все же лучше чем совсем не как).

Заключение.


Как я уже выше писал, вы без проблем можете монтировать папку /home (от Денвера) и получить тем самым возможность тестировать свои скрипты и в Windows и в Linux.

P.S. Если кто-то знает способы решения проблем с переназначением прав, то очень бы хотелось их узнать.

P.P.S Virtualbox-овсы подскажите как обстоят дела с переназначением прав доступа в Virtualbox реализации Shared Folders.

Полноценная замена Denwer или разворачиваем Ubuntu-server на VMware (часть 1)
Tags:
Hubs:
+7
Comments39

Articles