Для установки и функционирования vESBC установленная версия QEMU должна быть не ниже 2.6.2.
Полный список комад QEMU предоставляется в официальной документации.
В примере описан процесс создания файла образа диска в формате QCow2 и подключения его в хостовой операционной системе.
Для того чтобы создать файл образа диска, необходимо выполнить команду:
qemu-img create -f qcow2 -o size=<размер_диска>M <наименование_диска>.qcow2 |
Пример:
admin@host:~$ qemu-img create -f qcow2 -o size=2000M vesbc.qcow2 admin@host:~$ Formatting 'vesbc.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=393216000 lazy_refcounts=off refcount_bits=16 |
Для запуска установки vESBC необходимо выполнить команду:
sudo qemu-system-x86_64 --enable-kvm -cpu <CPU> -smp <количество_CPU> -m <размер_RAM>G -nic <тип и параметры сетевой карты> <наименование_диска>.qcow2 -boot d -cdrom <имя_ISO-образа> |
где:
--enable-kvm — включение полной поддержки виртуализации KVM;
-cpu — модель процессора, например, параметр -cpu host передает виртуальной машине все возможности, флаги и инструкции (например, AES-NI, AVX, VT-x) вашего реального физического процессора;
-smp — включение имитации SMP-системы с n CPU;
-m — выбор размера виртуальной RAM;
-nic — настройки сетевой карты;
-boot — выбор загрузки. Значение d указывает на CD-ROM;
-cdrom — выбор файла ISO-образа.
Пример запуска установки vESBC :
admin@host:~$ sudo qemu-system-x86_64 --enable-kvm -cpu host -smp 4 -m 4G -nic bridge,br=0,model=virtio-net-pci vesbc.qcow2 -boot d -cdrom vesbc-installer.iso |
Дальнейшие действия по установке vESBC описаны в разделе Процесс установки vESBC.
После установки необходимо извлечь ISO из виртуального привода, для этого:
Последующий запуск vESBC необходимо производить без указания ISO (флага -boot).
Пример запуска vESBC :
admin@host:~$ sudo qemu-system-x86_64 --enable-kvm -cpu host -smp 4 -m 4G -nic bridge,br=0,model=virtio-net-pci vesbc.qcow2 |
Для подключения сетевого интерфейса необходимо запустить vESBC на QEMU с указанием настроек сетевой карты -nic tap,ifname=gi1 (если необходимо подключить несколько сетевых интерфейсов, то необходимо их всех указать, например, -nic tap,ifname=gi1 -nic tap,ifname=gi2). На хостовом устройстве необходимо перевести созданный интерфейс в состояние UP и назначить IP-адрес для обеспечения IP-связности vESBC и хостовой операционной системы.
Пример запуска vESBC с одним сетевым интерфейсом:
sadmin@host:~$ sudo qemu-system-x86_64 --enable-kvm -cpu host -smp 4 -m 4G -nic tap,ifname=gi1 vesbc.qcow2 |
Перевод созданного интерфейса в состояние UP и назначение IP-адреса на хосте:
admin@host:~$ ip link set gi1 up admin@host:~$ ip add add 192.168.1.1/24 dev gi1 |
Настройте IP-адресацию на vESBC и проверьте IP-связность c хостом:
vesbc# config vesbc(config)# interface gigabitethernet 1/0/1 vesbc(config-if-gi)# ip address 192.168.1.2/24 vesbc(config-if-gi)# exit vesbc(config)# exit Warning: you have uncommitted configuration changes. vesbc# commit Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds. vesbc# confirm Configuration has been confirmed. Commit timer canceled. vesbc# ping 192.168.1.1 PING 192.168.1.1 (192.168.1.1) 56 bytes of data. !!! --- 192.168.1.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 0.150/0.223/0.313/0.069 ms |
Теперь есть прямая IP-связность с хостом, возможность подключения к vESBC по Telnet, SSH, WEB, а также обновления прошивки vESBC, загрузки и выгрузки файлов.
Linux Bridge — это программный сетевой модуль ядра Linux, работающий как виртуальный сетевой коммутатор (switch) на 2-м уровне модели OSI. Он объединяет физические (например, eth0) и виртуальные (veth, TAP) сетевые интерфейсы в один общий сегмент сети (L2-домен), позволяя им обмениваться данными напрямую по MAC-адресам.
При использовании Linux Bridge требуется предварительная конфигурация бриджей в хостовой операционной системе.
Пример конфигурации файла config.yaml при конфигурировании через netplan для ОС Ubuntu 20.04.6 TLS:
network:
version: 2
ethernets:
eno1: // eno1 - физический интерфейс хоста, который будет использоваться для подключения виртуальной машины vESBC к сети передачи данных.
dhcp4: no
dhcp6: no
eno2:
dhcp4: no
dhcp6: no
enp24s0f0:
dhcp4: no
enp24s0f1:
dhcp4: no
bridges:
br0: // br0 - создание бриджа br0.
interfaces:
- eno1 // добавление интерфейса eno1 в бридж.
addresses:
- 192.168.113.140/20 // настройка IP-адреса хоста (если необходима IP-связность между хостом и виртуальными машинами).
routes:
- to: default // настройка шлюза по умолчанию.
via: 192.168.112.1
nameservers:
addresses:
- 8.8.8.8 // настройка DNS-сервера.
parameters:
stp: false
dhcp4: no
br1:
interfaces: []
parameters:
stp: false
dhcp4: no |
Пример запуска виртуальной машины vESBC с сетевым интерфейсом на базе бриджа br0 и драйвером сетевого адаптера virtio:
admin@host:~$ sudo qemu-system-x86_64 --enable-kvm -cpu host -smp 4 -m 4G -nic bridge,br=br0,model=virtio-net-pci vesbc.qcow2 |
PCI Passthrough (сквозной проброс PCI) — это технология виртуализации, которая позволяет «отдать» физическое устройство (видеокарту, сетевой адаптер, USB-контроллер) напрямую виртуальной машине.
В этом режиме гостевая ОС работает с устройством так, будто оно вставлено непосредственно в её материнскую плату, минуя уровень эмуляции гипервизора.
Прежде чем запускать QEMU, нужно «отвязать» карту от хоста и передать её драйверу vfio-pci:
admin@host:~$ lspci -nn | grep -i ethernet 18:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ [8086:1572] (rev 01) 18:00.1 Ethernet controller [0200]: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ [8086:1572] (rev 01) |
admin@host:~$ modprobe vfio-pci admin@host:~$ echo "0000:18:00.0" | sudo tee /sys/bus/pci/devices/0000:18:00.0/driver/unbind admin@host:~$ echo "8086 1572" | sudo tee /sys/bus/pci/drivers/vfio-pci/new_id |
qemu-system-x86_64 --enable-kvm -cpu host -smp 4 -m 4G -device vfio-pci,host=18:00.0 vesbc.qcow2 |
Virsh — это интерфейс командной строки для управления виртуальными машинами, сетями и хранилищами. Он работает через библиотеку libvirt и используется для управления гипервизором KVM.
Полный список команд Libvirt предоставляется в официальной документации.
Для отображения графической консоли vESBC рекомендуется установить virt-viewer:
sudo apt update sudo apt install virt-viewer |
sudo virt-install --name <название ВМ> --ram <азмер_RAM> --vcpus <количество CPU> --disk <параметры диска> --os-variant <тип ОС> --network <сетевой адаптер> --graphics <графический вывод> --video <драйвер> --console <параметры консоли> --cdrom <образ ISO vESBC> |
где:
--name — название виртуальной машины;
--ram — объем оперативной памяти;
--vcpus — количество ядер CPU;
-- disk — путь до файла диска, созданного в п. 1 Обязательно использовать bus=ide.
--osvariant — тип ОС, использовать generic;
--network — указание сетевого адаптера;
--graphics — настройки графического вывода виртуальной машины;
--video — драйвер видеоадаптера;
--console — настройка последовательного порта;
--cdrom — путь к ISO-образу vESBC.
Дальнейшие действия по установке vESBC описаны в разделе Процесс установки vESBC.
Пример установки:
udo virt-install --name vesbc --ram 4096 --vcpus 2 --disk path=/var/lib/libvirt/images/vesbc.qcow2,size=2,format=qcow2,bus=ide --os-variant generic --network bridge:br0,model=virtio --graphics spice,listen=127.0.0.1 --video virtio --console pty,target_type=serial --cdrom /var/lib/libvirt/images/vesbc-1.41.x-build89.iso --check disk_size=off |
Дальнейший запуск, остановка и выполнение настроек виртуальной машины осуществляется через командный интерфейс virsh.
Подключение сетевых интерфейсов осуществляется флагом –network при создании виртуальной машины, как описано в разделе выше.
При использовании Linux Bridge требуется предварительная конфигурация бриджей в хостовой операционной системе. Пример настройки приведен выше.
Для подключения созданного интерфейса к виртуальной машине используется флаг при ее создании:
--network bridge:br0,model=virtio |
где:
br0 — название бриджа в хостовой ОС;
model=virtio — драйвер эмуляции virtio.
Помимо virtio можно использовать драйвер e1000 rtl8138. Драйвер virtio является более предпочтительным. |
PCI Passthrough (сквозной проброс PCI) — это технология виртуализации, которая позволяет «отдать» физическое устройство (видеокарту, сетевой адаптер, USB-контроллер) напрямую виртуальной машине.
В этом режиме гостевая ОС работает с устройством так, будто оно вставлено непосредственно в её материнскую плату, минуя уровень эмуляции гипервизора.
Для передачи сетевого интерфейса в виртуальную машину:
admin@host:~$ lspci -nn | grep -i ethernet 18:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ [8086:1572] (rev 01) 18:00.1 Ethernet controller [0200]: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ [8086:1572] (rev 01) |
--hostdev 18:00.0 |
Virtual Machine Manager — это приложение для управления виртуальными машинами в операционных системах Linux при помощи графического интерфейса (GUI).
1. Запустите "Менеджер виртуальных машин". Для создания виртуальной машины нажмите кнопку "Создать виртуальную машину" в главном меню:

