Создание виртуальной машины
Создание виртуальной машины с помощью утилиты virt-install
Одним из самых простых способов создания виртуальных машин с помощью командной
строки является утилита virt-install
.
Для вызова команды virt-install
используется стандартный синтаксис:
$ virt-install [аргументы]
virt-install
поддерживает как графический режим установки операционной
системы с использованием протоколов VNC или SPICE, так и установку в текстовом
режиме с помощью последовательной консоли. Во время создания виртуальной машины
она может быть настроена на использование одного или нескольких дисков,
сетевых интерфейсов, аудио устройств, аппаратных USB или PCI устройств и т.д.
В качестве установочного носителя может использоваться ISO-образ или
виртуальный CD-ROM накопитель, установочное дерево дистрибутива, доступное по
протоколам HTTP, HTTPS, FTP либо размещённое локально. Также поддерживается
сетевая загрузка с использованием протокола PXE, импорт готовых образов дисков,
полностью автоматическая установка операционной системы с помощью kickstart-файлов или опции --unattended
.
Аргументы командной строки virt-install
У многих аргументов команды virt-install
есть дополнительные параметры,
которые указываются следующим образом: --аргумент опция1=значение опция2=значение
.
Используйте синтаксис --аргумент=?
чтобы увидеть полный список таких
параметров, например:
$ virt-install --disk=?
Большинство аргументов virt-install
являются опциональными. В случае
задания значения опции --os-variant
либо успешного автоматического
определения типа гостевой системы, для таких аргументов будут использованы
соответствующие значения по умолчанию, определённые профилем устанавливаемой
операционной системы. Профили предоставляются пакетом osinfo-db
. В случае
отсутствия профиля для устанавливаемой ОС потребуется определить как минимум
следующие опции: --memory
, настройки хранилища (--disk
или --filesystem
)
и метод установки (--cdrom
, --location
).
При установке МСВСфера ОС через профили используются следующие значения:
jeos
— минимальная серверная конфигурация МСВСФера 9 Сервер.desktop
— конфигурация для рабочих станций МСВСфера 9 АРМ.
Аргументы, передаваемые утилите virt-install
, можно условно сгруппировать по
их назначению:
Параметры подключения — определяют тип используемого гипервизора и путь (ссылку) для подключения к нему.
Общие параметры — общие параметры, применимые ко всем типам гостевых систем.
Параметры установки — определяют каким образом будет выполняться установка гостевой операционной системы.
Параметры гостевой системы — задают тип устанавливаемой операционной системы либо управляют настройками автоматического определения типа.
Параметры хранилища — опции, связанные с настройкой хранилища виртуальной машины.
Параметры сети — опции, связанные с настройкой сети виртуальной машины;
Параметры графики — опции, связанные с настройкой графической подсистемы виртуальной машины.
Параметры виртуализации — опции для переопределения используемого механизма виртуализации.
Параметры устройств — опции для подключения физических и виртуальных устройств к виртуальной машине.
Другие опции — опции, не вошедшие ни в одну из предыдущих групп.
Примеры использования virt-install
Следующая команда создаст в пользовательской сессии QEMU виртуальную машину msvsphere-9-server
с двумя гигабайтами оперативной памяти,
двумя виртуальными процессорами и виртуальным qcow2-диском объёмом двадцать
гигабайт. Виртуальная машина будет запущена в режиме BIOS, в качестве
установочного носителя будет использован ISO-образ
/srv/iso/MSVSphere-9.5-x86_64-server.iso
:
$ virt-install --name msvsphere-9-server \
--cdrom /srv/iso/MSVSphere-9.5-x86_64-server.iso \
--memory 2048 --vcpus 2 --disk size=20 --os-variant msvsphere9
Установка операционной системы МСВСфера 9 в режиме UEFI с отключённой поддержкой Secure Boot, в качестве источника установки используется установочное дерево дистрибутива, размещённое на официальном зеркале:
$ virt-install --name msvsphere-9-server \
--memory 2048 --vcpus 2 --disk size=20 --os-variant msvsphere9 \
--location https://repo1.msvsphere-os.ru/msvsphere/9/BaseOS/x86_64/os/ \
--boot uefi,loader=/usr/share/edk2/ovmf/OVMF_CODE.fd,loader_ro=yes,loader_type=pflash,nvram_template=/usr/share/edk2/ovmf/OVMF_VARS.fd,loader_secure=no
Следующая команда создаст виртуальную машину в
системной сессии QEMU и выполнит автоматическую установку операционной системы МСВСфера 9 в режиме
UEFI с включённой поддержкой Secure Boot, сценарий установки определён в
kickstart-файле msvsphere-9.ks
:
$ virt-install --name msvsphere-9-server --connect qemu:///system \
--memory 2048 --vcpus 2 --disk size=20 --os-variant msvsphere9 \
--location https://repo1.msvsphere-os.ru/msvsphere/9/BaseOS/x86_64/os/ \
--boot uefi,loader=/usr/share/edk2/ovmf/OVMF_CODE.secboot.fd,loader_ro=yes,loader_type=pflash,nvram_template=/usr/share/edk2/ovmf/OVMF_VARS.secboot.fd,loader_secure=yes \
--initrd-inject msvsphere-9.ks --extra-args "inst.ks=file:/msvsphere-9.ks"
Пример kickstart-файла (msvsphere-9.ks
в примере выше) для автоматической
установки системы в минимальной конфигурации без графического интерфейса:
# путь к установочному дереву дистрибутива
url --url https://repo1.msvsphere-os.ru/msvsphere/9/BaseOS/x86_64/kickstart/
# список репозиториев, которые необходимо подключить во время установки
repo --name=BaseOS --baseurl=https://repo1.msvsphere-os.ru/msvsphere/9/BaseOS/x86_64/os/
repo --name=AppStream --baseurl=https://repo1.msvsphere-os.ru/msvsphere/9/AppStream/x86_64/os/
# выполнять установку в текстовом режиме
text
# не выполнять настройку графического сервера Xorg/Wayland
skipx
# автоматически принимать условия лицензии
eula --agreed
# не запускать ассистента по настройке во время первого запуска
firstboot --disabled
# использовать английский язык как во время установки, так и на установленной
# системе. Дополнительно включить поддержку русского языка
lang en_US --addsupport=ru_RU
# настраивает раскладку клавиатуры, в данном случае будет использоваться только
# английская в американском варианте
keyboard us
# установить часовой пояс в московское время (GMT+3), флаг --utc указывает на
# то, что аппаратные часы хранят время в часовом поясе UTC
timezone Europe/Moscow --utc
# автоматически настроить сеть используя протокол DHCP
network --bootproto=dhcp
# включить брандмауэр и отрыть доступ по протоколу SSH
firewall --enabled --service=ssh
# отключить службу kdump и включить службы chronyd, rsyslog и sshd
services --disabled="kdump" --enabled="chronyd,rsyslog,sshd"
# включить SELinux
selinux --enforcing
# настроить вывод на последовательный порт чтобы можно было подключаться к
# консоли виртуальной машины без графической сессии
bootloader --timeout=1 --append="console=tty0 console=ttyS0,115200n8 no_timer_check crashkernel=auto net.ifnames=0"
# использовать только диск /dev/vda во время установки
ignoredisk --only-use=vda
# создать новую таблицу разделов на диске /dev/vda
clearpart --initlabel --drives=vda
# использовать автоматическую разбивку диска без отдельного раздела /home
autopart --nohome
# заблокировать вход пользователем root
rootpw --lock
# создать пользователя msvsphere с паролем msvsphere, сделать его
# администратором путём добавления в группу wheel
user --groups="wheel" --name msvsphere --password="msvsphere"
# автоматически перезагрузить систему после завершения установки и извлечь
# установочный носитель
reboot --eject
# блок %packages определяет какие пакеты, группы и модули необходимо установить.
# опция --inst-langs определяет список языков, для которых необходимо добавлять
# поддержку
%packages --inst-langs=en,ru
# установить пакеты из группы core
@core
# установить пакеты из группы guest-agents
@guest-agents
# установить пакеты самоидентификации серверного варианта МСВСфера ОС
sphere-release-identity-server
sphere-release-server
sphere-release
%end
# отключить расширение kdump
%addon com_redhat_kdump --disable
%end
На системах с графическим интерфейсом после запуска команды virt-install
автоматически запустится программа virt-viewer
, с помощью которой вы
сможете взаимодействовать с виртуальной машиной и выполнить установку
операционной системы:

На системах без графического интерфейса вы можете использовать последовательную
консоль, если устанавливаемая операционная система поддерживает такой режим. Для
большинства ОС на базе GNU/Linux будет достаточно передать следующие аргументы
команде virt-install
:
$ virt-install ... -console pty,target_type=virtio --graphics none \
--serial pty --extra-args 'console=ttyS0,115200n8'