VirtualBox (Русский)

From ArchWiki
Revision as of 09:01, 10 April 2008 by Overmind88 (talk | contribs) (russian translation. косяки есть)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


Template:I18n links start Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n links end


Что такое VirtualBox

VirtualBox это эмулятор виртуального компьютера, подобный vmware. В нём есть много возможностей, которые присутствуют в vmware, а также некоторые свои

Редакции

VirtualBox имеет две редакции: VirtualBox-ose и VirtualBox (Personal Use and Evaluation License (PUEL)

VirtualBox-ose

Это версия VirtualBox с открытым исходным кодом и может быть найдена в репозитории community. В ней отсутствуют некоторые возможности, например поддержка USB и RDP сервер

VirtualBox (PUEL)

Эта версия VirtualBox бесплатна для персонального использования и может быть найдена в AUR, или вы можете скачать её с раздела загрузки на сайте VirtualBox Расширенные возможности:

  • Remote Display Protocol (RDP) Server

Этот компонент реализует полноценный RDP сервер поверх виртуального оборудования и пользователь имеет возможность присоединиться к виртуальной машине удалённо, используя клиент, совместимый с RDP

  • Поддержка USB

VirtualBox реализует виртуальный USB-контроллер и поддерживает присоединение устройств к виртуальной машине через USB 1.1 и USB 2.0

  • USB через RDP

Эта комбинация RDP сервера поддержки USB даёт возможность пользователям делать USB устройства доступными для виртуальной машины, запущенной удалённо.

  • iSCSI инициатор

VirtualBox содержит встроенный iSCSI инициатор, делающий возможным использование iSCSI-исполнителя как виртуальный диск без необходимости поддержки протокола iSCSI гостевой системой.

Установка

Сейчас об установке VirtualBox. Есть два варианта: установка OSE-версии или PUEL-версии.

Установка VirtualBox OSE

Для установки VirtualBox OSE, вы должны раскомментировать репозиторий community в /etc/pacman.conf

#[community]
# Add your preferred servers here, they will be used first
#Include = /etc/pacman.d/community

должно получиться:

[community]
# Add your preferred servers here, they will be used first
Include = /etc/pacman.d/community

Теперь используйте pacman для установки VirtualBox OSE:

pacman -Sy virtualbox-ose

Это действие по умолчанию выберет пакеты virtualbox-ose и virtualbox-modules. Затем вы должны добавить себя в группу virtualbox:

gpasswd -a USERNAME vboxusers

(Примечание: вы должны перелогиниться в системе после этого изменения для получения эффекта)

После этого добавьте vboxdrv в секцию модулей в файле /etc/rc.conf для того, чтобы этот модуль загружался при запуске компьютера. Если вы хотите вручную загрузить модуль, то напечатайте как root:

modprobe vboxdrv

Установка VirtualBox PUEL

Это выполняется очень легко с тех пор, как мы имеем замечательный PKGBUILD в AUR сделанный piie

Скачайте PKGBUILD, запустите makepkg и затем выполните как root:

pacman -U NAME OF THE PACKAGE.pkg.tar.gz

После установки добавьте себя в группу vboxusers:

gpasswd -a USERNAME vboxusers

(Примечание: вы должны перелогиниться в системе после этого изменения для получения эффекта)

Добавьте vboxdrv в строку MODULES в файле /etc/rc.conf

ВАЖНО:

Постоянно, когда меняется версия вашего ядра после обновления, перекомпиляции и т.д. вы должны пересобрать модуль ядра vboxdrv используя "vbox_build_module".Этот файл может находиться в следующих местах: /sbin, /bin, или /usr/bin м должен запускаться с привилегиями суперпользователя. После пересборки модуля не забудьте загрузить его командой: modprobe vboxdrv.

Конфигурация

После того, как мы установили VirtualBox в нашу систему и добавили себя в группу vboxusers, мы можем начать настраивать нашу систему, чтобы сделать все возможности VirtualBox доступными для нас. Создайте виртуальную машину используя мастер, предоставляемый графическим интерфейсом, затем кликните "Свойства", чтобы редактировать настройки вашей виртуальной машины.

Настройка рабочей сети в гостевой машине

Первым делом запустите работу сети в гостевой машине. Выберите вкладку "Сеть". Не подключайте опцию, означающую, что вы будете иметь ошибку "Сетевой кабель не подключен" или схожую в гостевой системе.

Использование NAT сети

Это простейший путь для получения сети. Выберите NAT сеть и она будет готова для использования. IP-адрес NAT для перво карты будет 10.0.2.0, 10.0.3.0 для второй и так далее...

Использование хост-интерфейса

Этот путь несколько сложнее, но позволяет вам увидеть виртуальную машину как "реальный" компьютер в вашей локальной сети. Вы должны установить bridge-utils:

pacman -Sy bridge-utils
      • EDIT by Sp1d3rmxn
Вы также должны иметь модуль TUN загружаемым...в rc.conf добавьте "tun" (без кавычек) в ваш раздел MODULES.
Для того, чтобы проверить его прямо сейчас, без перезагрузки вы можете загрузить модуль из командной строки
выполнив "modprobe tun".
Затем вы ДОЛЖНЫ задать эти полномочия иначе вы никогда не получите этот интерфейс загружаемым для VBox.
Выполните команду "chmod 666 /dev/net/tun" (без кавычек).
Теперь следуйте тому, как написано ниже.
      • EDIT by Dharivs
Как сказал Sp1d3rmxn, мы должны задать эти полномочия, но, вместо использования команды
мы можем задать их в файле /etc/udev/rules.d/60-vboxdrv.rules, который установит их
при загрузке:
KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="vboxusers", MODE="0660"
KERNEL=="tun", OWNER="root", GROUP="vboxusers", MODE="0660"

1. Создайте новый мост этой командой:

brctl addbr br0

2. Если вы не используете DHCP, запустите ifconfig и запишите сетевую конфигурацию вашего существующего сетевого интерфейса (например, eth0), которое вы хотите скопировать на мост

(NOTE: Вам нужны эти настройки, так что будьте уверены, что не потеряете их!!!!)

3. Переключите ваш физический сетевой адаптер в "прослушивающий" режим для того, чтобы он принимал ethernet-фреймы для MAC-адреса отличного от его собственного Switch your physical network adapter to "promiscuous" mode so that it will accept Ethernet frames for MAC addresses other than its own (вместо eth0 с вашего сетевого интерфейса):

ifconfig eth0 0.0.0.0 promisc 

(NOTE: You will lose network connectivity on eth0 at this point.)

4. Добавьте вашу сетевую карту к мосту:

brctl addif br0 eth0

5. Перенесите на новый мост сетевую конфигурацию, которая ранее использовалась физической сетевой картой. Если вы используете DHCP, это должно работать:

dhclient br0
      • EDIT by Sp1d3rmxn

используйте "dhcpcd -t 30 -h yourhostname br0 &" вместо указанного выше

      • End of edit

Иначе, выполните ifconfig br0 x.x.x.x netmask x.x.x.x и используйте значения, которые вы записали ранее.

6. Для создания постоянного хост-интерфейса, называемого vbox0 (все интерфейсы. созданные таким образом, должны называться vbox с последовательными номерами) и добавить его к сетевому мосту, созданному выше, выполните следующую команду:

VBoxAddIF vbox0 vboxuser br0

Замените vboxuser именем пользователя, которому будет позволено пользоваться новым интерфейсом.

(NOTE: VboxAddIF расположена в /opt/VirtualBox-ВЕРСИЯ VIRTUALBOX/VBoxAddIF)

В качестве альтернативы,вы можете настроить сеть в VirtualBox через ваш /etc/rc.conf для включения мостового соединения

Настройка рабочего USB в гостевой машине

(Доступно только в версии PUEL)

Первым делом, для того чтобы сделайте usb доступным для использования в виртуальной машине, вы должны добавить эту строчку в /etc/fstab

none			/proc/bus/usb	usbfs	devgid=85,devmode=664 	0	0

85 - идентификатор группы, которой разрешён доступ к USB-устройствам, смените его на идентификатор вашей группы vboxusers. Вы можете получить идентификатор группы выполнив

 grep vboxusers /etc/group

Если вы не думаете о дырах в безопасности, смените параметр devmode с 664 на 666

Перемонтируйте /proc/bus/usb/

mount -o remount /proc/bus/usb/

Перезапустите VirtualBox, и кликните на вкладку USB в свойствах виртуальной машины, затем выберите устройство, которое будет доступно на вашем компьютере при загрузке. Если вы хотите, чтобы виртуальная машина использовала устройства, которые вы только что подключили (при условии, что машина уже была загружена), перейдите к окну виртуальной машины, затем выберите в меню машины пункт Устройства -> Устройства USB -> и выберите устройство, которое вы хотите подключить к виртуальной машине.

Установка гостевых дополнений

Гостевые дополнения делают доступной возможность использования общих папок, а также улучшают поддержку видео (не 3D) и драйвера мыши. Вы получаете интеграцию мыши, при которой не нужно освобождать мышь после использовании её в гостевой системе а также можно включить двунаправленный буфер обмена.

После того как вы загрузите виртуальную машину, перейдите в пункт Устройства -> Установить Дополнения гостевой ос... Как только вы нажмёте его, VirtualBox загрузит ISO-образ в текущий CD-ROM, так что вы не сможете увидеть, что случилось что-то ещё;)

