Поиск по сайту:

Установите и настройте QEMU/KVM для запуска виртуальных машин в Ubuntu 24.04.

Это пошаговое руководство показывает, как устанавливать виртуальные машины и управлять ими с помощью решения qemu/kvm в Ubuntu 24.04.

KVM, виртуальная машина на базе ядра Linux, представляет собой модуль ядра Linux, который может функционировать как гипервизор. Он предлагает высокопроизводительную среду виртуализации с аппаратными расширениями виртуализации, такими как Intel VT или AMD-V со встроенным процессором.

KVM не работает напрямую в пользовательском пространстве. Для взаимодействия с ним и управления виртуальными машинами требуется приложение пользовательского пространства, такое как QEMU.

Поскольку QEMU — это инструмент командной строки, существует также графический инструмент, такой как Virtual Machine Manager, который упрощает использование.

1. Загрузите модуль KVM Kernel и установите QEMU:

Модуль KVM требует, чтобы процессор хост-машины поддерживал виртуализацию. Это VT-x для процессоров Intel и AMD-V для процессоров AMD. И все процессоры Intel и AMD за последние 10 лет поддерживают виртуализацию.

Чтобы проверить, поддерживает ли ваш процессор виртуализацию, откройте терминал (Ctrl+Alt+T) и выполните команду:

LC_ALL=C.UTF-8 lscpu | grep Virtualization

Если он ничего не выводит, убедитесь, что вы включили поддержку виртуализации в своем BIOS.

И проверьте, загружен ли модуль KVM, выполните команду:

lsmod | grep kvm

Модуль ядра обычно загружается в Ubuntu по умолчанию. Если НЕТ, попробуйте sudo modprobe -a kvm kvm_intel, чтобы загрузить его (замените kvm_intel на kvm_amd для процессора AMD).

Чтобы установить QEMU в Debian, Ubuntu, Linux Mint и системах на их основе, выполните команду:

sudo apt install qemu-system

2. Создайте виртуальную машину из командной строки.

ПРИМЕЧАНИЕ. Если вы ненавидите команды Linux, просто пропустите этот шаг и используйте графический инструмент на следующем шаге!

1. Сначала создайте файл образа виртуального диска, выполнив аналогичную команду, приведенную ниже:

qemu-img create -f raw /media/ji/600g/windows10.raw 80G

Здесь нужно соответствующим образом заменить параметры команды. Они есть:

  • -f raw сообщает о создании необработанного изображения. Процесс создания очень медленный и займет все назначенное вами пространство (в моем случае 80 ГБ) на хосте. Неиспользуемое пространство на госте не может быть использовано на хосте. Вместо этого вы можете использовать -f qcow2, который выделяет место для файла образа только тогда, когда гостевая операционная система фактически записывает на виртуальный жесткий диск. Однако использование qcow2, скорее всего, повлияет на производительность.
  • /media/ji/600g/windows10.raw сообщает о создании файла образа windows10.raw в качестве виртуального диска, и он сохраняется на внешнем диске, установленном в /media/ji/. 600г. Вы можете пропустить путь, поэтому файл изображения будет создан в текущем каталоге.
  • 80G — полная емкость гостевого жесткого диска хоста.

И в любой момент вы можете переместить или удалить файл (в моем случае windows10.raw) по своему усмотрению. Однако вам нужно изменить путь к файлу в следующих командах.

2. Чтобы установить виртуальную операционную систему, используйте команду:

qemu-system-x86_64 -cdrom /path/to/iso-image -boot menu=on -drive file=/path/to/virtual-disk-image,format=raw -m 8G -cpu host -smp sockets=1,cores=2,threads=2 --enable-kvm

Эта команда говорит использовать:

  • qemu-system-x86_64 для имитации архитектуры гостевого процессора amd64. Замените x86_64 на x86, s390x, ppc и т. д. в зависимости от типа гостевой ОС.
  • -cdrom /path/to/iso-image, чтобы прикрепить образ .iso через компакт-диск.
  • -boot menu=on, чтобы отобразить меню для выбора устройства для загрузки.
  • file=/path/to/virtual-disk-image,format=raw, чтобы подключить виртуальный диск через файл образа, замените raw в соответствии с тем, что вы создали в последней команде.
  • -m 8G — назначить оперативную память.
  • -cpu хост, чтобы использовать тот же процессор, что и хост. Для выбора вы можете запустить qemu-system-x86_64 -cpu help, чтобы получить больше вариантов.
  • -smp sockets=1,cores=2,threads=2 — установите 1 процессор с 2 ядрами и 2 потоками каждый, что означает (2 ядра/4 потока).
  • --enable-kvm, чтобы включить KVM. Вместо этого вы можете использовать -accel kvm.