2. В окне "Новая виртуальная машина" оставьте метод установки — "Локальный ISO или CDROM" и нажмите кнопку "Forward":

3. Нажмите кнопку "Обзор":

В открывшимся окне выберите образ ISO vESBC, затем нажмите кнопку "Выбор тома":
Перед выбором образа ISO поместите его в каталог /var/lib/libvirt/images/ |

4. Деактивируйте чек-бокс "Automatically detect from the installation media / source". В поле "Choose the operating system you are installing" укажите "Generic default" и нажмите кнопку "Forward":

5. Укажите количество ядер CPU и количество RAM в соответствующих полях, нажмите кнопку "Forward":

6. Укажите объем HDD и нажмите кнопку "Forward":

7. Укажите название виртуальной машины и нажмите кнопку "Готово". Также можно сразу указать сетевой адаптер, или настроить сеть позже.

8. После создания виртуальной машины откроется окно установки vESBC. Дальнейшие действия по установке vESBC описаны в разделе Процесс установки vESBC.

9. Если требуется донастройка (добавить/изменить сетевой адаптер, количество CPU, RAM и т. д.) виртуальной машины vESBC, выключите ее и откройте окно настроек кнопкой "Показать виртуальное оборудование".
Перед изменением конфигурации виртуальной машины она должна быть выключена.
1. Запустите "Менеджер виртуальных машин", выберите нужную виртуальную машину и нажмите кнопку "Открыть".

