Linux. Установка в kvm

2024-12-28 · 4 мин. для прочтения
blog computer-science

Linux. Установка в kvm.

Содержание

1 Общая информация

  • Будем устанавливать (для определённости) в каталог /var/vm/fedora-sway:
    mkdir -p /var/vm/fedora-sway
    
  • Для примера будем устанавливать дистрибутив Fedora Sway (Fedora-Sway-Live-44-1.7.x86_64.iso):
    cd /var/vm/fedora-sway
    wget https://download.fedoraproject.org/pub/fedora/linux/releases/44/Spins/x86_64/iso/Fedora-Sway-Live-44-1.7.x86_64.iso
    

2 Установка Linux на qemu

2.1 Создание образа

  • Создадим образ виртуального диска: 80GB, формат qcow2:

    qemu-img create -f qcow2 fedora-sway.qcow2 80G
    
  • Запустите виртуальную машину:

    qemu-system-x86_64 -boot menu=on -m 2048 -cpu max -smp 2 \
        -cdrom Fedora-Sway-Live-44-1.7.x86_64.iso \
        -drive file=fedora-sway.qcow2,format=qcow2,if=virtio,aio=native,cache=none \
        -bios /usr/share/edk2-ovmf/OVMF_CODE.fd \
        -enable-kvm -machine q35 -device intel-iommu \
        -device virtio-balloon \
        -chardev qemu-vdagent,id=vdagent0,name=vdagent,clipboard=on,mouse=off \
        -display default,show-cursor=on \
        -vga none -device virtio-gpu-pci
    
    • Видео-устройств подключено на видеокарту компьютера.
  • Выберите Start Fedora-Sway-Live 44.

  • Загрузится графический режим.

  • Если вы запускаете из-под Sway, включите Passthrough mode.

  • Также можно использовать режим захвата, переключая его по комбинации Ctrl+Alt+g.

  • Установите систему.

  • После установке остановите систему:

    sudo systemctl halt
    

2.2 Запуск системы

  • Для удобства создайте командный файл fedora-sway-start.sh:
    touch fedora-sway-start.sh
    chmod +x fedora-sway-start.sh
    
  • В файл запишите команду для запуска:
    #!/bin/bash
    
    qemu-system-x86_64 -boot menu=on -m 2048 \
       -cpu max -smp 2 \
        -drive file=fedora-sway.qcow2,format=qcow2,if=virtio,aio=native,cache=none \
        -bios /usr/share/edk2-ovmf/OVMF_CODE.fd \
        -enable-kvm -machine q35 -device intel-iommu \
        -device virtio-balloon \
        -device virtio-serial \
        -chardev spicevmc,id=vdagent,debug=0,name=vdagent \
        -device virtio-serial,packed=on,ioeventfd=on \
        -device virtserialport,name=com.redhat.spice.0,chardev=vdagent0 \
        -chardev qemu-vdagent,id=vdagent0,name=vdagent,clipboard=on,mouse=off \
        -display default,show-cursor=on \
        -vga none -device virtio-gpu-pci
    
    Распечатка 1: fedora-sway-start.sh

2.3 Видео: Установка Linux на qemu

Установка Linux на qemu

3 Установка Linux с помощью libvirt

3.1 Libvirt

3.2 Использование virt-install

  • Конфигурацию можно создать с помощью virt-install:

    virt-install \
        --connect qemu:///system \
        --disk /var/lib/libvirt/images/Fedora-Sway-Live-44-1.7.x86_64.iso,device=cdrom \
        --disk pool=default,size=60,bus=virtio,format=qcow2 \
        --name fedora-sway \
        --os-variant=fedora42 \
        --machine q35 \
        --ram 4096 \
        --memballoon driver.iommu=on \
        --vcpus=2 \
        --network network=default,model=virtio \
        --graphics spice \
        --channel spicevmc \
        --hvm \
        --virt-type=kvm \
        --features kvm_hidden=on,smm=on \
        --tpm backend.type=emulator,backend.version=2.0,model=tpm-tis \
        --boot uefi \
        --check path_in_use=off \
        --boot cdrom,hd,menu=on \
        --memorybacking source.type=memfd,access.mode=shared \
        --filesystem type=mount,source=$HOME,target=hostshare,driver.type=virtiofs
    
    • --name fedora-sway : название виртуальной машины;
    • --os-type=fedora42 : тип ОС;
    • --cdrom /var/lib/libvirt/images/Fedora-Sway-Live-44-1.7.x86_64.iso : путь к ISO-образу установочного диска ОС;
    • --graphics spice : графическая консоль;
    • --disk pool=default,size=60,bus=virtio,format=qcow2 : хранилище;
      • образ виртуальной машины будет создана в пространстве хранения объёмом 60 ГБ, которое автоматически выделяется из пула хранилищ default;
      • образ диска для этой виртуальной машины будет создан в формате qcow2;
    • --ram 4096 : объём оперативной памяти;
    • --vcpus=2 : количество процессоров;
    • --network network=default : виртуальная сеть default;
    • --hvm : полностью виртуализированная система;
    • --virt-type=kvm : использовать модуль ядра KVM, который задействует аппаратные возможности виртуализации процессора.
  • В качестве видео-интерфейса ставим QXL.

3.3 Установка

  • Выберите Start Fedora-Sway-Live 44.
  • Загрузится графический режим.
  • Если вы запускаете из-под Sway, включите Passthrough mode.
  • Установите систему.
  • Выполните следующую команду на хосте, чтобы получить список определённых в данный момент доменов (флаг --all перечисляет все домены):
    virsh list --all
    
  • После завершения установки выключите домен.

3.4 Общая папка

  • Будем использовать встроенный метод создания общей папки с помощью virt-manager.

  • Делаем, если не настроили при установке.

  • Нажмите на значок с надписью Показать виртуальное оборудование (Show virtual hardware details) на панели инструментов.

  • Нажмите Память (Memory) на левой панели.

    • Проверьте, что выбрана опция Включить общую память (Enable shared memory).
    • Нажмите Применить.
  • Внизу нажмите Добавить оборудование (Add hardware).

    • Выберите Файловая система (File system) на левой панели в окне добавления нового оборудования.
    • Затем выберите Driver=virtiofs на вкладке Подробности.
    • Нажмите на browse > browse local и выберите путь к хосту из вашей системы Linux, например /home.
    • В целевом пути укажите любое имя папки, например hostshare.
  • Монтироваться будем, например, в /mnt/hostshare.

  • Запустите гостя и смонтируйте внутри него:

    sudo mkdir -p /mnt/hostshare
    sudo mount -t virtiofs hostshare /mnt/hostshare
    
  • Для автоматического монтирования добавьте запись в /etc/fstab:

    hostshare /mnt/hostshare virtiofs defaults 0 0
    

3.5 Запуск с virt-manager

  • Запустить домен можно с помощью virt-manager.

3.6 Запуск с virsh

  • Запустить домен:
    virsh start fedora-sway
    
  • Отключить домен:
    virsh shutdown fedora-sway
    
  • Принудительно отключить домен:
    virsh destroy fedora-sway
    
  • Подключиться к домену можно с помощью virt-manager.
  • Уничтожить домен:
    virsh undefine fedora-sway --remove-all-storage
    
Дмитрий Сергеевич Кулябов
Authors
Профессор кафедры теории вероятностей и кибербезопасности
Работаю профессором на кафедре теории вероятностей и кибербезопасности Российского университета дружбы народов им. Патриса Лумумбы. Научные интересы относятся к области теоретической физики и математического моделирования.