Как включить вложенную виртуализацию в VirtualBox
В этом кратком руководстве описывается, как включить вложенную виртуализацию в VirtualBox в Linux. Вложенная виртуализация — это функция, которая позволяет нам запускать виртуальные машины внутри виртуальных машин. Например, предположим, что вы запускаете виртуальную машину CentOS с использованием Oracle VirtualBox в своей системе Ubuntu Linux. Если в вашей Ubuntu включена вложенная функция VT, вы можете установить виртуальный бокс или KVM на виртуальную машину CentOS и запускать внутри нее другие виртуальные машины. По сути, это метод запуска среды виртуализации внутри другой среды виртуализации.
Включить вложенную виртуализацию в VirtualBox
Начиная с версии 6.1, Oracle VirtualBox поддерживает функцию вложенной виртуализации в хост-системах, работающих на процессорах AMD и Intel. Поэтому убедитесь, что у вас установлена последняя версия виртуального бокса.
Мы можем включить вложенную функцию либо из командной строки, либо из графического интерфейса. Во-первых, давайте посмотрим на командную строку.
1. Включите функцию вложенной виртуализации для виртуальной машины VirtualBox из командной строки.
Сначала найдем список доступных виртуальных машин с помощью команды:
vboxmanage list vms
Пример вывода:
"CentOS 8 Server" {73997fc7-4ae2-42bf-a11d-fcbe00721e13}
"Ubuntu 20.04 Server" {a7cab540-51c2-4110-b489-a4ad13b71f96}
Получение списка доступных виртуальных машин VirtualBox
Как видите, я создал две виртуальные машины в своем Virtualbox.
Теперь я собираюсь включить вложенную функцию для виртуальной машины CentOS 8 с помощью команды:
VBoxManage modifyvm "Ubuntu 20.04 Server" --nested-hw-virt on
Также вы можете использовать команду vboxmanage в нижнем регистре:
vboxmanage modifyvm "Ubuntu 20.04 Server" --nested-hw-virt on
Эта команда включает вложенную виртуализацию с передачей функций аппаратной виртуализации на гостевую виртуальную машину.
Здесь я взял имя виртуальной машины в кавычки, поскольку оно содержит пробелы. Если в имени нет пробелов, его не нужно указывать в кавычках.
2. Включите функцию вложенной виртуализации для виртуальной машины VirtualBox из графического интерфейса.
Откройте диспетчер VirtualBox либо из Dash, либо из меню. Нажмите на виртуальную машину, в которой вы хотите включить вложенную функцию, а затем выберите «Настройки».
Настройки виртуальной машины в virtualbox
Перейдите в «Система -> Процессор» и установите флажок «Включить вложенный VT-x/AMD-V». Нажмите ОК, чтобы сохранить изменения.
Включить вложенную виртуализацию в диспетчере виртуальных боксов.
С этого момента эта виртуальная машина будет действовать как гипервизор, так что вы сможете запускать виртуальные машины внутри нее.
Как я уже упоминал, функция Nested VT доступна в хост-системах с процессорами AMD и Intel. Однако для процессоров Intel эта опция неактивна. Таким образом, вы не можете включить его напрямую из диспетчера Virtualbox.
Опция «Включить вложенный VT-x» неактивна в виртуальном боксе.
Чтобы включить вложенную функцию на процессорах Intel, следуйте инструкциям в командной строке, как описано в предыдущем разделе.
4. Убедитесь, что для виртуальных машин включена вложенная виртуализация.
Запустите виртуальную машину, в которой вы только что включили вложенную функцию.
Войдите в виртуальную машину и выполните следующую команду, чтобы проверить, включена ли вложенная функция:
egrep --color -i "svm|vmx" /proc/cpuinfo
Проверьте, включена ли вложенная виртуализация в виртуальной машине virtualbox.
Если вы видите “vmx” (технология Intel-VT) или “svm” (поддержка AMD-V) в выходных данных, гостевая машина VirtualBox может работать как гипервизор и размещать виртуальные машины. Как вы можете видеть из приведенного выше вывода, моя виртуальная машина Ubuntu 20.04 поддерживает виртуализацию.
Ознакомьтесь со следующим руководством, чтобы узнать больше о способах проверить, поддерживает ли система Linux VT или нет.
- Как узнать, поддерживает ли процессор технологию виртуализации (VT)
Связанное чтение:
- Как включить вложенную виртуализацию в KVM в Linux
- Как включить вложенную виртуализацию в Proxmox VE