Затем выполните следующие действия как root:

# mount /mnt/cdrom
# sh /mnt/cdrom/VBoxLinuxAdditions.run

Это соберёт и установит ядерные модули, установит драйверы Xorg и создаст init-скрипты. Скорее всего будут выведены ошибки о init-скриптах и уровнях запуска. Игнорируйте их. Вы найдёте rc.vboxadd и rc.vboxvfs в /etc/rc.d (также будет создан /etc/rc.d/rc.local который вы можете удалить). Для того, чтобы иметь Гостевые дополнения доступными после загрузки, просто добавьте это в строку DAEMONS в /etc/rc.conf, например.

DAEMONS=(syslog-ng network netfs crond alsa rc.vboxadd rc.vboxvfs)

Note: если после сообщения "Installing the Virtualbox Guest Additions..." следуют множественные ошибки "Unable to determine your Linux distribution", то rc.vboxadd и rc.vboxvfs не будут созданы. Рабочее решение - создать файл /etc/rc.d/rc.local и повторить команду VBoxLinuxAdditions.

# touch /etc/rc.d/rc.local
# sh /mnt/cdrom/VBoxLinuxAdditions.run
# rm /etc/rc.d/rc.local

Note: это уже исправлено в версии 1.5.4 - инсталлятор Virtualbox сейчас корректно обрабатывает иерархию конфигов Arch.