В моем случае команда такая:

qemu-system-x86_64 -cdrom ~/Documents/windows_10_enterprise_ltsc_2019_x64_dvd_9c09ff24.iso -boot menu=on -drive file=/media/ji/600g/windows10.raw,format=raw -m 8G -cpu host -smp sockets=1,cores=2,threads=2 --enable-kvm

Приведенная выше команда запустит окно виртуальной машины, позволяющее загрузиться с образа .iso, а затем установить ОС на образ виртуального диска.

После этого запустите гостевую ОС с помощью команды:

qemu-system-x86_64 /path/to/virtual-disk-image

Кроме того, вы можете добавить аналогичные параметры выше, чтобы указать размер памяти, использование ядер ЦП, включить KVM и т. д. Дополнительную информацию см. в официальной документации.

3. Используйте графический инструмент для установки и управления виртуальными машинами QEMU/KVM.

Инструмент командной строки QEMU НЕ удобен и сложен для новичков. Чтобы облегчить жизнь, существует несколько графических инструментов для установки и управления виртуальными машинами. И здесь я собираюсь показать вам «Диспетчер виртуальных машин».

Установите диспетчер виртуальных машин:

Сначала откройте терминал (Ctrl+Alt+T) и выполните команду для установки графического инструмента:

sudo apt install virt-manager

Затем добавьте своего пользователя в группу libvirt и перезапустите службу демона:

sudo gpasswd --add $USER libvirt
sudo systemctl start libvirtd

Запустите инструмент и создайте новые виртуальные машины.

Затем найдите и запустите диспетчер виртуальных машин из меню «Пуск» (или «Обзор GNOME»). Он должен автоматически подключаться к системе QEMU/KVM при запуске.

Если НЕТ, просто дважды щелкните по нему в списке. И попробуйте перезагрузить компьютер, если соединение не удалось!

Затем щелкните первый значок на панели инструментов или перейдите в меню «Файл -> Новая виртуальная машина», чтобы запустить диалоговое окно создания виртуальной машины.

Во всплывающем мастере вы можете выбрать установку из локального образа .iso, сетевую установку, существующего образа виртуального диска, а также выбрать тип архитектуры гостевой ОС.

Затем следуйте инструкциям всплывающего мастера, чтобы выбрать ISO-образ или установочный компакт-диск. Если вы нажали кнопку «Обзор…» вместо того, чтобы вручную вводить путь к ISO-образу, вы можете вручную добавить пул для местоположения, отличного от стандартного, например, внешнего диска, и создать там виртуальный диск.

Наконец, нажмите «Просмотреть локально» и выберите образ .iso. ПРИМЕЧАНИЕ: он запросит и изменит права доступа к файлу выбранного ISO-образа и образа виртуального диска. Если вам не нравится такое поведение, перейдите к следующему шагу. 

Затем установите размер памяти и количество ядер ЦП, создайте виртуальный диск или выберите существующий образ диска, который вы только что создали, и так далее, пока мастер не завершит работу.

Если все пройдет успешно, виртуальная машина должна запуститься и загрузить iso-образ для установки операционной системы.

Настройте KVM для использования в качестве обычного пользователя

Создание образа виртуального диска в расположении, отличном от заданного по умолчанию (например, на внешнем диске), и прикрепление образа .iso изменит право собственности на него, поэтому он НЕ будет принадлежать вам (вашему пользователю). И иногда это может даже выйти из строя из-за проблем с разрешением.

Чтобы обойти эту проблему, вы можете настроить использование в качестве обычного пользователя.

Сначала запустите команду в терминале (Ctrl+Alt+T), чтобы отредактировать файл конфигурации libvirtd:

sudo nano /etc/libvirt/libvirtd.conf

Затем найдите и установите unix_sock_group='libvirt' и unix_sock_rw_perms='0770', удалив # в начале и измените значение. Наконец, нажмите Ctrl+S для сохранения и Ctrl+X для выхода.

Затем отредактируйте файл конфигурации qemu, выполнив команду:

/etc/libvirt/qemu.conf

Затем найдите и установите user="your_user" и group="your_user" и сохраните файл (Ctrl+S, затем Ctrl+X).

Наконец, перезапустите демон с помощью команды:

sudo systemctl restart libvirtd.service

Затем закройте и перезапустите диспетчер виртуальных машин.

