VirtualBox (устарело): различия между версиями
м (→Решение проблем: Local IPI: и висим) |
м (→Установка Oracle Extension Pack: предупреждение насчёт старых версий) |
||
Строка 128: | Строка 128: | ||
* Intel PXE boot ROM с поддержкой контроллера E1000 | * Intel PXE boot ROM с поддержкой контроллера E1000 | ||
* экспериментальная поддержка «проброса» PCI с хост-системы | * экспериментальная поддержка «проброса» PCI с хост-системы | ||
'''Обратите внимание:''' если установлен и используется этот плагин, то обязательно обновить его до последней версии (скачать с virtualbox.org), иначе виртуальная машина начинает грузится и «схлопывается».[http://lists.altlinux.org/pipermail/community/2015-February/683600.html] | |||
== Установка проприетарной сборки VirtualBox == | == Установка проприетарной сборки VirtualBox == |
Версия от 23:22, 25 февраля 2015
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 адрес и другие настройки интерфейсу следует назначать средствами гостевой системы.
Решение проблем
- При запуске дистрибутивов на Седьмой платформе как гостевых ОС в VirtualBox после загрузки ядра показывается чёрный экран, в журнале пишется
Guest Log: BIOS: KBD: unsupported int 16h function 03
- Для современных ядер, на которых основаны дистрибутивы Седьмой платформы, нужно указывать в настройках виртуальной машины Система ⇒ Материнская плата ⇒ Чипсет: ICH9 (заодно там же включите IO APIC). По умолчанию в альтовом VirtualBox стоит PIIX3, что и является причиной указанного поведения.
- При запуске гостевой ОС на Седьмой платформе VirtualBox показывает сообщение о не достаточных правах доступа для /dev/vboxdrv и просит запустить "/etc/init.d/vboxdrv setup" которого нет
- Необходимо выполнить:
chkconfig virtualbox on service virtualbox start
- В гостевой ОС после выбора подсказки Установка или LiveCD чёрный экран и ничего не происходит.
- Выбирите PIIX3, и при запуске установки (или загрузки с LiveCD) выберите клавишеей F5 загрузка "Без локального APIC"
- В гостевой системе не работает звук
- Откройте регулятор громкости PulseAudio (pavucontrol) и на вкладке «Проигрывание» включите звук для виртуальной машины.
- Плохо работает микрофон в гостевой системе (заикается)
- Всё дело в PulseAudio. Для того, чтобы микрофон работал без заиканий, для виртуальной машины выставьте ALSA: Аудио ⇒ Аудиодрайвер: ALSA и выключите на время работы PulseAudio: в терминале
pulseaudio -k
- Если служба virtualbox запускается, но модули не загружаются, отключите автозапуск службы virtualbox и создайте файл /etc/modules-load.d/virtualbox.conf такого содержания
vboxdrv vboxpci vboxnetflt vboxnetadp
- Происходит зависание гостевой ОС на словах Local IPI:
- Это altbug #29344, исправлено в virtualbox-4.2.16-alt2 (но вовсе не факт, что в других дистрибутивах порядок).
Установка 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.
Если в системе установлена программа gksu или kdesudo, то VirtualBox попытается с их помощью поднять уровень привилегий для выполнения установки
На данный момент Oracle VM VirtualBox Extension Pack является единственным дополнением. Оно обеспечивает следующую функциональность:
- USB 2.0 EHCI
- VirtualBox Remote Desktop Protocol, VRDP
- Intel PXE boot ROM с поддержкой контроллера E1000
- экспериментальная поддержка «проброса» PCI с хост-системы
Обратите внимание: если установлен и используется этот плагин, то обязательно обновить его до последней версии (скачать с virtualbox.org), иначе виртуальная машина начинает грузится и «схлопывается».[2]
Установка проприетарной сборки 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
1. Установите модуль ядра kernel-modules-virtualbox-addition-<тип ядра> и вспомогательные пакеты для интеграции:
apt-get install kernel-modules-virtualbox-addition-$(uname -r|cut -f2,3 -d-) virtualbox-guest-additions xorg-drv-virtualbox
update-kernel
2. Выберите в Центре управления системой ⇒ Дисплей драйвер vboxvideo.
alterator-cmdline /x11 action write _objects driver driver vboxvideo
3. Перезагрузите гостевую систему или только сеанс
4. Включите в меню виртуальной машины:
- Устройства ⇒ Общий буфер обмена ⇒ Двунаправленный
- Устройства ⇒ Drag'n'Drop ⇒ Двунаправленный.
Общие папки
1. Установите в гостевой операционной системе дополнения гостевой операционной системы и virtualbox-guest-utils:
apt-get install kernel-modules-virtualbox-addition-$(uname -r | cut -d "-" -f2,3) virtualbox-guest-utils
Этот пункт не нужен, если уже установлен пакет virtualbox-guest-additions, как описано выше.
2. Добавьте в свойствах виртуальной машины (раздел «Общие папки») папку. Для этого выберите путь и укажите имя папки (по умолчанию используется имя последней папки в указанном пути). Если хотите чтобы папка осталась настроенной и после перезагрузки гостевой операционной системы, установите флажок «Создать постоянную папку».
3. Для монтирования общих папок VirtualBox должен быть загружен модуль vboxsf:
modprobe vboxsf
4. В гостевой операционной системе выполните
mount -t vboxsf <имя папки> /mnt
5. Общая папка становится доступна в /mnt.
Краткая инструкция для установки дополнений вручную
- Запускаем гостевой Линукс, и удаляем пакеты:
xorg-drv-vboxvideo
- Ставим пакет 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 для видео.
- Перезагружаем виртуальную машину.
- Наслаждаемся автоизменением размеров окна, и "незалипающей" мышкой.
Примечания
- ↑ Идеологически правильно дождаться, пока мейнтейнер соберёт новую версию драйверов в дистрибутив.