Настройка VirtualBox-фермы в окружении LimaVm для Mac c архитектурой AArch64

Дмитрй Гаврин, 2024-02-18

Требования и необходимое ПО

И lima, и brew нужно устанавливать без поддержки rosetta2, т.е. изначально brew должен быть установлен с архитектурой arm64

Подготовка хост-системы

Проверяем архитектуру

   1 % arch
   2 arm64
   3 

Ставим brew на целевую архитектуру и проверяем что он установлен в /opt/homebrew

   1 % arch -arm64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
   2 % which brew
   3 /opt/homebrew/bin/brew
   4 

Устанавливаем 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 

Проверяем, ВМ создана и её можно запускать:

   1 % limactl list
   2 NAME             STATUS     SSH            VMTYPE    ARCH      CPUS    MEMORY    DISK      DIR
   3 virtualbox-vm    Stopped    127.0.0.1:0    qemu      x86_64    4       4GiB      100GiB    ~/.lima/virtualbox-vm
   4 

Перед запуском ВМ не забываем что нам понадобится X11. Поэтому правим настройки как показано в этом треде

   1 % limactl edit virtualbox-vm
   2 
   3 # добавляем в конфиг этой ВМ
   4 ssh:
   5   forwardX11: true
   6 

это можно будет сделать и позже, но для этого потребуется остановить ВМ.

Запускаем ВМ и подключаемся к ней

   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

   1 user@lima-virtualbox-vm:/Users/user$ sudo apt-get install -y virtualbox
   2 Reading package lists... Done
   3 Building dependency tree... Done
   4 ...
   5 ...
   6 No VM guests are running outdated hypervisor (qemu) binaries on this host.
   7 

Скачивание и импорт 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

screenshot.jpg

Запустить ВМ удалось только после выключения аппаратной виртуализации в настройках ВМ ALT (Settings -> Acceleration)

Доступ без графики

Все сценарии работают в Ubuntu удовлетворительно.

Потребуется установить socat

   1 user@lima-virtualbox-vm:~$ sudo apt install socat

LecturesCMC/LinuxNetwork2024/LimaVm (последним исправлял пользователь FrBrGeorge 2024-03-18 10:19:30)