Благодаря своей бесплатности и открытости VirtualBox приобрёл значительную популярность в качестве системы виртуализации. Несмотря на то, что VirtualBox обладает удобным графическим интерфейсом, разработчики оставили возможность управления через консольные команды. Зачем? Для тех случаев, когда графический интерфейс недоступен. Как правило, это относится к серверам.
В этой небольшой статье мы создадим и настроим виртуальную машину в VirtualBox через терминал Linux. Для управления VirtualBox существует команда VBoxManage (естественно, она будет доступна только после установки VirtualBox в системе). Синтаксис команды выглядит так:
VBoxManage [общие_опции] [команда] [опции_команды]
Создание виртуальной машины
Задать местоположение каталога с виртуальными машинами можно командой вида:
vboxmanage setproperty machinefolder [путь_к_каталогу]
Например:
vboxmanage setproperty machinefolder /home/test/virtualbox/
При создании виртуальной машины нам нужно указать тип операционной системы, которая будет установлена на этой машине. Для просмотра доступных типов ОС используем команду:
vboxmanage list ostypes
Нас интересует пункт ID.
Если мы хотим создать виртуальную машину с 64-битной Windows 10, то идентификатор такой операционной системы будет Windows10_64, а команда будет выглядеть следующим образом:
vboxmanage createvm --name "Windows 10" --ostype "Windows10_64" --default --register
Имя машины можно задать произвольно. Последний ключ нужен для регистрации машины, без него будет создан только XML-файл с настройками.
Посмотреть информацию о свежесозданной машине можно командой:
vboxmanage showvminfo "Windows 10"
Также мы можем вывести список доступных нам виртуальных машин, чтобы убедиться, что новая машина в нём появилась:
vboxmanage list vms
Конечно, это ещё далеко не всё. Во-первых, наша виртуальная машина создалась с самыми минимальными характеристиками. Вы могли в этом уже убедиться. Во-вторых, нам нужно подсоединить к ней виртуальный накопитель.
Давайте дадим нашей виртуальной машине хотя бы 2 ГБ оперативной памяти:
vboxmanage modifyvm "Windows 10" --memory 2048
256 МБ видеопамяти:
vboxmanage modifyvm "Windows 10" --vram 256
А также предоставим доступ к двум ядрам CPU:
vboxmanage modifyvm "Windows 10" --cpus 2
После этого снова вводим:
vboxmanage showvminfo "Windows 10"
И видим, что настройки применились.
Теперь перейдём к накопителю, где будет храниться информация.
Создадим новый виртуальный накопитель для нашей машины:
vboxmanage createhd --filename "/home/test/virtualbox/Windows 10/Windows10.vdi" --size 10000 --format VDI
В команде мы указали путь к файлу накопителя, его размер в мегабайтах и тип накопителя.
Далее нам надо создать для нашей машины SATA-контроллер, к которому будет подсоединён накопитель.
vboxmanage storagectl "Windows 10" --name "SATA Controller" --add sata --controller IntelAhci
Подсоединяем к контроллеру накопитель:
vboxmanage storageattach "Windows 10" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium "/home/test/virtualbox/Windows 10/Windows10.vdi"
Однако, на виртуальной машине ещё не установлена операционная система. Ставить её мы будем из образа. А для этого нам понадобится IDE-контроллер:
vboxmanage storagectl "Windows 10" --name "IDE Controller" --add ide --controller PIIX4
Подключаем к нему образ с операционной системой:
vboxmanage storageattach "Windows 10" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium ~/Win10_1909_Russian_x64.iso
Теперь нужно озаботиться удалённым подключением к виртуальной машине, чтобы мы могли ею управлять.
Для включения удалённого доступа используем команду:
vboxmanage modifyvm "Windows 10" --vrde on
Просто так воспользоваться удалённым доступом у нас не получится — придётся установить Oracle VM VirtualBox Extension Pack.
Для начала проверим, что у нас установлено:
vboxmanage list extpacks
Нас интересует строка VRDE Module. В её значении должно присутствовать RDP, а не VNC.
Нам нужно скачать набор расширений. Качается он под ту версию VirtualBox, что у вас установлена. Скорее всего, вы знаете номер версии, но, если что, проверить его можно командой:
vboxmanage --version
После скачивания набора расширений устанавливаем его командой
sudo vboxmanage extpack install ~/Oracle_VM_VirtualBox_Extension_Pack-6.0.6.vbox-extpack
Придётся принять лицензионное соглашение и дождаться завершения установки.
Управление виртуальной машиной
Для запуска виртуальной машины используем команду:
vboxmanage startvm "Windows 10" --type headless
Далее для управления состояния виртуальной машины будем использовать команду controlvm.
Чтобы поставить машину на паузу, введём команду:
vboxmanage controlvm "Windows 10" pause
Для вывода из состояния паузы:
vboxmanage controlvm "Windows 10" resume
Для выключения виртуальной машины:
vboxmanage controlvm "Windows 10" poweroff
Для сохранения состояния виртуальной машины:
vboxmanage controlvm "Windows 10" savestate
Чтобы послать сигнал нажатия на кнопку выключения:
vboxmanage controlvm "Windows 10" acpipowerbutton
Для вывода виртуальной машины из состояния блокировки (например, если неожиданно была прервана подача электропитания):
vboxmanage startvm "Windows 10" --type emergencystop
Подключение ранее созданной виртуальной машины
Напоследок рассмотрим ситуацию, когда виртуальная машина у вас уже есть. Подключить её без использования графического интерфейса не так уж и сложно. Для этого используем команду registervm с указанием пути к файлу виртуальной машины:
vboxmanage registervm /home/test/virtualbox/macos/macos.vbox
Вместо заключения
В данной статье мы рассмотрели базовые операции с виртуальной машиной, которые можно совершить через терминал Linux. Были изучены создание виртуальной машины, её первоначальная настройка, подключение уже существующей виртуальной машины. Если вас заинтересовало управление VirtualBox через консоль, вы можете продолжить изучение возможностей команды vboxmanage самостоятельно.
Статьи по теме: