В первой части мы с вами создали виртуальную машину, установили Ubuntu, настроили сеть и SSH доступ к гостевой ОС (Ubuntu). Теперь, самое время разобраться с синхронизацией наших файлов. Можно конечно не заморачиваться с этим, а просто копировать файлы по sftp после каждого редактирования, но это быстро надоест. По этому, для полного счастья стоит взять на вооружение один из ниже описанных способов.
Достоинство: простота настройки.
Недостаток: синхронизация односторонняя.
Самым простым способом для решения нашей задачи будет настройка синхронизации в WinSCP. Для это нам понадобится WinSCP и настроенный SSH. Первое вы уже качаете, а второе мы настроили в предыдущей статье, поэтому сразу перейдем к настройке синхронизации.
Для настройки синхронизации запускаем WinSCP, настраиваем SSH соединение с нашей Ubuntu (все как в putty) и конектимся. Теперь идем в Команды > Синхронизация папки на сервере (Ctrl + U) и настраиваем синхронизацию (там все очень просто).
P.S. Данный способ имеет очень большой недостаток: синхронизация будет односторонней – windows > Ubuntu.
Достоинство: универсальный.
Недостаток: проблемы со сменой прав на файлы и директории.
Второй способ самый универсальный — он не зависит от конкретной системы виртуализации и весьма прост в настройке.
Для начала идем в Windows и создаем нового пользователя с паролем. Теперь выберем папку, для которой мы откроем общий доступ, и в которой будут храниться наши скрипты (если пользуетесь Денвером, то можете открыть доступ к папке /home).
Возвращаемся в Ubuntu и ставим smbfs:
Теперь создаем директорию, в которую будем монтировать нашу удаленную папку:
Создаем файл с логином и паролем нашего windows пользователя:
Открываем созданный файл и добавляем в него данные нашего Windows пользователя:
Монтируем нашу удаленную папку (пускай это будет папка /home) в директорию ~/www. Для этого нам надо знать имя нашей Windows машины или ее IP (как узнать IP смотрите в первой части).
Все теперь наша общая папка из Windows доступна на Ubuntu и все изменения, сделанные в ней на одной из ОС, будут тут же доступны и на другой. Но есть один не достаток: изменение прав доступа на файлы или директории в общей папке не фиксируются.
Добавление в /etc/fstab
Если добавить запись в /etc/fstab, то при перезагрузке или выключении системы, можно будет увидеть такое сообщение:
В интернете много различных способов лечения этой гадости. Например:
Но самый простой это:
Достоинство: помимо общих папок получаем еще несколько полезных дополнений.
Недостаток: подходит только для Vmware, проблемы со сменой прав на файлы и директории.
У VMware есть Vmware tools – это набор различных утилит, которые ставятся на гостевую ОС и дают раз дополнительных улучшений (общая папка, свой сетевой драйвер и т.д.).
Для установки VMware tools запускаем нашу ВМ. После входа в Ubuntu открываем меню Virtual Machine и нажимаем «Install VMware Tools».
Переходим в Ubuntu и создаем две директории:
Монтируем наш cdrom:
Теперь внимание. Проверяем версию VMware tools:
Если у вас VMwareTools-8.4.6 и выше, то скорее всего установка на Ubuntu 11.04 пройдет без проблем в противном случае, вам придется попотеть и покурить это и возможно вот это, ну и вот это тоже.
Предположим нам повезло и у нас VMwareTools-8.4.6:
Устанавливаем:
После завершения установки идем в настройки нашей ВМ > Options > Shared Folders ставим переключатель на Always enabled и добавляем, какую не то директорию (например: /home из Денвера). Сохраняем и закрываем настройки.
Возвращаемся в нашу Ubuntu и выполняем команду:
Если все было сделано правильно, то вы увидите свои папки из windows (вообще в этой директории будут доступны все ваши расшаренные папки).
Теперь давайте подмонтируем папку /home в директорию ~www. Для этого выполним команду (claud – имя моей учетной записи в Ubuntu, поменяйте его на свое):
P.S. Данный способ позволяет менять права только на два вида rwxrwxrwx или r-xr-xr-x (все же лучше чем совсем не как).
Как я уже выше писал, вы без проблем можете монтировать папку /home (от Денвера) и получить тем самым возможность тестировать свои скрипты и в Windows и в Linux.
P.S. Если кто-то знает способы решения проблем с переназначением прав, то очень бы хотелось их узнать.
P.P.S Virtualbox-овсы подскажите как обстоят дела с переназначением прав доступа в Virtualbox реализации Shared Folders.
Полноценная замена Denwer или разворачиваем Ubuntu-server на VMware (часть 1)
Способ номер 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
В интернете много различных способов лечения этой гадости. Например:
- forum.ubuntu.ru/index.php?topic=63270.0
- www.jejik.com/articles/2007/07/automatically_mounting_and_unmounting_samba_windows_shares_with_cifs
Но самый простой это:
Я плюнул на все танцы с бубнами на очередность загрузки и все 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)