Ошибка /dev/kvm не найдена, даже при включённой виртуализации.

Вопрос или проблема

У меня есть проблема, описанная в этом вопросе. У меня система на базе Ryzen (Ubuntu 24.04), и я проверил настройки BIOS – SVM включен.

Я прошел начальные шаги на этой странице, чтобы установить KVM, но на шаге 4, когда я выполнил sudo systemctl status libvirtd, я получил:

     Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; preset: enabled)
     Active: active (running) since Sun 2025-01-05 12:52:55 EST; 1min 5s ago
TriggeredBy: ● libvirtd-ro.socket
             ● libvirtd.socket
             ● libvirtd-admin.socket
       Docs: man:libvirtd(8)
             https://libvirt.org/
   Main PID: 8460 (libvirtd)
      Tasks: 22 (limit: 32768)
     Memory: 20.7M (peak: 25.7M)
        CPU: 413ms
     CGroup: /system.slice/libvirtd.service
             ├─1484 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/li>
             ├─1485 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/li>
             └─8460 /usr/sbin/libvirtd --timeout 120

Jan 05 12:52:55 linux-mini systemd[1]: Starting libvirtd.service - libvirt legacy monolithic daemon...
Jan 05 12:52:55 linux-mini systemd[1]: Started libvirtd.service - libvirt legacy monolithic daemon.
Jan 05 12:52:55 linux-mini dnsmasq[1484]: read /etc/hosts - 8 names
Jan 05 12:52:55 linux-mini dnsmasq[1484]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 names
Jan 05 12:52:55 linux-mini dnsmasq-dhcp[1484]: read /var/lib/libvirt/dnsmasq/default.hostsfile
Jan 05 12:52:55 linux-mini libvirtd[8460]: libvirt version: 10.0.0, package: 10.0.0-2ubuntu8.5 (Ubuntu)
Jan 05 12:52:55 linux-mini libvirtd[8460]: hostname: linux-mini
Jan 05 12:52:55 linux-mini libvirtd[8460]: Unable to open /dev/kvm: No such file or directory

Что-то мешает запуску kvm (? – не уверен, что это правильно).

sudo dmesg | grep kvm показывает:

[    4.403905] kvm_amd: NX (Execute Disable) not supported
[  409.676621] kvm_amd: NX (Execute Disable) not supported

Я не знаю, что это значит. lsmod | grep kvm показывает:

kvm                  1404928  0
irqbypass              12288  1 kvm

Я пытаюсь запустить Android эмулятор, но это, по-видимому, мешает этому. Буду благодарен за любые советы.

Ответ или решение

Решение ошибки "dev/kvm не найден" при включенной виртуализации

Вы столкнулись с ошибкой "Unable to open /dev/kvm: No such file or directory" на вашей системе Ryzen с установленной Ubuntu 24.04. Давайте подробно рассмотрим возможные причины и решения этой проблемы.

Возможные причины и решения

  1. Отсутствие поддержки KVM в процессоре:
    Первое, что стоит проверить, это поддержка виртуализации на уровне процессора. Для процессоров AMD нужно убедиться в поддержке AMD-V.

    Шаги проверки:

    • Перезагрузите компьютер и зайдите в BIOS.
    • Убедитесь, что опция SVM (Secure Virtual Machine) действительно включена.
    • Иногда параметры BIOS могут не сохраняться после перезагрузки, так что повторно убедитесь в их активации.
  2. Отсутствие поддержки NX (Execute Disable):
    В вашем выводе dmesg указано, что "NX (Execute Disable) не поддерживается." Это может быть проблемой, поскольку KVM требует безопасности выполнения в памяти.

    Возможное решение:

    • Обновите прошивку BIOS. Возможно, новая версия BIOS добавит поддержку необходимых функций.
    • Если после обновления ситуация не изменилась, возможно, вашему процессору не хватает поддержки необходимых аппаратных функций для работы виртуализации.
  3. Модуль ядра KVM не загружен:
    Вы выполнили lsmod | grep kvm, и модуль KVM отображается, но этот модуль может быть не полностью задействован.

    Как проверить и загрузить модуль KVM:

    • Убедитесь, что у вас установлены все необходимые пакеты, используя команду:
      sudo apt-get install qemu-kvm libvirt-bin bridge-utils virt-manager
    • Перегрузите модули KVM вручную:
      sudo modprobe -r kvm_amd
      sudo modprobe kvm_amd
    • Проверьте еще раз состояние модулей:
      lsmod | grep kvm
  4. Проблемы с libvirtd:
    Хотя ваш сервис libvirtd активен, проблема может заключаться в конфигурации.

    Перепроверьте конфигурации libvirt:

    • Убедитесь, что файлы конфигурации libvirt настроены правильно. Вы можете воспользоваться следующей командой для удаления старых конфигураций и перезапуска сервиса:
      sudo systemctl restart libvirtd
    • Убедитесь, что пользователь, под которым вы работаете, добавлен в группу kvm и libvirt:
      sudo usermod -aG kvm,libvirt $USER
  5. Проверка на ошибки и обновления:

    • Используйте dmesg и системные логи для поиска других сообщений об ошибках, которые могут показать больше информации о проблеме.
    • Убедитесь, что ваша система полностью обновлена:
      sudo apt-get update && sudo apt-get upgrade

Заключение

Ошибка "dev/kvm не найден" может возникнуть по нескольким причинам, связанным с настройками BIOS, совместимостью процессора или недостаточностями в конфигурации программного обеспечения. Следуя указанным шагам, вы сможете диагностировать и устранить эту проблему, что позволит вам использовать виртуализацию на полном функциональном уровне.

Оцените материал
Добавить комментарий

Капча загружается...