Как как.. ну в мануале всё написано. Сначала как ни выкручивайся надо поставить Virtual Box Guest Additions. У меня нету оконного менеджера на девзоне, поэтому у меня были небольшие заморочки с этим. Ну,.. условно заморочки. Хост система - Windows 7, гостевая - Ubuntu 9.04 (32bit). Как было дело:
- Devices -> Mount CD/DVD-ROM -> CD/DVD-ROM Image
- Выбираем VBoxGuestAdditions.iso (лежит в папке с виртуалбоксом)
-
sudo mount /media/cdrom0 cd /media/cdrom0 ls -la
Видим в списке файлик VBoxLinuxAdditions-x86.run (autorun.sh не заработает, потому что хочет gksudo, а иксов нету) - Запускаем инсталятор дополнений руками
sudo sh ./VBoxLinuxAdditions-x86.run
И нифига не выходит потому что не установлен make, не установлены исходники ядра и ещё какая-то лабуда. Решаем эти проблемы при помощи гугла, kernel headers ставятся такsudo apt-get update apt-cache search linux-headers-$(uname -r) sudo apt-get install linux-headers-$(uname -r)
Дальше всё что надо и не ставится идем в гугл и читаем как поставить. Всё тривиально, apt-get-ом. Эту итерацию выполняем до победы, пока установка дополнений не пройдет до конца без ошибок (ну, кроме матюгов по поводу того, что не установлены дополнения для иксов, а у нас их и нема, если консоль только, так что это не важно). - Теперь, когда гостевые дополнения установлены делаем
lsmod | grep vbox modprobe vboxvfs # если lsmod не сказал что есть такое слово.
То есть на этом этапе мы должны убедиться что дополнения установлены и модуль vboxvfs запущен. vboxvfs == VirtualBox Virtual File System видимо - Теперь идем Devices -> Shared Folders и добавляем там папку с локального диска для того чтобы расшарить её с гостевой ОС. Выбираем папку которую хотим расшарить, имя шары для VirtualBox и тип доступа. Таким образом VirtualBox будет видеть эту шару по имени которое прописано в колонке Name (см рисунок). Причем клиент ОС видит новую шару сразу, без всяких перезагрузок.
- Теперь нашу шару надо подключить.
cd ~ mkdir my_shared sudo mount.vboxsf virtbox_shared my_shared
Таким образом мы прицепим шару с хост ОС E:\projects\virtbox_shared к папке ~\my_shared на гостевой ОС (см. рисунок). Дальше можно прописать это в fstab (virtbox_shared /home/ijin/my_shared vboxsf defaults 0 0) и бла-бла-бла, уже понятно. Ну вот. И вся любовь. Целостностью файловых систем озадачивается VirtualBox и я склонен ему доверять. Шара с вирт машиной - удобная штука. По идее можно вообще локально держать софт а выполнять на виртуальной машине если грамотно структуру проекта разложить. Там конечно, как всегда есть свои нюансы, но это уже отдельная история.
это список shared folders для VirtualBox![]()
Как? Погуглив... Нашел. Оказалось совсем несложно, как обычно..
# для директорий используем -type dХороший человек объяснил подробности. ";" - терминатор екзека и шелла одновременно, поэтому его в шелле надо заэксейпить. Ну а "{}" результат файнда построчно.
cd /home/target_dir
find . -type d -exec chmod 755 {} \;
# для файлов -type f
cd /home/target_dir
find . -type f -exec chmod 644 {} \;
# по маске имени с параметром -name
cd /home/target_dir
find . -type f -name '*.htm*' -exec chmod 644 {} \;
# для наглядности можно выполнить
find /home/target_dir/ -type f -name '*.php' -exec echo '-- '{} \;
Ад. По сравнению с VMWare. Странно но в Vista всё работало и в третьем VirtualBox-е. Здесь же речь пойдет о VirtualBox 2.2 С третьим под WinXP я как ни мучался - ничего у меня не вышло. Под вистой тройка взлетает без проблем. Итого, задача: есть Ubuntu Server как клиент ОС и WinXP как сервер ОС. Необходимо чтобы ось клиент ходила в интернет без проблем, видела машины в локальной сети и машины из локальной сети могли до неё достучаться. В моем случае расклад такой: есть wifi-роутер который раздает ипы для клиентов в диапазоне 192.168.1.2\254, сам он 192.168.1.1 понятно. Есть ноут, его ип - 2. На нем WinXP и VirtualBox с Ubuntu. Надо всю эту братию подружить. Ставится виртбокс без особых проблем, но с большим количеством воплей про то что это ПО не тестировалось на совместимость с WinXP (кстати в примере речь идет о WinXP SP3). Вопли игнорируем, виртбокс ставим. Поднимаем в нем Ubuntu. Добираемся до сетевых дел. Идем в настройки сети (для этого виртуальную машину надо остановить). Там устанавливаем два сетевых адаптера вот таким вот образом:
этот адаптер у нас будет смотреть в интернет, внешний мирВот так вот. Вроде проще некуда. Казалось бы. Дальше запускаем виртуальную машину и топаем в настройки сети. По умолчанию соединение которое создал VirtualBox (VirtualBox Host-Only Network) у меня было с адресом 192.168.56.1, менять его я не стал, но вообще уверен что изменить его совсем не проблемно. Идем править интерфейсы в /etc/networking/interfaces (кстати, на всякий случай про положение адаптеров можно почитать вот так dmesg | grep eth) Выглядеть интерфейсы после настройки у меня стали примерно так:а это тот самй пресловутый мост из VirtualBox Bridged Networking Driver
![]()
# The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth2 iface eth2 inet dhcp auto eth3 iface eth3 inet static address 192.168.56.10 netmask 255.255.255.0Пояснять тут в общем-то нечего. Разве что ip виртуалки в локальной сети зафиксировался на 10-м номере. Дальше перезапускаем сеть и всё. В общем-то всё очень просто. Но я честно уже не раз это делаю и всё равно забываю постоянно, что и как должно быть. Может теперь запомню :)
это финал после нехитрых sudo ifconfig eth2 up sudo ifconfig eth3 up sudo /etc/init.d/networking restartВот и всё. Ставим LAMP и девелопим в своё удовольствие в условиях значительно приближенных к боевым. Кстати мы при этом ничего не украли, софт-то свободный :) Приятного программирования.![]()
Для примера посчитаем файлы и папки в каталоге:
ls -1 /home | wc -l cat 123.txt | wc -l
Ну, это просто. Просто как обычно, надо знать волшебное слово :)
cat /etc/lsb-release # или cat /etc/issue cat /etc/issue.net # или (см. man lsb_release) lsb_release -a