VirtualBox (устарело): различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 9: Строка 9:
Чтобы воспользоваться Virtualbox, необходимо установить следующий набор пакетов:
Чтобы воспользоваться Virtualbox, необходимо установить следующий набор пакетов:


  virtualbox-2.1.4-alt5
  virtualbox-версия программы
  virtualbox-common-2.1.4-alt5
virtualbox-common-версия программы
  kernel-modules-virtualbox-std-def-2.1.4-alt1.132635
  virtualbox-doc-версия программы
kernel-modules-virtualbox-std-def-версия программы
  kernel-modules-virtualbox-addition-std-def-версия программы
virtualbox-guest-additions-версия программы


При этом, они должны быть строго одной версии (2.1.4 в данном случае) и модуль ядра должен быть строго версии для вашего ядра (std-def в данном случае).
Пример:
 
kernel-modules-virtualbox-addition-std-def-4.1.4-alt0.M60P.196628.0.M60P.1
kernel-modules-virtualbox-addition-std-def-4.1.4-alt3.196654.0.M60P.1
kernel-modules-virtualbox-std-def-4.1.4-alt2.196654.0.M60P.1
virtualbox-4.1.4-alt0.M60P.1
virtualbox-common-4.1.4-alt0.M60P.1
virtualbox-doc-4.1.4-alt0.M60P.1
virtualbox-guest-additions-4.1.4-alt0.M60P.1
 
При этом, они должны быть строго одной версии (4.1.4 в данном случае)
Модуль ядра должен быть строго версии для вашего ядра (std-def в данном случае).
Чтобы это обеспечить, ядро и пакеты необходимо устанавливать из одного и того же репозитория.
Чтобы это обеспечить, ядро и пакеты необходимо устанавливать из одного и того же репозитория.
Узнать версию загруженного ядра можно так:
Узнать версию загруженного ядра можно так:


  $uname -r
  $ uname -r  
  2.6.27-std-def-alt15
  3.0.46-std-def-alt0.M60P.1


Если у вас в виртуальной машине (гостевая система) тоже ALTLinux, то можно установить в ней "дополнения гостевой системы":
Если у вас в виртуальной машине (гостевая система) тоже ALTLinux, то можно установить в ней "дополнения гостевой системы":


  kernel-modules-virtualbox-addition-std-def-2.1.4-alt1.132635.15
  kernel-modules-virtualbox-addition-std-def-версия программы
  virtualbox-guest-additions-2.1.4-alt5
  virtualbox-guest-additions-версия программы


Virtualbox использует для работы устройство
Virtualbox использует для работы устройство:


  $ ls -l /dev/vboxdrv
  $ ls -l /dev/vboxdrv
  crw-rw---- 1 root vboxusers 10, 58 Май  5 08:46 /dev/vboxdrv
  crw-rw---- 1 root vboxusers 10, 58 Май  5 08:46 /dev/vboxdrv


поэтому необходимо включить своего пользователя в группу vboxusers
Проверяем список установленных пакетов:
 
$ rpm -qa | grep virtual-*
kernel-modules-virtualbox-addition-std-def-4.1.4-alt0.M60P.196628.0.M60P.1
virtualbox-doc-4.1.4-alt0.M60P.1
kernel-modules-virtualbox-std-def-4.1.4-alt2.196654.0.M60P.1
virtualbox-4.1.4-alt0.M60P.1
virtualbox-guest-additions-4.1.4-alt0.M60P.1
kernel-modules-virtualbox-addition-std-def-4.1.4-alt3.196654.0.M60P.1
virtualbox-common-4.1.4-alt0.M60P.1
 
Включаем своего пользователя в группу vboxusers и vboxadd


  gpasswd -a user vboxusers
  gpasswd -a user vboxusers
gpasswd -a user vboxadd (Slinux 3.0.46-std-def-alt0.M60P.1)
Для работы с usb устройствами необходимо настроить fstab:
1. В конец /etc/fstab добавляем
  none /proc/bus/usb/ usbfs  devgid=500,devmode=666 0 0 где devgid=идентификатор пользователя (Slinux 3.0.46-std-def-alt0.M60P.1)
2. Перезагружаем систему


и перелогиниться.
После чего, можно запускать Virtualbox, например, в KDE из меню: K- Система — Виртуализатор Virtualbox.
После чего, можно запускать Virtualbox, например, в KDE из меню: K- Система — Виртуализатор Virtualbox.



Версия от 09:55, 20 октября 2012

Логотип Википедии
В Википедии есть обзорная статья по теме «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-версия программы
virtualbox-common-версия программы
virtualbox-doc-версия программы
kernel-modules-virtualbox-std-def-версия программы
kernel-modules-virtualbox-addition-std-def-версия программы
virtualbox-guest-additions-версия программы

Пример:

kernel-modules-virtualbox-addition-std-def-4.1.4-alt0.M60P.196628.0.M60P.1
kernel-modules-virtualbox-addition-std-def-4.1.4-alt3.196654.0.M60P.1
kernel-modules-virtualbox-std-def-4.1.4-alt2.196654.0.M60P.1
virtualbox-4.1.4-alt0.M60P.1
virtualbox-common-4.1.4-alt0.M60P.1
virtualbox-doc-4.1.4-alt0.M60P.1
virtualbox-guest-additions-4.1.4-alt0.M60P.1

При этом, они должны быть строго одной версии (4.1.4 в данном случае) Модуль ядра должен быть строго версии для вашего ядра (std-def в данном случае). Чтобы это обеспечить, ядро и пакеты необходимо устанавливать из одного и того же репозитория. Узнать версию загруженного ядра можно так:

$ uname -r 
3.0.46-std-def-alt0.M60P.1

Если у вас в виртуальной машине (гостевая система) тоже ALTLinux, то можно установить в ней "дополнения гостевой системы":

kernel-modules-virtualbox-addition-std-def-версия программы
virtualbox-guest-additions-версия программы

Virtualbox использует для работы устройство:

$ ls -l /dev/vboxdrv
crw-rw---- 1 root vboxusers 10, 58 Май  5 08:46 /dev/vboxdrv

Проверяем список установленных пакетов:

$ rpm -qa | grep virtual-*
kernel-modules-virtualbox-addition-std-def-4.1.4-alt0.M60P.196628.0.M60P.1
virtualbox-doc-4.1.4-alt0.M60P.1
kernel-modules-virtualbox-std-def-4.1.4-alt2.196654.0.M60P.1
virtualbox-4.1.4-alt0.M60P.1
virtualbox-guest-additions-4.1.4-alt0.M60P.1
kernel-modules-virtualbox-addition-std-def-4.1.4-alt3.196654.0.M60P.1
virtualbox-common-4.1.4-alt0.M60P.1

Включаем своего пользователя в группу vboxusers и vboxadd

gpasswd -a user vboxusers
gpasswd -a user vboxadd (Slinux 3.0.46-std-def-alt0.M60P.1)

Для работы с usb устройствами необходимо настроить fstab:

1. В конец /etc/fstab добавляем

  none /proc/bus/usb/ usbfs  devgid=500,devmode=666 0 0 где devgid=идентификатор пользователя (Slinux 3.0.46-std-def-alt0.M60P.1)

2. Перезагружаем систему

После чего, можно запускать 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 для мышки.
  • Перезагружаем виртуальную машину.
  • Наслаждаемся автоизменением размеров окна, и "незалипающей" мышкой.

Примечания

  1. Идеологически правильно дождаться, пока мэйнтейнер соберёт новую версию драйверов в дистрибутив.