# Установка Armbian c grub

Установка Armbian с grub на систему с UEFI возможна на любой тип ностиеля, что избавляет от проблемы прошивки SPI для каждого из типа дисков, и возможные проблемы совместимости с другими дисками. <b>Возможно путь в данном руководстве не самый оптимальный но рабочий.</b>

В случае установки в данном примере понадобится:
1) SD карточка
2) образ Armbian
3) Микрокомпьютер с arm
4) Установленный целевой диск на микрокомпьютере(в моем случае это NVMe на 256gb)
5) интернет на миникомпьютере

### Подготовка SD карты
загрузить последний [образ Armbian](https://www.armbian.com/orangepi-5/) на компьютер для своей системы. В данном случае это образ Armbian для Orangepi 5

С помощью [BalenaEther](https://etcher.balena.io/) или любой удобной утилиты как Rufus или dd(можно и dc3dd, ставится через apt) записать образ на sd карту

Вставить эту карту в миникомпьютер, включить его

### Запись образа на диск
Подключиться к операционной системе миникомпьютера. Пройти первоначальный wizard для настройки пользователей и сети

Удобней будет по SSH подключиться к этому миникомпьютеру, и все дальнейшие действия выполнять по <b>SSH</b>

Первым делом на сам миникомпьютер скачать требуемый образ Armbian. В данном случае всегда будет скачиваться последний образ Armbian

Пофиксить проблему с DNS. Разбираться не стал, просто удаляю симлинк  /etc/resolv.conf```rm -rf /etc/resolv.conf``` и создаю новый с указанием своего DNS например: ```echo nameserver 192.168.1.1 > /etc/resolv.conf```

```
curl -o armbian_bookworm_minimal.img.xz -L https://dl.armbian.com/orangepi5/Bookworm_vendor_minimal
```
Установить dc3dd (работает сильно быстрее dd с дефолтными настройками, вероятно сам подбирает размер блока и параметры работы с кэшами)
```
apt install -y dc3dd
```
распаковать скачанный образ armbian:
```
xz -d armbian_bookworm_minimal.img.xz
```
раcпакованный образ записать на NVMe(полностью диск без разделов) с помощью dc3dd
```
dc3dd if=armbian_bookworm_minimal.img of=/dev/nvme0n1
```
Теперь на диске появился раздел /dev/nvme0n1p1. Надо заново записать его в образ(но теперь это будет образ партиции и не всего диска)
```
dc3dd if=/dev/nvme0n1p1 of=armbian_bookworm_minimal-part.img
```
Разбить диск с помощью fdisk(```fdisk /dev/nvme0n1```)
- 1 раздел - 512mb c типом раздела vfat. Он будет использован для uefi
- 2 раздел - все остальное, будет использовано для всего остального, в том числе и boot

Отформатировать первый раздел под vfat:
```
mkfs.vfat -F 32 /dev/nvme0n1p1
```
На второй раздел записать образ раздела armbian:
```
dc3dd if=armbian_bookworm_minimal-part.img of=/dev/nvme0n1p2
```
### Настройка Armbian для загрузки Grub
Можно сказать что образ Armbian установлен на диск, но его ещё надо настроить для корректной загрузки из grub
Для этого надо сделать chroot в этот диск:
```
mount /dev/nvme0n1p2 /mnt
mkdir /mnt/EFI
mount /dev/nvme0n1p1 /mnt/EFI
mount -t proc /proc /mnt/proc
mount -o bind /sys /mnt/sys
mount -o bind /dev /mnt/dev
chroot /mnt
```
Внутри новой системы тоже пофиксить проблему с DNS. Разбираться не стал, просто удаляю симлинк  /etc/resolv.conf```rm
-rf /etc/resolv.conf``` и создаю новый с указанием своего DNS например: ```echo nameserver 192.168.1.1 > /etc/resolv.conf```

установить необходимые пакеты
```
apt update
apt install -y vim grub2-common grub-efi
```
Установить GRUB
```
grub-install --target=arm64-efi --efi-directory=/EFI --boot-directory=/boot --removable
```
В файле /etc/default/grub привести строку GRUB_CMDLINE_LINUX_DEFAULT к следующему виду:
```
GRUB_CMDLINE_LINUX_DEFAULT="rootwait rootfstype=ext4"
```
сохранить файл и создать файл grub:
```
grub-mkconfig -o /boot/grub/grub.cfg
```
Так как данная версия grub-mkconfig не поддерживает автоматическое создание devicetree, вписать это в grub самому. для этого открыть ```/boot/grub/grub.cfg``` и в нем добавить строку ```devicetree /boot/dtb/rockchip/rk3588s-orangepi-5.dtb``` в меню загрузки для orangepi 5, приведя его к виду как на изображении (<b>uuid разделов не менять, добавить только строку с devicetree</b>):
[![Screenshot_2.png](https://docs.resds.ru/uploads/images/gallery/2025-03/scaled-1680-/REOCxEvniJEhr2Jd-screenshot-2.png)](https://docs.resds.ru/uploads/images/gallery/2025-03/REOCxEvniJEhr2Jd-screenshot-2.png)

После этого необходимо выйти из chroot и отмонтировать все разделы:
```
exit
```
```
umount /mnt/EFI
umount /mnt/proc
umount /mnt/sys
umount /mnt/dev
umount /mnt
sync
```
Всё, теперь систему можно перезагружать, обязательно вынув sd карту и она загрузится в новую установленную систему.