Настройка VirtualBox-фермы в окружении LimaVm для Mac c архитектурой AArch64
Дмитрй Гаврин, 2024-02-18
Требования и необходимое ПО
Mac M1[2,3] архитектуры apple silicon (AArch64, она же arm64)
brew (пакетный менеджер)
lima (рантайм запуска приложений в изолированном окружении)
xquartz (нужен для запуска графической оболочки Virtualbox)
И lima, и brew нужно устанавливать без поддержки rosetta2, т.е. изначально brew должен быть установлен с архитектурой arm64
Подготовка хост-системы
Проверяем архитектуру
Ставим brew на целевую архитектуру и проверяем что он установлен в /opt/homebrew
Устанавливаем lima
1 % brew install lima
Устанавливаем xquartz
1 % brew install --cask xquartz
После установки xquartz потребуется перезапуск. Иначе окошки работать не будут. Проверено.
Подготовка окружения для запуска Virtualbox
Нам нужно запускать Virtualbox на архитектуре x86_64, так что понадобится ВМ под управлением QEMU с полной эмуляцией.
При создании ВМ в меню можно выбрать версию ОС. Для простоты будем использовать ubuntu, но можно поэкспериментировать и с другими ОС, вдруг на них virtualbox работает лучше (не проверял).
1 % limactl create --vm-type=qemu --arch=x86_64 --name=virtualbox-vm
2 ? Creating an instance "virtualbox-vm" Choose another template (docker, podman, archlinux, fedora, ...)
3 ? Choose a template [Use arrows to move, type to filter]
4 podman
5 rocky-8
6 rocky-9
7 rocky
8 > ubuntu-lts
9 ubuntu
10 vmnet
11
Проверяем, ВМ создана и её можно запускать:
Перед запуском ВМ не забываем что нам понадобится X11. Поэтому правим настройки как показано в этом треде
это можно будет сделать и позже, но для этого потребуется остановить ВМ.
Запускаем ВМ и подключаемся к ней
1 user@MacBook-Pro-user ~ % limactl start virtualbox-vm
2 INFO[0000] Using the existing instance "virtualbox-vm"
3 INFO[0000] Starting the instance "virtualbox-vm" with VM driver "qemu"
4 ...
5 INFO[0223] [hostagent] The final requirement 1 of 1 is satisfied
6 INFO[0223] READY. Run `limactl shell virtualbox-vm` to open the shell.
7
8 % limactl shell virtualbox-vm
9 user@lima-virtualbox-vm:/Users/user$ arch
10 x86_64
11 user@lima-virtualbox-vm:/Users/user$ lsb_release -a
12 No LSB modules are available.
13 Distributor ID: Ubuntu
14 Description: Ubuntu 22.04.3 LTS
15 Release: 22.04
16 Codename: jammy
17
Далее устанавливаем на ВМ virtualbox
Скачивание и импорт VBox-виртуалок по инструкции из лекции
Скачиваем и импортируем ВМ
1 user@lima-virtualbox-vm:/Users/user$ wget https://gist.githubusercontent.com/FrBrGeorge/c921100590f1ff06524c574b0cf72545/raw/b74c1c300189bc8f3726dcda58940aa825bd09fb/dl-cloud-mail-ru.sh
2 user@lima-virtualbox-vm:/Users/user$ chmod +x dl-cloud-mail-ru.sh
3 user@lima-virtualbox-vm:~$ ./dl-cloud-mail-ru.sh https://cloud.mail.ru/public/LNbQ/Wrh4cAvKe ALT_minimal.ova
4 ...
5 Saving to: ‘ALT_minimal.ova’
6
7 ALT_minimal.ova 100%[===================================================================>] 248.03M 15.5MB/s in 33s
8
9 2024-02-17 23:51:21 (7.62 MB/s) - ‘ALT_minimal.ova’ saved [260082176/260082176]
10
11 user@lima-virtualbox-vm:~$ vboxmanage import ALT_minimal.ova
12 …
13
Доступ к образу ВМ с хостовой машины
Т.к. к окружению qemu монтируется домашняя директория хостовой машины, можно скачать образ через браузер и импортировать его с /Users/user/Downloads/, не засоряя диск окружения
Теперь можно запускать virtualbox
1 user@lima-virtualbox-vm:~$ virtualbox
Запустить ВМ удалось только после выключения аппаратной виртуализации в настройках ВМ ALT (Settings -> Acceleration)
Доступ без графики
Все сценарии работают в Ubuntu удовлетворительно.
Потребуется установить socat
1 user@lima-virtualbox-vm:~$ sudo apt install socat