Установка macOS на Ubuntu через QEMU‑KVM

Виртуальные машины позволяют запускать альтернативные операционные системы без отдельного физического оборудования. Если что‑то пойдёт не так, это не повредит вашу основную систему. В этой статье подробно описан процесс установки macOS на Ubuntu с помощью QEMU и KVM. Инструкция ориентирована на практическое применение: шаги, команды, типичные проблемы и способы их решения.
Зачем использовать QEMU + KVM для macOS
QEMU — это эмулятор и виртуализатор, а KVM (Kernel-based Virtual Machine) даёт доступ к аппаратной виртуализации в ядре Linux. Вместе они позволяют запустить macOS в виртуальной машине с высокой производительностью.
Коротко:
- Простой запуск и управление из командной строки.
- Возможность использовать GUI‑менеджеры (virt‑manager) при необходимости.
- Виртуальный диск — файл в файловой системе: его легко удалять и переносить.
Важно: запуск macOS на не‑Apple‑оборудовании может иметь юридические и лицензионные последствия. Убедитесь, что вы понимаете применимые условия использования.
Основные понятия (в одно предложение)
- QEMU: программа для запуска виртуальных машин и эмуляции аппаратуры.
- KVM: модуль ядра, дающий доступ к аппаратной виртуализации.
- qcow2: формат виртуального диска с поддержкой снимков и динамического роста.
- basic.sh / jumpstart: скрипты из проекта foxlet, которые автоматизируют процесс.
Содержание статьи
- Требования и подготовка среды
- Установка QEMU/KVM на Ubuntu
- Скачивание macOS и инструментов foxlet
- Создание каталога KVM и виртуального диска
- Настройка basic.sh и запуск установки
- Конфигурация macOS после установки
- Частые проблемы и их решения
- Альтернативы, безопасность и контрольный список
Требования и подготовка
Перед началом проверьте следующее:
- Ubuntu (или другая Debian‑based система) с актуальными обновлениями.
- Процессор с поддержкой виртуализации (Intel VT‑x или AMD‑V). Проверьте флаги
vmxилиsvmв /proc/cpuinfo. - Достаточно места на диске: рекомендуем минимум 100 ГБ свободного места, чтобы разместить образ macOS (64 ГБ образ) и дополнительную рабочую область.
- Минимум 8 ГБ RAM (рекомендуется 16 ГБ для комфортной работы) и 2+ ядер CPU.
Проверка виртуализации (пример):
egrep -c '(vmx|svm)' /proc/cpuinfo || echo "Виртуализация не обнаружена"Если результат 0, проверьте включена ли виртуализация в BIOS/UEFI.
Установка QEMU/KVM и зависимостей
Установите обязательные пакеты и Python‑утилиты. В терминале выполните:
sudo apt update
sudo apt install -y qemu-system qemu-utils python3 python3-pip libvirt-daemon-system libvirt-clients bridge-utils virt-managerПояснения:
- qemu-system — набор исполняемых файлов QEMU для разных архитектур.
- qemu-utils — утилиты работы с образами (qemu-img и др.).
- libvirt* и virt-manager — полезны, если вы хотите управлять виртуальными машинами через GUI.
После установки проверьте, что служба libvirtd запущена:
systemctl status libvirtdЕсли вы будете использовать virt‑manager, добавьте пользователя в группу libvirt и kvm:
sudo usermod -aG libvirt,kvm $USER
newgrp libvirtЗатем выйдите и войдите в систему, чтобы группы обновились.
Скачивание macOS и инструментов foxlet
Мы используем проект macOS‑Simple‑KVM (foxlet) для упрощения установки. Перейдите в папку Загрузок и скачайте архив:
cd ~/Downloads
wget https://github.com/foxlet/macOS-Simple-KVM/archive/refs/heads/master.zip
unzip master.zipПосле распаковки вы получите папку macOS-Simple-KVM-master.
Создание папки KVM для виртуальных машин
Для удобства создайте каталог ~/KVM и переместите туда инструменты, одновременно переименовав папку:
mkdir -p ~/KVM
mv ~/Downloads/macOS-Simple-KVM-master/ ~/KVM/macOS
cd ~/KVM/macOSТеперь все скрипты и образы будут храниться централизованно.
Создание виртуального диска и загрузка образа macOS
Проект foxlet содержит скрипт jumpstart, который скачивает базовый образ установки macOS (на момент написания — Catalina/релевантный образ). Запустите его из папки macOS:
./jumpstartПосле скачивания создайте виртуальный диск в формате qcow2:
qemu-img create -f qcow2 mac_os.qcow2 64GПояснение: формат qcow2 поддерживает компактное хранение и снимки. Вы указываете «виртуальный» размер 64G; фактический файл на диске будет расти динамически.
Настройка виртуальной машины: правки basic.sh
Файл basic.sh задаёт параметры запуска QEMU. Откройте его в текстовом редакторе и добавьте ниже существующих опций следующие две строки, чтобы подключить созданный диск:
-drive id=SystemDisk,if=none,file=mac_os.qcow2
-device ide-hd,bus=sata.4,drive=SystemDiskПолезные параметры, которые можно изменить в basic.sh:
- -m — объём оперативной памяти (указывается в мегабайтах или гигабайтах, например: -m 8192).
- -smp cores=4 — количество виртуальных CPU.
- Параметры видеокарты и разрешения (например, QXL/Spice или стандартное VNC).
Совет: сохраняйте резервную копию basic.sh перед изменениями.
Запуск установки macOS
Запустите скрипт basic.sh в каталоге macOS:
./basic.shПосле запуска вы увидите загрузочный экран установки macOS. На многих системах мышь может не работать корректно в окне QEMU; в таком случае используйте клавиши курсора и Enter.
Чтобы вернуть мышь и клавиатуру хоста (освободить фокус окна виртуальной машины), используйте сочетание:
- Ctrl + Alt + G
Важно: внимательно читайте лицензионное соглашение при установке и решайте сами, соглашаться ли с его условиями.
Форматирование виртуального диска
Перед установкой откройте Дисковую утилиту (Disk Utility) и отформатируйте mac_os.qcow2. Рекомендуемые параметры:
- Формат: Apple File System (APFS)
- Схема: GUID Partition Map
- Имя: MainDisk
Выберите диск в левой панели, нажмите «Стереть», укажите имя и формат, затем подтвердите.
После форматирования закройте утилиту и выберите «Переустановить macOS» (Reinstall macOS). Выберите диск MainDisk и нажмите «Продолжить».
Процесс установки может занять значительное время. Будьте терпеливы; в это время виртуальная машина выполняет распаковку образов и запись на qcow2.
Первичная настройка macOS
После завершения установки система предложит выполнить базовую конфигурацию: регион, язык, настройки приватности, создание учётной записи и т. п. Следуйте экранам установщика.
Основные шаги:
- Выбор региона и языка.
- Согласие с условиями и настройка отправки аналитики.
- Пропуск переноса данных (опционально).
- Создание пользователя и пароля.
- Выбор оформления (Light/Dark).
Если требуется, вы можете войти в Apple ID на этом этапе или пропустить его.
Когда установка и первоначальная настройка завершены, вы увидите рабочий стол macOS.
Запуск и остановка виртуальной машины
Чтобы корректно остановить виртуальную машину, в терминале, где выполняется basic.sh, нажмите:
Ctrl + CПосле остановки можно перезапустить VM той же командой:
./basic.shПри загрузке выберите «Boot macOS from MainDisk» в меню загрузчика QEMU.
Дополнительные настройки и отладка
Эта инструкция фокусируется на процессе установки. Ниже — полезные доработки, которые чаще встречаются у пользователей:
- Экранное разрешение: правьте параметры графики в basic.sh, добавляйте гостевые расширения (если доступны) или используйте Spice/VNC для управления.
- Сеть: по умолчанию VM использует сетевой стек хоста. Для специальных сетевых конфигураций настройте bridge или macvtap.
- Аудио: настройка passthrough/эмуляции звука требует дополнительных параметров в QEMU.
- Снимки (snapshots): используйте qemu‑img snapshot для создания контрольных точек перед экспериментами.
Частые проблемы и их решения
- Мышь не работает: используйте Ctrl+Alt+G для выхода/входа, попробуйте включить USB‑таблетку в параметрах QEMU.
- Установка зависает: увеличьте выделенную оперативную память и число ядер CPU. Закройте ресурсоёмкие приложения на хосте.
- Образ не скачался jumpstart: проверьте подключение к интернету и доступ к GitHub; попробуйте скачать вручную.
- MacOS не видит диск для установки: проверьте строки, добавленные в basic.sh, и правильность имени mac_os.qcow2.
Примеры команд для отладки образов:
qemu-img info mac_os.qcow2
qemu-img check mac_os.qcow2Безопасность и приватность
- Отключите автоматический общий буфер или интеграцию, если хотите изолировать VM от хоста.
- В macOS создайте отдельную учётную запись без прав администратора для повседневной работы.
- Если вы передаёте данные между хостом и гостем, учитывайте местные правила приватности и лицензии.
Совместимость и ограничения
- На некоторых материнских платах и CPU могут понадобиться дополнительные параметры в basic.sh для корректной эмуляции SMC/AGPM.
- Не все функции macOS (например, Metal/графические ускорители) будут работать на полноценно на виртуализованном железе.
- Аппаратная поддержка GPU passthrough возможна, но требует тонкой настройки и часто работает нестабильно с macOS.
Альтернативные подходы
- VirtualBox/VMware: проще для базовых случаев, но с меньшей гибкостью и без tight интеграции с KVM.
- Hackintosh (прямая установка на физический PC): более сложная и рискованная опция, требует патчей и особых драйверов.
- Использование облачных macOS‑инстансов (если требуется тестирование совместимости и у вас есть бюджет).
Когда не подходит этот метод:
- Если вам нужна полная аппаратная графическая поддержка (игры, Metal), виртуализация может быть ограничением.
- Если лицензионные ограничения запрещают запуск macOS на вашем оборудовании.
Практические шаблоны и чек‑лист
Контрольный список перед началом:
- Проверил поддержку виртуализации в BIOS/UEFI
- Свободно ≥ 100 ГБ на диске
- Выделено ≥ 8 ГБ RAM (рекомендовано 16 ГБ)
- Установлены qemu, qemu-utils, libvirt, virt-manager
- Скачан macOS‑Simple‑KVM и выполнен ./jumpstart
- Создан файл mac_os.qcow2 64G
- Добавлены строки для SystemDisk в basic.sh
- Сохранена резервная копия basic.sh
Критерии приёмки (после установки):
- Система загружается в рабочий стол macOS без критических ошибок.
- Виртуальный диск виден и отформатирован как APFS.
- Учетная запись создана и можно выполнить базовые действия (Safari/Terminal).
- Возможность корректно остановить и перезапустить VM через ./basic.sh.
Роль‑ориентированные рекомендации:
- Сисадмин: автоматизируйте создание образов и снимков; документируйте параметры basic.sh и модификации.
- Разработчик: держите отдельный snapshot перед установкой приложений, которые вы тестируете.
- QA‑инженер: фиксируйте версии macOS и метод установки для повторяемости тестов.
Мини‑методология для повторяемой установки
- Подготовьте чистую папку ~/KVM/macOS и резервную копию basic.sh.
- Выполните ./jumpstart и дождитесь скачивания образа.
- Создайте mac_os.qcow2 и добавьте его в basic.sh.
- Запустите ./basic.sh и следуйте установщику.
- Сделайте снимок (snapshot) после первой загрузки и настройки системы.
Mermaid: поток принятия решения
flowchart TD
A[Нужна macOS на Ubuntu?] --> B{Цель использования}
B -->|Разработка/Тесты| C[Использовать QEMU+KVM]
B -->|Игры/графика| D[Рассмотреть Hackintosh или физический Mac]
B -->|Разовое тестирование| E[Использовать облачный macOS или VM в облаке]
C --> F[Следовать этому руководству]Тестовые случаи и критерии приёмки
- Установка завершилась успешно и system boots — пройдена.
- Сеть работает внутри гостевой системы (ping google.com) — пройдена.
- Можно создать файл на рабочем столе гостя и прочитать его с хоста (если настроены общие папки) — опционально.
- Перезагрузка гостя проходит без ошибок — пройдена.
Советы по производительности
- Выделите 2–4 виртуальных ядра и не менее 8 ГБ RAM для комфортной работы.
- Используйте SSD‑диск на хосте: это сильно ускоряет работу qcow2.
- Отключите ненужные сервисы на хосте во время установки.
Резюме
Установка macOS на Ubuntu через QEMU+KVM возможна и управляемая. Этот подход удобен для разработки и тестирования приложений под macOS, когда нет физического Mac. Следуйте шагам: подготовка среды, скачивание foxlet, создание qcow2, правки basic.sh и установка macOS. В конце создайте snapshot и документируйте параметры для повторяемости.
Важные выводы:
- QEMU+KVM даёт гибкость и контроль, но не обеспечивает полной аппаратной поддержки графики.
- Тщательно проверьте лицензионные требования и совместимость оборудования.
Если вам нужны расширенные инструкции по настройке графики, passthrough GPU или созданию автоматизированных CI‑пакетов — напишите, и я подготовлю дополнительное пошаговое руководство.
Похожие материалы
Как устроить идеальную вечеринку для просмотра ТВ
Как распаковать несколько RAR‑файлов сразу
Приватный просмотр в Linux: как и зачем
Windows 11 не видит iPod — способы исправить
PS5: как настроить игровые пресеты