
Проверена работа на:
Vontar X3: https://ali.click/4f1izt?erid=2SDnje2YK7W
H96MAX: https://ali.click/gh1izh?erid=2SDnjf3qpPJ
Orange pi 5 pro: https://ali.click/8k1iz6?erid=2SDnjcYZNFS
В этой статье расскажу как установить и запустить Proxmox для ARM процессоров. Он полноценный ( не какой-то там костыль).
Китайцы решили, что так как ARM архитектура развивается, а Proxmox поддерживает только x86 процессоры, то сделать такой-же proxmox, но только для ARM процессоров (надо еще и чтоб на RISK-V сделали еще).
И они создали свой проект под названием PXVIRT (чтоб не конкурировать с porxmox по авторским правам, по этому взяли другое название, но по сути это и есть proxmox).
PXVIRT поддерживается постоянно, уже даже вышла 9 версия, не отставая от proxmox.
Подготовка к установке PXVIRT:
Установка PXVIRT хорошо расписана прям на официальном сайте https://docs.pxvirt.lierfang.com/en/installfromdebian.html, но я решил её немного дополнить установкой HAOS (home assistant operation system) и объяснить.
Сначала нужно разобраться с операционной системой. Proxmox работает только на операционной системе debian bookworm и выше. Так-же нужно, чтоб в ядре операционной системы на одноплатных арм компьютерах была включена виртуализация, но тут не узнаешь, пока не установишь PXVIRT.
Для установки, нам сначала нужно установить ключи GPG. Это делается этой командой:
curl -L https://mirrors.lierfang.com/pxcloud/lierfang.gpg -o /etc/apt/trusted.gpg.d/lierfang.gpg
Далее добавляем репозитории PXVIRT. С них будем устанавливать потом PXVIRT:
source /etc/os-release
echo "deb https://mirrors.lierfang.com/pxcloud/pxvirt $VERSION_CODENAME main">/etc/apt/sources.list.d/pxvirt-sources.list
Proxmox работает с доменными именами плотно. И для него важно как называется hostname и его сопастовление с ip адресом.
По этому давайте изменим hostname нашему серверу на “pxvirt“.
nano /etc/hostname
И в этом файле пишем:
pxvirt

После этого нам нужно сопоставить ip адрес локальный который имеет сервер будущий Pxvirt и его имя pxvirt и pxvirt.local.
nano /etc/hosts
И туда записываем по сути одну строчку 10.10.10.10 pxvirt.local pxvirt. Где 10.10.10.10 – это ваш ip адрес сервера.
127.0.0.1 localhost
# Add hostname information below
10.10.10.10 pxvirt.local pxvirt
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Proxmox не любит wifi и без костылей не работает с ним. А в нашем одноплатнике wifi это всегда основное. И вот нам нужно отключить networkmanager, который будет работать с wifi и с сетью и установить в замен его ifupdown2.
Останавливаем NetworkManager:
systemctl disable NetworkManager
systemctl stop NetworkManager
Далее установим ifupdown2:
apt update
apt install ifupdown2 -y
rm /etc/network/interfaces.new
rm /etc/network/interfaces.new – скорее всего не найдёт файл для удаления, но ничего страшного идём далее.
Далее нам нужно настроить сеть. Proxmox работает со статически настроенным сетевым интерфейсом. Это давайте и сделаем.
Сначала напишем ip a команду и узнаем имя вашего интерфейса:
ip a

мой интерфейс называется enP4p65s0. Его нужно запомнить, мы далее его будем прописывать.
Далее идём редактировать сетевой интерфейс:
nano /etc/network/interfaces
И все стираем с файла кроме первой строки и вставляем туда следующий код:
auto enP4p65s0
iface enP4p65s0 inet static
address 10.155.222.220/24
gateway 10.155.222.254

