Virtualbox — Установка и настройка.

Установка, настройка, эксплуатация.
Ответить
Аватара пользователя
root
Site Admin
Сообщения: 501
Зарегистрирован: 15 авг 2026 01:31

Virtualbox — Установка и настройка.

Сообщение root »

Оглавление
Темы
Установка virtualbox
Устранение ошибок Virtualbox
Правка параметров по умолчанию Virtualbox (VirtualBox.xml)
Дополнительные материалы
Управление виртуальными машинами через скрипты
Управление VM VirtualBox из shell
Сначала нужно подключить репозиторий RPM Fusion, затем выполнить:

Код: Выделить всё

dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
Затем обновляем систему и устанавливаем VirtualBox с дополнительными компонентами:

Код: Выделить всё

dnf upgrade --refresh
dnf install gcc make kernel-devel kernel-headers
Для нормальной работы с USB устройствами и общими папками потребуется также добавить свой аккаунт в группу vboxusers и vboxsf:

Код: Выделить всё

usermod -a -G vboxusers $(whoami)
usermod -a -G vboxsf $(whoami)
Устанавливаем VirtualBox Guest Additions в гостевой системе

Код: Выделить всё

mount /dev/sr0 /mnt/
/mnt/VBoxLinuxAdditions.run
Команды для сборки модулей Virtualbox под свежеустановленное или обновлённое ядра

Код: Выделить всё

Чтобы собрать модули для других установленных ядер, запустите
/sbin/rcvboxadd quicksetup <version>
Или

Код: Выделить всё

/sbin/rcvboxadd quicksetup all
Сборка модулей для ядра
Аватара пользователя
root
Site Admin
Сообщения: 501
Зарегистрирован: 15 авг 2026 01:31

Сообщение root »


Доступ к USB-устройствам из виртуальной машины
Проверяем наличие группы vboxusers в системе и принадлежность к этой группе пользователя, от которого запускается VirtualBox

Код: Выделить всё

grep vboxusers /etc/group
groups sergey
virtualbox не видит USB-устройств для проброса в гостевую систему
??? Редактируем права virtualbox'а на устройства через udev
e /etc/udev/rules.d/60-vboxdrv.rules
меняем строку

Код: Выделить всё

KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0600"
на

Код: Выделить всё

KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="sergey", GROUP="vboxusers", MODE="0660"
перезапускаемся
Вариант для VirtualBox 6.0
Проверяем права на USB устройства.

Код: Выделить всё

ls -la /dev | grep vboxusb
У вас должно быть что-то вроде этого:

Код: Выделить всё

drwxr-x--- 10 root vboxusers 200 2018-10-30 07:57 vboxusb/
Далее приводим некоторые строки:

Код: Выделить всё

SUBSYSTEM=="usb_device", ACTION=="add", RUN+="/usr/lib/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"
SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN+="/usr/lib/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"
из файла /etc/udev/rules.d/60-vboxdrv.rules к виду:

Код: Выделить всё

SUBSYSTEM=="usb_device", ACTION=="add", RUN+="/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor vboxusers"
SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN+="/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor vboxusers 
перезагружаемся и смотрим что вышло
При запуске системы выдаётся на экран следующая простыня

Код: Выделить всё

e1000 0000:01:03.0: eth0: Detected Tx Unit Hang
Tx Queue             <0>
TDH                  <bd>
TDT                  <bd>
next_to_use          <bd>
next_to_clean        <73>
buffer_info[next_to_clean]
time_stamp           <5fd26739>
next_to_watch        <74>
jiffies              <5fd267fb>
next_to_watch.status <0>
e1000 0000:01:03.0: eth0: Detected Tx Unit Hang
Tx Queue             <0>
TDH                  <bd>
TDT                  <bd>
next_to_use          <bd>
next_to_clean        <73>
buffer_info[next_to_clean]
time_stamp           <5fd26739>
next_to_watch        <74>
jiffies              <5fd268c3>
next_to_watch.status <0>
e1000 0000:01:03.0: eth0: Detected Tx Unit Hang
Tx Queue             <0>
TDH                  <bd>
TDT                  <bd>
next_to_use          <bd>
next_to_clean        <73>
buffer_info[next_to_clean]
time_stamp           <5fd26739>
next_to_watch        <74>
jiffies              <5fd2698b>
next_to_watch.status <0>
Настраиваем параметры сетевой карты

Код: Выделить всё

ethtool -K eno1 gso off gro off tso off lro off
Меняем те же параметры в конфигурационном файле /etc/sysconfig/network-scripts/ifcfg-eth0