Создание общих папок между хостом и гостем

В свойствах виртуальной машины перейдите к вкладке Общие папки и добавьте папку, которую хотите расшарить.

  • NOTE: Вы должны установить гостевые дополнения, для того, чтобы использовать эту возможность.

В Windows госте, начиная с VirtualBox 1.5.0, общие папки просматриваемы и потому видны в Windows Explorer. Откройте Windows Explorer и посмотрите в:

My Networking Places --> Entire Network --> VirtualBox Shared Folders

Кроме этого, в командной строке Windows, вы можете использовать следующее:

net use x: \\vboxsvr\sharename

Где vboxsvr фиксированное имя, замените "x:" буквой диска, который вы хотите использовать для обмена и sharename именем общей папки указнным в VBoxManage.

В Linux госте используйте следующуб команду:

mount -t vboxsf [-o OPTIONS] sharename mountpoint

Замените sharename менем общей папки указнным в VBoxManage, и mountpoint тем путём, куда вы хотите монтировать общую папку (например, /mnt/share). The usual mount rules apply, that is, create this directory first if it does not exist yet.

Кроме стандартных опций, предоставляемых командой mount, доступны следующие: iocharset CHARSET для выбора кодировки используемой для операций ввода/вывода (по умолчанию utf8) и convertcp CHARSET для назначения кодировки используемой для имени общей папки (по умолчанию utf8).

Настройка рабочего звука в гостевой машине

В свойствах машины перейдите на вкладку Аудио и выберите Аудиодрайвер ALSA

Настройка оперативной и видео памяти для виртуального ПК

Вы можете изменить значения по умолчанию перейдя в Свойства -> Общие.

Настройка CDROM для виртуального ПК

Вы можете изменить значения по умолчанию перейдя в Свойства -> CD/DVD-ROM.

Проверьте примонтированные cd/dvd приводы и выберите одну из последующих опций

Пересборка модуля vboxdrv

После обновления ядра это может понадобиться, чтобы VirtualBox продолжил свою работу. Чтобы это сделать выполните следующую команду как root:

  /usr/bin/vbox_build_module

Конвертация из образов VMware

Сделайте

  pacman -Sy qemu
  qemu-img convert image.vmdk image.bin
  VBoxManage convertdd image.bin image.vdi

Возможно, в новых версиях VirtualBox необходимость в этом пропадёт (будет подтверждено)