Тут в двух местах имя сетевого интерфейса меняется обратите внимание. Ну и ip адрес тоже укажите свой.
После этого перезагружаем сервер и если он запустится с тем же ip адресом, значит сеть мы настроили правильно и можем приступать к следующему шагу:
sudo reboot
Установка PXVIRT:
Обновляем пакеты:
apt update
И устанавливаем PXVIRT:
apt install proxmox-ve pve-manager qemu-server pve-cluster
После установки, вбиваем в браузер https://ваш_ip:8006 и логин и пароль будет root, а пароль который и был в операционной системе

Но нужно еще провести настройки сети в самом web интерфейсе PXVIRT.
Дело в том, что, чтоб установленные виртуальные машины работали с сетью через один физический интерфейс сетевой вашего сервера, нужно создать виртуальный сетевой интерфейс в proxmox.
Это делается следующим образом:
Идём в pxvirt -> Network

И удаляем интерфейс enP4p65s0 (у вас свой)? чтоб на против него удалился SIDR и Getwey.
Далее создаём новый интерфейс кнопкой Create -> Linux Bridge:

В настройках прописывает ip адрес с маской 24. Шлюз (gateway) и сетевой интерфейс через который Linux Bridge будет работать. У меня это enP4p65s0


И на этом настройка работы PXVIRT закончена.
Установка виртуальных машин на PXVIRT:
Мы же помним, что на одноплатные компьютеры операционная система не так устанавливается как на компьютеры x86 архитектуры. На АРМ мы просто готовый образ .img устанавливаем на флешку и грузимся с неё.
Так и тут в proxmox, будем устанавливать готовые образы. Я покажу на примере Home Assistant Operating system.
Идём на их официальный сайт и ищем там последний образ операционной системы https://github.com/home-assistant/operating-system
Тут ищем образ архитектуры aarch64 и в формате qcow2.

Правой кнопкой по этому образу на github нажмите, скопируйте ссылку на файл. После этого идём в консоль и выполняем команду wget и данную ссылку туда копируем:
wget https://github.com/home-assistant/operating-system/releases/download/17.1/haos_generic-aarch64-17.1.qcow2.xz
Таким образом мы скачаем файл haos_generic-aarch64-17.1.qcow2.xz и он в архиве .xz находится. Нужно его разархивировать. Это делается командой:
xz -d haos_generic-aarch64-17.1.qcow2.xz
Останется файл haos_generic-aarch64-17.1.qcow2 и его уже можно устанавливать как виртуальную машину.
haos_generic-aarch64-17.1.qcow2 это диск.
Создаём новую виртуальную машину в web интерфейсе proxmox pxvirt->create:
И тут на первой странице указываем имя виртуальной машины “HAOS” в моём случае, остальное не трогаем:

На второй вкладке “System” .Выбираем место, где будет храниться виртуальная машины в пункте “EFI Storage”

На вкладке “Disks” удаляем scsi0.

Ну а далее уже интуитивно понятно, выбираем CPU, выбираем сколько оперативной памяти выделяем виртуальной машине. И создаём эту виртуальную машину.

Ну а теперь тот образ который мы скачали и разархивировали, подсовываем созданной виртуальной машине пустой.
qm importdisk 100 haos_generic-aarch64-17.1.qcow2 local
Где 100 – это номер виртуальной машины в web интерфейсе.
haos_generic-aarch64-17.1.qcow2 название образа.
local это имя диска на который мы выбрали в пункте EFI Storage
Нажимаем Etner. После чего произойдёт установка диска:

После этого идём в web интерфейс PXVIRT (proxmox), выбираем Виртуальную машину которую создали. Переходим во вкладку “Hardware” и видим там Unused Disk 0 – это диск который только что мы добавили через консоль.

Нажимаем по Unused Disk 0 2 раза. И в открывшемся окне, выбираем в пункте “Bus/Device” -> VirtIO Block.
После этого Unused Disk 0 пропадёт и появится “Hard Disj (virtio0)“.

Но диск всего на 6GB, по этому лучше выделить его, нажать Disk Action -> Resize и добавить ему гигабайтов с вашего хранилища.

Вот таким не хитрым образом мы установили Porxmox на арм компьютер и создали виртуальную машину. Теперь её запускаем и наслаждаемся работой HAOS на практически любом одноплатном компьютере и тв приставке.