2. Если сетевой адаптер уже был добавлен при создании виртуальной машины и требуется изменить его параметры, следует выбрать его в списке оборудования.
Изменение адаптера выполняется в настройке "Создать на базе". Доступны следующие режимы работы адаптера:

В режиме macvtap связи межу хостовой ОС и виртуальной машиной нет. Также данный режим не подходит для организации кластера vESBC (за исключением режима Passthrough), т. к. при использовании протокола VRRP MAC-адрес vESBC будет отличаться отMAC-адреса сетевого интерфейса, и трафик не будет передаваться в виртуальную машину из-за особенностей реализации драйвера macvtap. |

3. Для добавления дополнительных сетевых адаптеров нажмите кнопку "Добавить оборудование" в нижнем левом углу (cм. скрин выше). В открывшемся окне выберете раздел "Сеть", укажите параметры адаптера и нажмите кнопку "Готово". Добавленный адаптер появится в списке оборудования виртуальной машины.

4. Для проброса сетевой карты в виртуальную машину следует в окне выбора оборудования (см. предыдущий пункт) выбрать раздел "PCI-устройство узла", в списке устройств выбрать нужный сетевой адаптер и нажать кнопку "Готово". Добавленный адаптер появится в списке оборудования виртуальной машины:


Для подключения последовательного порта vESBC к pty хоста следует добавить опцию к используемой команде запуска эмулятора QEMU:
-serial pty |
После запуска команды появится строка с номером pty, на который перенаправлен вывод:
char device redirected to /dev/pts/3 (label serial0) |
Команда для подключения к pty с помощью minicom:
sudo minicom -D /dev/pts/3 |
Либо можно использовать подключение последовательного порта vESBC к pipe в файловой системе хоста. Для этого нужно добавить опцию:
-serial unix:/tmp/vesbc-qemu,server,nowait |
Команда для подключения к pipe с помощью minicom:
sudo minicom -D unix#/tmp/vesbc-qemu |
Для подключения последовательного порта vESBC к pty хоста следует добавить флаг --console при установке виртуальной машины.
Пример флага для настройки pty:
--console pty,target_type=serial |
Для подключения к консоли используйте команду:
virsh console <имя_ВМ> |
Для выхода из консоли нажмите комбинацию клавиш Ctrl + ].
При создании виртуальной машины виртуальная консоль pty создается автоматически:

Для подключения к консоли запустите виртуальную машину, посмотрите номер pty:

Команда для подключения к pty с помощью minicom:
sudo minicom -D /dev/pts/4 |