IT Инструкции
В данной статье представленно краткое описание команд для создания и управления виртульными машинами через терминал Linux.
Для начала необходимо осмотреться, просмотреть свойства системы, а так же список типов поддерживаемых ОС
vboxmanage list systemproperties
vboxmanage list ostypes
- —cpus — кол-во процессоров;
- —memory — выделяемая память ОЗУ;
- —audio поддержка звука;
- —usb поддержка usb контроллера;
- —boot1 устройство с которого происходит загрузка (dvd, hdd);
- —nic1 тип сетевого подключения: bridged — сетевой мост; nat — NAT.
- —stiragectl — наименование контроллера;
- —port — номер порта;
- —device — номер устройства;
- —type — тип устройства;
- —medium — расположение файла жесткого диска.
vboxmanage list runningvms
«VMT»
Просмотр доступных USB устройств осуществляется командой
vboxmanage list usbhost
Изначально usb устройства доступны только под правами суперпользователя, для того, что бы устройства были видны вашему пользователю его необходимо добавить в групу vboxusers, после этого желательно перезагрузится.
теперь когда устройсва доступны мы получаем следующий ответ:
UUID: 8eaa2ee4-108d-4761-aaf6-60994b88b18e
VendorId: 0x0951 (0951)
ProductId: 0x1642 (1642)
Revision: 1.0 (0100)
Port: 4
USB version/speed: 2/High
Manufacturer: Kingston
Product: DT 101 G2
SerialNumber: 001CC07CEB7FFBB0691E2397
Address: sysfs:/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5//device:/dev/vboxusb/002/006
Current State: Busy
Интересуют первые три строки: UUID, Vendorid, productid.
Для того, что бы подключить интересующие нас устройство к виртульной машине используется следующая команда:
vboxmanage controlvm VMT usbattach «UUID»
Для отключения:
vboxmanage controlvm VMT usbdetach «UUID»
В случае если нам нужно что-бы usb устройство подключалось как только включается ВМ (например подключение ключей программного обеспечения) используется следующая команда:
vboxmanage usbfilter add 1 —target «VMT» —name usbfl —vendorid 0951 —productid 1642
- add — порядковый номер (0-N);
- —target — имя ВМ;
- —name — Наименованеи фильтра;
- —vendorid — вендор ID usb устройства;
- —productid — ID продукта usb устройства.
Для автозапуска ВМ прощего всего написать небольшой скрипт и добавить его в Crontab. Текст простейшего скрипта
#/bin/sh
sleep 120s //Пауза необходимо выдержать время после запуска физичской машины.
vboxmanage startvm VMT —type headless // команда на запуск ВМ
Далее выполняем команду:
crontab -e
и в самы конец дописываем
@reboot sh /путь к скрипту
На этом все, все выполненые действия возможно просмотреть на видео:
Управляем VirtualBox через консоль
Благодаря своей бесплатности и открытости VirtualBox приобрёл значительную популярность в качестве системы виртуализации. Несмотря на то, что VirtualBox обладает удобным графическим интерфейсом, разработчики оставили возможность управления через консольные команды. Зачем? Для тех случаев, когда графический интерфейс недоступен. Как правило, это относится к серверам.
В этой небольшой статье мы создадим и настроим виртуальную машину в VirtualBox через терминал Linux. Для управления VirtualBox существует команда VBoxManage (естественно, она будет доступна только после установки VirtualBox в системе). Синтаксис команды выглядит так:
VBoxManage [общие_опции] [команда] [опции_команды]
Создание виртуальной машины
Задать местоположение каталога с виртуальными машинами можно командой вида:
vboxmanage setproperty machinefolder [путь_к_каталогу]
vboxmanage setproperty machinefolder /home/test/virtualbox/
При создании виртуальной машины нам нужно указать тип операционной системы, которая будет установлена на этой машине. Для просмотра доступных типов ОС используем команду:
Нас интересует пункт ID.
Если мы хотим создать виртуальную машину с 64-битной Windows 10, то идентификатор такой операционной системы будет Windows10_64, а команда будет выглядеть следующим образом:
vboxmanage createvm --name "Windows 10" --ostype "Windows10_64" --default --register
Имя машины можно задать произвольно. Последний ключ нужен для регистрации машины, без него будет создан только XML-файл с настройками.
Посмотреть информацию о свежесозданной машине можно командой:
vboxmanage showvminfo "Windows 10"
Также мы можем вывести список доступных нам виртуальных машин, чтобы убедиться, что новая машина в нём появилась:
Конечно, это ещё далеко не всё. Во-первых, наша виртуальная машина создалась с самыми минимальными характеристиками. Вы могли в этом уже убедиться. Во-вторых, нам нужно подсоединить к ней виртуальный накопитель.
Давайте дадим нашей виртуальной машине хотя бы 2 ГБ оперативной памяти:
vboxmanage modifyvm "Windows 10" --memory 2048
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.
Для начала проверим, что у нас установлено:
Нас интересует строка VRDE Module. В её значении должно присутствовать RDP, а не VNC.
Нам нужно скачать набор расширений. Качается он под ту версию VirtualBox, что у вас установлена. Скорее всего, вы знаете номер версии, но, если что, проверить его можно командой:
После скачивания набора расширений устанавливаем его командой
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 самостоятельно.
Управление VirtualBox с помощью консоли
Скачиваем с официального сайта VirtualBox пакет для Ubuntu 9.04
После того, как скачали, выполняем комманду:
dpkg -i virtualbox-2.2_2.2.2-46594_Ubuntu_jaunty_i386.deb
VirtualBox должен установится. Если возникла проблемы при установке пакета, изучите сообщение об ошибках. Возможно у вас не установлены необходимые пакеты. В моем случае у меня не был установлен пакет libxslt1.1, что моментально было исправлено командой sudo apt-get install libxslt1.1 .
Добавляем себя в группу vboxusers
sudo usermod -a -G vboxusers имя_пользователя
Создание виртуальной машины
- Для начала создадим машину и сразу её зарегистрируем
VBoxManage createvm -name имя_виртуальной_машины -register - Далее необходимо создать диск для машины
VBoxManage createhd —filename имя_диска —size размер_диска_в_мегабайтах
Существует возможность выбрать тип диска VDI (VirtualBox), VMDK (VMWare), VHD (Microsoft Virtual PC). По умолчанию, конечно же, VDI :). - Делаем дополнительные настройки нашей виртуальной машины. Укажем:
- Тип гостевой ОС. Для получения списка поддерживаемых ОС выполните команду VBoxManage list ostypes
- Размер выделяемой памяти
- Наименование главного диска
- Возможность использовать VRDP (VirtualBox Remote Desktop Protocol)
VBoxManage modifyvm имя_виртуальной_машины —ostype тип_ОС —memory размер_памяти_в_мегабайтах —hda имя_диска —vrdp on
- Подключим образ диска, с которого будем ставить Windows XP
- Зарегестрируем DVD с образом дистрибутива системы
VBoxManage openmedium путь_до_образа - Вставим наш диск в виртуальный привод
VBoxManage modifyvm WindowsXP —dvd путь_до_образа
- Зарегестрируем DVD с образом дистрибутива системы
- Посмотрим на настройки нашей машины. Убеждаемся, что все нас устраивает и…
VBoxManage showvminfo имя_машины
… Запуск… Поехали
Чтобы запустить виртуальную машину надо выполнить
VBoxManage startvm имя_машины —type vrdp
Параметр —type vrdp нужен, чтобы подключиться к машине с помощью VRDP
Все, теперь осталось подключится к нашей машине, с помощью удаленного рабочего стола. Это можно сделать с помощью стандартных утилит: для windows это mstsc, для никсовых систем rdesktop.Т.к. у нас есть только консоль, то надо воспользоваться компьютером, имеющим графический рабочий стол.
Чтобы подключится, надо указывать IP хост машины и порт для данной виртуальной машины. В моем случае, я ничего не менял и использовал порт по умолчанию (3389). Чтобы изменить порт, выполните VBoxManage —vrdpport порт . Если у Вас установлено несколько виртуальных машин, то для того, чтобы подключаться к каждой их них, необходимо в настройках указать различные порты, например, для первой машины 3389, для второй 3390 и т.п.
Вместо эпилога
Теперь у нас запущена виртуальная машина и мы к ней спокойно можем подключаться используя протокол VRDP. Я спокойно установил Window XP, находясь за своим рабочим компьютером.
P.S. Windows XP была нужна только по одной причине. В проекте нужно было использовать MS SQL Server.
Полезные ссылки:
UPD: bsdemon предложил ещё один способ. Использовать libvirt