Создание виртуальных машин VirtualBox из командной строки. Ubuntu Server 16.04 LTS и Windows 10 Pro

Для домашней “лаборатории” понадобилось поднять 2 виртуальные машины – Windows 10 как рабочая станция и Ubuntu Server 16.04 LTS. Точнее, VM с Windows переносилась с OS X, где она стала есть слишком много места, да и старенький MacBook Air с 4ГБ памяти не очень хорошо справляется с подобным довеском. По-этому было решено машины перенести в домашнее “облако” и работать через RDP. “Облаком” выступил тоже достаточно потертый жизнью Dell Inspiron, набитый памятью под завязку. PAE, аппаратная виртуализация и 64 бита оказались очень кстати.

$ VM='ubuntu1604lts'
$ mkdir /data/vm/$VM
$ cd /data/vm/$VM

Образ диска, динамический до 50ГБ:
$ VBoxManage createhd --filename $VM.vdi --size 50000

Список поддерживаемых типов систем:
$ VBoxManage list ostypes

Создаем VM Ubuntu 64–bit с указанием базового каталога. В противном случае все окажется в домашнем каталоге:
$ VBoxManage createvm --name $VM --ostype Ubuntu_64 --register --basefolder /data/vm

Что получилось:
$ VBoxManage showvminfo $VM

Укажем размер памяти, укажем порт RDP для начальной установки, подключим диски по SATA, укажем желаемый чипсет и создадим сетевой интерфейс через бриджирование, по-старинке. Если есть графический интерфейс, то там VirtualBox легко бриджируется с любым адаптером, но вот на безголовом сервере разбираться с этим не хотелось.
$ VBoxManage modifyvm $VM --memory 4096 --boot1 dvd --vrde on --vrdeport 5001
$ VBoxManage storagectl $VM --name "ubuntu1604_SATA" --add sata
$ VBoxManage storageattach $VM --storagectl ubuntu1604_SATA --port 1 --type hdd --medium /data/vm/$VM/$VM.vdi
$ VBoxManage storageattach $VM --storagectl ubuntu1604_SATA --port 0 --type dvddrive --medium /data/install/ubuntu-16.04.4-server-amd64.iso
$ VBoxManage modifyvm $VM --chipset ich9
$ VBoxManage modifyvm $VM --nic1 bridged --bridgeadapter1 br0

Запускаем, настраиваем. Закрытие терминальной сессии убьет работу виртуальной машины. Так что либо держим открытую сессию, либо вспоминаем древний GNU screen.
$ screen
$ VBoxHeadless -s ubuntu1604lts&

Подключаемся при помощи официального клиента “Microsoft Remote Desktop”, благо на OS X он работает достаточно неплохо.

С виртуальной машиной MS Windows дело обстоит несколько сложнее – придется воссоздать рабочую конфигурацию на новом месте. В противном случае “Тамагочи” не запустится. Вроде бы стандартная процедура экспорта-импорта VM не прошла, я получил нерабочий образ диска.

$ VM='win10pro'
$ mkdir /data/vm/$VM
$ VBoxManage createvm --name $VM --ostype Windows10_64 --register --basefolder /data/vm
$ VBoxManage modifyvm $VM --memory 4096 --boot1 disk --vrde on --vrdeport 5002
$ VBoxManage storageattach $VM --storagectl win10pro_SATA --port 1 --type hdd --medium /data/vm/$VM/win10pro_2.vdi
$ VBoxManage storageattach $VM --storagectl win10pro_SATA --port 0 --type dvddrive --medium /data/install/Win10_1803_English_x64.iso
$ VBoxManage modifyvm $VM --chipset ich9
$ VBoxManage modifyvm $VM --nic1 bridged --bridgeadapter1 br0
$ VBoxManage modifyvm win10pro --paravirtprovider hyperv

На удивление все запустилось с первого раза.
$ VBoxHeadless -s win10pro&

Донастройка и смена сетевого адреаса на статический по RDP.

Просто несколько полезных команд посмотреть что у нас с дисками, виртуалками и что работает:
$ VBoxManage list hdds
$ VBoxManage list runningvms
$ VBoxManage list vms -l

Снапшоты делаю по мере необходимости, больше для самоуспокоения. Но после окончания установки – обязательно:
$ VBoxManage snapshot ubuntu1604lts take "ubuntu1604lts_2018.07.12" --description "Initial"
$ VBoxManage snapshot win10pro take "win10pro_2018.07.12" --description "Initial"

Полезные ссылки:

Create VirtualBox VM from the command line
Create VirtualBox Guest Machines On Ubuntu 16.04 LTS Server (Headless)

Leave a comment

Your comment