В MacOS на чипе ARM отсутствует virtqemud-sock

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

Я пытаюсь запустить x86 VM на Mac Silicon, используя QEMU, Libvirt и Vagrant.

Я установил QEMU через brew, а также libvirt:

brew install libvirt qemu

Когда я пытаюсь запустить VM через vagrant, я получаю следующую ошибку:

Error while connecting to Libvirt: Error making a connection to libvirt URI qemu:///system:
Call to virConnectOpen failed: Failed to connect socket to '/opt/homebrew/var/run/libvirt/virtqemud-sock': No such file or directory

Я проверил, что сервис libvirt работает как ожидалось:

brew services list
Name    Status  User     File
libvirt started xxxx ~/Library/LaunchAgents/homebrew.mxcl.libvirt.plist
unbound none

В тех случаях, когда другие люди имели ту же проблему на других ОС, решение заключалось в том, чтобы запустить сервис libvirtd через systemctl, что не является вариантом для установки brew/mac.

Я также попытался добавить mode = “legacy” в оба файла /opt/homebrew/etc/libvirt/libvirtd.conf и /opt/homebrew/etc/libvirt/libvirt.conf, как указано в следующей документации: https://libvirt.org/uri.html#mode-parameter. Для уверенности я также попробовал прямую опцию. Я сомневаюсь, что изменение конфигурации было учтено.

Вот мой файл Vagrant, хотя, судя по аналогичным проблемам у других людей на разных архитектурах/ОС, Vagrant не является тут проблемой:

Vagrant.configure("2") do |config|
    config.vm.box = "mybox"
    config.vm.synced_folder ".", "/vagrant", type: "rsync"
    config.vm.box_download_insecure = true
    config.vm.provider "libvirt" do |libvirt|
        libvirt.driver = "qemu"
        libvirt.emulator_path = "/opt/homebrew/bin/qemu-system-x86_64"
        libvirt.uri = "qemu:///system"
        libvirt.memory = 2048
        libvirt.cpus = 2
    end
end

Я был бы очень признателен, если бы кто-то, использующий Mac с ARM чипом, успешно выполнил вышеуказанное и смог бы пролить свет на то, что я делаю неправильно. Спасибо.

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

Проблема, с которой вы столкнулись, связана с попыткой использования QEMU, Libvirt и Vagrant для запуска x86 VM на базе Mac с чипом ARM (Apple Silicon). Ошибка "No such file or directory" при попытке подключения к сокету ‘virtqemud-sock’ чаще всего говорит о проблемах конфигурации Libvirt. Разберём несколько возможных решений данной проблемы.

Актуальные шаги для решения проблемы

Убедитесь, что Libvirt правильно настроен и запущен

  1. Запуск Libvirt и проверка сервисов:

    • Выполните проверку статуса сервиса Libvirt с помощью brew services, убедитесь, что он запущен под правильной учетной записью пользователя. В вашем случае это видно из вывода команды brew services list.
  2. Перезапуск Libvirt:

    • Попробуйте перезапустить Libvirt: brew services restart libvirt. Иногда перезапуск может помочь, особенно если изменения в конфигурации не были ранее применены.
  3. Трейс ошибок:

    • Проверьте логи ошибок Libvirt, которые могут быть полезны для диагностики проблемы. Обычно они находятся в /opt/homebrew/var/log/libvirt.

Проверьте правильность выполнения конфигурационных изменений

  1. Config файлы Libvirt:

    • Дважды проверьте изменения в файлах конфигурации /opt/homebrew/etc/libvirt/libvirtd.conf и /opt/homebrew/etc/libvirt/libvirt.conf. Проверьте все изменения, особенно атрибут mode = "legacy". Убедитесь, что данное изменение сохраняется, не содержит ошибок синтаксиса и применяется при запуске.
  2. Перепроверьте URI подключения:

    • Убедитесь, что URI подключения, который вы используете qemu:///system в вашем Vagrant-файле, правильно настроен и доступен. Это можно сделать с помощью команды:
      virsh -c qemu:///system list
    • Если команда выводит ошибки, проблема может быть в конфигурации URI или его доступности.

Особенности работы с архитектурой ARM

  1. Альтернативные решения на базе ARM:

    • Рассмотрите возможность использования UTM или Multipass как альтернативных инструментов виртуализации на базе ARM, которые могут предложить лучшие результаты в специфической среде Apple Silicon.
  2. Проверка на сторонние плагины:

    • Иногда плагины Vagrant или дополнительное ПО могут создавать конфликты. Убедитесь, что все плагины обновлены и совместимы с ARM.

Рекомендации

Диагностика и поддержка: Рассмотрите возможность обращения в сообщество или на форумы, посвященные Libvirt и QEMU на Mac, чтобы получить помощь о лиц, которые уже сталкивались с подобными трудностями.

Последовательное тестирование: В процессе решения этой проблемы может потребоваться несколько попыток и последовательных изменений, каждый шаг должен тестироваться отдельно для понимания его воздействия на систему.

Используя данные рекомендации, вы сможете организовать успешный запуск виртуальной машины x86 на вашем Mac с чипом ARM. Ваш опыт с данными технологиями будет очень важным шагом в лучшем понимании виртуализации и запуска разных архитектур на ARM-чипах.

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

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