Код: Выделить всё

ETHTOOL_OPTS="speed 1000 duplex full"
При наличии этой строки и настроенном адаптере в режиме моста сыпятся подобные ошибки
Для решения данной проблемы можно использовать 2 варианта
  1. Либо дополнить строку параметрами

    Код: Выделить всё

     "gso off gro off tso off"
  2. Либо НЕ использовать опции вообще

    Код: Выделить всё

    #ETHTOOL_OPTS=...

failed to access perfctr msr ...
Сообщение сразу после выбора меню GRUB вызвано не верной настройкой паравиртуализации в свойствах виртуальной машины

Код: Выделить всё

failed to access perfctr msr (MSR c0010007 is 0)

Код: Выделить всё

Настроить (Виртуальную машину) => система => Ускорение
Параметр паравиртуализации: ПО УМОЛЧАНИЮ
Ошибка пересборки драйвера от virtualbox

Код: Выделить всё

vboxdrv.sh: failed: modprobe vboxnetadp failed. Please use 'dmesg' to find out why.
решается переустановкой драйвера в ручном режиме

Код: Выделить всё

/usr/lib/virtualbox/vboxdrv.sh setup

Номера версий
Определение номера версии установленного Virtualbox так же выводит информацию о несовпадении версий драйверов и самой программой (при наличии расхождений). Подобная ситуация возникает при ошибках сборки модулей под новую версию ядра
пример

Код: Выделить всё

VBoxManage --version

WARNING: The vboxdrv kernel module is not loaded. Either there is no module
         available for the current kernel (4.9.0-6-amd64) or it failed to
         load. Please recompile the kernel module and install it by

           sudo /sbin/vboxconfig

         You will not be able to start VMs until this problem is fixed.
5.2.18r124319
Если разницы в версиях нет, то выдаётся просто версия virtualbox

Код: Выделить всё

VBoxManage --version
5.2.18r124319
Посмотреть версию загруженных драйверов от Virtualbox можно так:

Код: Выделить всё

lsmod | grep -io vboxdrv | xargs modinfo | grep -iw version

Настройка разрешения монитора виртуальной машины
Для начала нужно выставить настройки дисплея видео память (я ставлю на макс), коэфф. масштабирования 100%, VBoxSVGA, 3D ускорение.
На хостовой машине выставляем необходимое разрешение монитора для виртуальной машины

Код: Выделить всё

VBoxManage controlvm "server-gns" setvideomodehint 1600 900 32
Ставим или переустанавливаем virtualbox-guest-additions
Перезапускаем виртуальную машину и убеждаемся что окно не схлопывается
Отсутствует связь с хостовой машиной в режиме моста
Для беспрепятственного хождения трафика между хостовой системой и гостевой нужно в свойствах виртуальной машины выставить опцию "неразборчивый режим" в положение "разрешить всё"
Настройки для сетевого подключения в режиме моста
Настройки для сетевого подключения в режиме моста
Аватара пользователя
root
Site Admin
Сообщения: 501
Зарегистрирован: 15 авг 2026 01:31

Сообщение root »

Для облегчения процесса создания новых виртуальных машин можно воспользоваться изменением заданных по умолчанию параметров. Для этого нужно внести соответствующие изменение с файл конфигурации VirtualBox.xml, расположенный в катаалоге

Код: Выделить всё

~/.config/VirtualBox/VirtualBox.xml
Если на виртуальных машинах используется разрешение экрана отличное от дефолтного, от можно попробовать указать нужное Вам разрешение и оно будет применяться при создании новых виртуальных машин. Для этого вносим следующие переметы

Код: Выделить всё

<?xml version="1.0"?>
<!--
** DO NOT EDIT THIS FILE.
** If you make changes to this file while any VirtualBox related application
** is running, your changes will be overwritten later, without taking effect.
** Use VBoxManage or the VirtualBox Manager GUI to make changes.
-->
<VirtualBox xmlns="http://www.virtualbox.org/" version="1.12-linux">
  <Global>
    <ExtraData>
...
      <ExtraDataItem name="GUI/MaxGuestResolution" value="1600,900"/>
...
      <ExtraDataItem name="VBoxInternal2/EfiGraphicsResolution" value="1600x900"/>
    </ExtraData>
...
  </Global>
</VirtualBox>
Параметр "GUI/MaxGuestResolution" меняет разрешение для машин с BIOS. а "VBoxInternal2/EfiGraphicsResolution" оказывает влияние на машины с UEFI
Ответить