VirtualBox (устарело)
VirtualBox — программный продукт виртуализации для операционных систем Microsoft Windows, DOS, GNU/Linux, Mac OS X и SUN Solaris/OpenSolaris. Программа была создана компанией Innotek с использованием исходного кода Qemu. Первая публично доступная версия VirtualBox появилась 15 января 2007 года. Существует две версии — свободная (OSE, англ. Open Source Edition), выпущенная под GNU GPL, и проприетарная (PUEL), различающиеся по функциональности; полнофункциональная проприетарная версия для личного использования распространяется бесплатно. В феврале 2008 Innotek был приобретён компанией Sun Microsystems, модель распространения VirtualBox при этом не изменилась.
Пакеты свободной версии VirtualBox есть в составе дистрибутивов ALT Linux, начиная с Desktop 4.1. При установке системы можно выбрать группу "Виртуализация" для установки Virtualbox по умолчанию.
Установка свободной версии VirtualBox из пакетов
Чтобы воспользоваться Virtualbox, необходимо установить следующий набор пакетов:
virtualbox-2.1.4-alt5 virtualbox-common-2.1.4-alt5 kernel-modules-virtualbox-std-def-2.1.4-alt1.132635
При этом, они должны быть строго одной версии (2.1.4 в данном случае) и модуль ядра должен быть строго версии для вашего ядра (std-def в данном случае). Чтобы это обеспечить, ядро и пакеты необходимо устанавливать из одного и того же репозитория. Узнать версию загруженного ядра можно так:
$uname -r 2.6.27-std-def-alt15
Если у вас в виртуальной машине (гостевая система) тоже ALTLinux, то можно установить в ней "дополнения гостевой системы":
kernel-modules-virtualbox-addition-std-def-2.1.4-alt1.132635.15 virtualbox-guest-additions-2.1.4-alt5
Virtualbox использует для работы устройство
$ ls -l /dev/vboxdrv crw-rw---- 1 root vboxusers 10, 58 Май 5 08:46 /dev/vboxdrv
поэтому необходимо включить своего пользователя в группу vboxusers
gpasswd -a user vboxusers
и перелогиниться. После чего, можно запускать Virtualbox, например, в KDE из меню: K- Система — Виртуализатор Virtualbox.
Настройка сети в гостевой системе Virtualbox
Чтобы гостевая система получила доступ к подсети, в которой находится хост-система, можно поступить следующим образом:
Настроить в хост-системе туннель и бридж, как описано в пунктах 3.7 и
3.6 статьи Etcnet — соответственно, сначала необходимо запустить интерфейс туннеля tap0 а затем объединить его в мост с интерфейсом вашей физической сетевой карты (например, eth0).
После того, как вы убедитесь, что сеть на хост-системе после этой настройки работает как и раньше, вы можете использовать туннель в Virtualbox:
зайдите в свойства виртуальной машины, раздел "сеть" и выберите "Подсоединён к" — "Хост-интерфейс", а ниже, в поле "Хост-интерфейсы" выберите tap0.
После этого, при загрузке, гостевая система получит доступ к той же подсети, что и хост-система, и будет выступать равноправным компьютером в сети со своим IP адресом. IP адрес и другие настройки интерфейсу следует назначать средствами гостевой системы.
Установка Oracle Extension Pack
Свободная версия VirtualBox OSE позволяет использовать только USB 1.0, однако иногда необходимо использовать USB 2.0. Для корректной работы USB 2.0 в VirtualBox (на момент написания актуальной версией в репозитарии Sisyphus является VirtualBox 4.0.12) требуется Oracle VM VirtualBox Extension Pack. Его можно скачать с сайта Oracle [1]. Установку дополнения можно запустить из графического интерфейса или из командной строки:
# VirtualBox extpack install /path/to/Oracle_VM_VirtualBox_Extension_Pack-...vbox-extpack
Для установки дополнения необходимо запустить VirtualBox с правами администратора, иначе установка не удастся с ошибкой:
The installer failed with exit code 127: Error creating textual authentication agent: Error opening current controlling terminal for the process (`/dev/tty'): No such device or address.
На данный момент Oracle VM VirtualBox Extension Pack является единственным дополнением. Оно обеспечивает следующую функциональность:
- USB 2.0 EHCI
- VirtualBox Remote Desktop Protocol, VRDP
- Intel PXE boot ROM с поддержкой контроллера E1000
- экспериментальная поддержка «проброса» PCI с хост-системы
Установка проприетарной сборки VirtualBox
Также можно использовать закрытую бинарную сборку с сайта разработчиков программы.
Что потребуется для установки?
Во-первых, очевидно, потребуется файл с инсталлятором VirtualBox с официального сайта. На данный момент страница со ссылками на нужный файл находится по адресу: www.virtualbox.org/wiki/Linux_Downloads. Дистрибутивы All distributions i386 или All distributions AMD64 для 32-х или 64-х битной системы, соответственно.
Во-вторых, вам потребуется компилятор. Например, на момент написания этой статьи, нужен пакет gcc4.1, а также программа make. Кроме того, вам потребуется пакет kernel-headers-modules для вашего ядра.
Об установке заголовков для сборки модулей ядра
Для сборки модулей ядра, которые нужны для VirtualBox или VM Ware, в системе должен быть установлен пакет kernel-headers-modules той же версии, что и используемое ядро.
Посмотрите, какая версия ядра установлена у вас в системе. Например:
[alexei@threebears ~]$ uname -r 2.6.27-std-ll-alt7
Как видно, в системе установлено ядро 2.6.27-std-ll-alt7. То есть, для сборки модулей под него нужно установить пакет kernle-headers-modules-std-ll версии 2.6.27-alt7.
Проверить, установлен ли у вас такой пакет, можно так:
[alexei@threebears ~]$ rpm -qa | grep headers-modules kernel-headers-modules-std-ll-2.6.27-alt7 kernel-headers-modules-std-def-2.6.27-alt7
Как видно, в данной системе он установлен.
Если в вашей системе этого пакета нет, установите его командой:
apt-get install kernel-headers-modules-std-ll
К вопросу о несогласованности версий
Если вы ставите пакеты с диска с дистрибутивом, то версии ядер и заголовков совпадают (если только в дистрибутив не вкралась досадная ошибка). Однако, если вы делали точечные обновления системы, или обновляетесь с нестабильных репозиториев, то версии ядра и заголовков могут не совпадать.
Проверьте версии. Если они не совпадают, то обновите свою систему, обновите индексы apt (через apt-get update или "получить сведения" в Синаптике) или установите то ядро, для которого есть заголовки.
Установка
Общий план действий:
- скачайте дистрибутив в любое удобное место, например в /tmp
- сделайте файл исполняемым
- переключитесь в рута, и выполните файл
- в процессе установки выберите какой-либо каталог, отличный от /usr, например /opt
- запускайте VirtualBox от пользователя и работайте
Вот пример:
[alexei@threebears ~]$ cd /tmp [alexei@threebears tmp]$ wget http://download.virtualbox.org/virtualbox/2.1.0/VirtualBox-2.1.0-41146-Linux_x86.run .......<skip>......... 100%[======================================>] 41 050 695 1,54M/s в 23s 2008-12-27 16:15:16 (1,71 MB/s) - `VirtualBox-2.1.0-41146-Linux_x86.run?e=1230383984&h=ff5f79c0533f3b71dd384e4c47e696c9' сохранён [41050695/41050695] [alexei@threebears tmp]$ mv ./VirtualBox-2.1.0-41146-Linux_x86.run\?e\=1230383984\&h\=ff5f79c0533f3b71dd384e4c47e696c9 ./VirtualBox-2.1.0-41146-Linux_x86.run [alexei@threebears tmp]$ chmod a+x ./VirtualBox-2.1.0-41146-Linux_x86.run [alexei@threebears tmp]$ ll ./VirtualBox-2.1.0-41146-Linux_x86.run -rwxr-xr-x 1 alexei user 41050695 Дек 27 16:17 ./VirtualBox-2.1.0-41146-Linux_x86.run [alexei@threebears tmp]$ su - Password: [root@threebears ~]# cd /tmp/ [root@threebears tmp]# ./VirtualBox-2.1.0-41146-Linux_x86.run Verifying archive integrity... All good. Uncompressing VirtualBox for Linux installation......... VirtualBox Version 2.1.0 (2008-12-17T10:57:49Z) installer Removing previous installation of VirtualBox 2.1.0 from /opt/VirtualBox-2.1.0 Installing VirtualBox to /opt/VirtualBox-2.1.0 Building the VirtualBox kernel module Building the VirtualBox netflt kernel module VirtualBox has been installed successfully. You will find useful information about using VirtualBox in the user manual /opt/VirtualBox-2.1.0/UserManual.pdf and in the user FAQ http://www.virtualbox.org/wiki/User_FAQ We hope that you enjoy using VirtualBox.
Всё, программа установлена. Теперь от пользователя можно вызывать команду VirtualBox.
Второй вариант установки — с бывшей страницы Virtualbox, созданной пользователем Becase:
Прекрасно работает VirtualBox_*_Linux_x86.run
Необходимо обязательно иметь и в хост и в гостевой системе такие пакеты (версии не важны, важно, чтобы они были одинаковы и для вашего рабочего ядра):
- kernel-headers-common
- kernel-headers-std-smp
- kernel-headers-modules-std-smp
Установка аддона — отдельная песня, но весьма несложная.
Аддон необходимо распаковать рутом, например, так:
./VBoxLinuxAdditions.run --noexec --keep --target /root/VBoxInstall
В install.sh необходимо добавить в проверку версии xorg.
Найдите строчки
7.1.* | 7.2.* )
install -o 0 -g 0 -m 0644 vboxvideo_drv_71.so
$modules_dir/drivers/vboxvideo_drv.so
install -o 0 -g 0 -m 0644 vboxmouse_drv_71.so
$modules_dir/input/vboxmouse_drv.so
И замените первую на
7.1.* | 7.2.* | 7.3.* )
install -o 0 -g 0 -m 0644 vboxvideo_drv_71.so
$modules_dir/drivers/vboxvideo_drv.so
install -o 0 -g 0 -m 0644 vboxmouse_drv_71.so
$modules_dir/input/vboxmouse_drv.so
А ещё, чуть выше, в строку
for dir in /usr/lib/xorg/modules /usr/X11R6/lib/modules; do
добавьте «наш» каталог для модулей
for dir in /usr/lib/X11/modules /usr/lib/xorg/modules /usr/X11R6/lib/modules; do
После чего, можно просто запускать install.sh (от рута) и перегружать гостевую ОС… всё работает :)
Что делать после обновления ядра
Если вы установили VirtualBox, а затем обновили ядро, то при следующем запуске VirtualBox вы получите такое сообщение:
[alexei@threebears ~]$ VirtualBox WARNING: The vboxdrv kernel module is not loaded. Either there is no module available for the current kernel (2.6.27-std-ll-alt7) or it failed to load. Please recompile the kernel module and install it by sudo /etc/init.d/vboxdrv setup You will not be able to start VMs until this problem is fixed.
Это означает, что для нового ядра не собран нужный модуль, и программа подсказывает вам, как поступить:
[alexei@threebears ~]$ su - Password: [root@threebears ~]# service vboxdrv setup Stopping VirtualBox kernel module [ DONE ] Removing old VirtualBox netflt kernel module [ DONE ] Removing old VirtualBox kernel module [ DONE ] Recompiling VirtualBox kernel module [ DONE ] Starting VirtualBox kernel module [ DONE ]
Установка "дополнений гостевой ОС" для гостевого ALT Linux
Почему бы не поставить то, что есть в дистрибутиве
На момент написания этой статьи в дистрибутиве есть драйверы для Xorg (vboxmouse и vboxvideo), но от очень старой версии VB, они не работают с новыми версиями Xorg.
Краткая инструкция
ВНИМАНИЕ: идеологически неправильное решение!!![1]
- Запускаем гостевой Линукс, и удаляем пакеты:
xorg-x11-drv-vboxvideo xorg-x11-drv-vboxmouse
- Ставим пакет kernel-headers-modules для своего ядра.
- В окне VirtualBox, в меню "Устройства", выбираем "Установить дополнения гостевой ОС".
- В гостевом Линуксе заходим на CD-ROM, находим там файл VBoxLinuxAdditions-x86.run (-amd64.run для соответствующей архитектуры), копируем его в /tmp.
- В гостевом Линуксе открываем терминал, переходим в нём в рута (командой su -) и выполняем команду:
chmod a+x /tmp/VBoxLinuxAdditions-x86.run /tmp/VBoxLinuxAdditions-x86.run
- Далее исполняется скрипт, который сам все распакует, скомпилирует и установит.
- Убеждаемся, что в гостевом Линуксе xorg.conf прописаны драйвер vboxvideo для видео и vboxmouse для мышки.
- Перезагружаем виртуальную машину.
- Наслаждаемся автоизменением размеров окна, и "незалипающей" мышкой.
Примечания
- ↑ Идеологически правильно дождаться, пока мэйнтейнер соберёт новую версию драйверов в дистрибутив.