Создайте общую папку между хостовой и гостевой ОС.

Чтобы обмениваться файлами между хостовой и гостевой операционными системами, вы можете создать общую папку, выполнив шаг ниже.

1. Сначала откройте терминал и установите пакеты spice-vdagent и virtiofsd как в хостовой, так и в гостевой ОС:

  • Для Debian, Ubuntu, Linux Mint и т. д. используйте команду:

    sudo apt install spice-vdagent virtiofsd
  • Для Fedora и систем на ее основе запустите:

    sudo dnf install spice-vdagent virtiofsd
  • И системы на базе Arch могут вместо этого запускать команду:

    sudo pacman -S spice-vdagent virtiofsd
  • Для Windows просто нажмите «Загрузить и установить exe-файл spice-guest-tools».

2. Далее перейдите в меню «Вид -> Подробности» в окне виртуальной машины. Затем выполните:

  • Перейдите к «Память» слева и включите «Включить общую память».
  • Нажмите кнопку «Добавить оборудование», затем выберите «Файловая система» во всплывающем диалоговом окне.
  • Следующий набор:

    • Драйвер: виртиофс.
    • Исходный путь: путь к папке, которой вы хотите поделиться в операционной системе хоста.
    • Целевой путь: любое имя общего ресурса

3. Наконец, запустите или перезапустите виртуальную машину.

Для гостевой ОС Linux выполните команду, чтобы смонтировать общую папку, которая работает до перезагрузки:

sudo mount -t virtiofs share /home/USERNAME/Documents/share

Здесь замените share на имя общего ресурса, которое вы установили на последнем шаге, а также точку монтирования в гостевой ОС на вашу. Когда закончите, откройте папку с точкой монтирования и посмотрите, работает ли она!

Чтобы сделать его постоянным, используйте команду sudo nano /etc/fstab для редактирования /etc/fstab и добавьте в конце новую строку ниже:

share-name-here   /path/to/mount/in/guest  virtiofs   defaults  0   0

Наконец, нажмите Ctrl+S для сохранения и Ctrl+X для выхода.

Для Windows выполните следующие действия один за другим в гостевой ОС:

  1. Сначала загрузите и установите WinFSP отсюда.
  2. Затем нажмите загрузить virtio-win.iso с веб-сайта Fedora.
  3. Откройте проводник, перейдите в папку «Загрузки» и нажмите смонтировать только что загруженный образ virtio-win.iso.
  4. Щелкните правой кнопкой мыши значок меню «Пуск» и откройте «Диспетчер устройств», перейдите в «Другие устройства -> Контроллер запоминающего устройства», щелкните его правой кнопкой мыши и выберите «Обновить драйвер».

  5. Затем нажмите «Просмотреть на моем компьютере программное обеспечение драйвера», найдите и выберите DVD-диск (который вы только что смонтировали для образа virtio-win.iso) в качестве места для драйверов, наконец нажмите «Далее», чтобы автоматически найти и установить драйвер из этого каталога. .
  6. Затем откройте DVD-привод в проводнике и перейдите в папку viofs. Затем скопируйте подпапку w10 или w11, в зависимости от версии гостевой ОС, в локальный каталог, например, C:\virtiofs (создайте virtiofs папку на C вручную)

  7. Наконец, откройте cmd (командную строку) от имени администратора и запустите команды для создания и запуска службы для автоматического монтирования общей папки:

    sc.exe create VirtioFsSvc binpath="path\to\virtiofs.exe" DisplayName="Virtio FS Service"
    sc.exe start VirtioFsSvc

    Здесь нужно заменить path\to\virtiofs.exe. В моем случае я скопировал папку «w10» с DVD-привода в C:\virtiofs, поэтому путь — C:\virtiofs\w10\amd64\virtiofs.exe .

Если все пойдет хорошо, теперь вы должны увидеть общую папку на левой панели проводника.

Кроме того

Есть также много других вещей, которые вы можете сделать для виртуальных машин в диспетчере, например, включить 3D-ускорение, переключив видеомодуль «Video QXL» на «Virtio», затем проверив опцию 3D-ускорения, а затем включив OpenGL в Display Spice.

Кроме того, есть хорошее руководство, показывающее, как включить сквозную передачу графического процессора, чтобы ваша виртуальная машина могла напрямую обращаться к графическому процессору для обеспечения собственной производительности для игр и редактирования графики.

Из-за ограничения длины урока я не буду добавлять сюда больше. Пожалуйста, не стесняйтесь оставлять комментарии ниже.