Установите и настройте 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 выполните следующие действия один за другим в гостевой ОС:
- Сначала загрузите и установите WinFSP отсюда.
- Затем нажмите загрузить virtio-win.iso с веб-сайта Fedora.
- Откройте проводник, перейдите в папку «Загрузки» и нажмите смонтировать только что загруженный образ virtio-win.iso.
Щелкните правой кнопкой мыши значок меню «Пуск» и откройте «Диспетчер устройств», перейдите в «Другие устройства -> Контроллер запоминающего устройства», щелкните его правой кнопкой мыши и выберите «Обновить драйвер».
- Затем нажмите «Просмотреть на моем компьютере программное обеспечение драйвера», найдите и выберите DVD-диск (который вы только что смонтировали для образа virtio-win.iso) в качестве места для драйверов, наконец нажмите «Далее», чтобы автоматически найти и установить драйвер из этого каталога. .
Затем откройте DVD-привод в проводнике и перейдите в папку viofs. Затем скопируйте подпапку w10 или w11, в зависимости от версии гостевой ОС, в локальный каталог, например, C:\virtiofs (создайте
virtiofs
папку на C вручную)Наконец, откройте 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.
Кроме того, есть хорошее руководство, показывающее, как включить сквозную передачу графического процессора, чтобы ваша виртуальная машина могла напрямую обращаться к графическому процессору для обеспечения собственной производительности для игр и редактирования графики.
Из-за ограничения длины урока я не буду добавлять сюда больше. Пожалуйста, не стесняйтесь оставлять комментарии ниже.