Установка Armbian c grub
Установка Armbian с grub на систему с UEFI возможна на любой тип ностиеля, что избавляет от проблемы прошивки SPI для каждого из типа дисков, и возможные проблемы совместимости с другими дисками. Возможно путь в данном руководстве не самый оптимальный но рабочий.
В случае установки в данном примере понадобится:
- SD карточка
- образ Armbian
- Микрокомпьютер с arm
- Установленный целевой диск на микрокомпьютере(в моем случае это NVMe на 256gb)
- интернет на миникомпьютере
Подготовка SD карты
загрузить последний образ Armbian на компьютер для своей системы. В данном случае это образ Armbian для Orangepi 5
С помощью BalenaEther или любой удобной утилиты как Rufus или dd(можно и dc3dd, ставится через apt) записать образ на sd карту
Вставить эту карту в миникомпьютер, включить его
Запись образа на диск
Подключиться к операционной системе миникомпьютера. Пройти первоначальный wizard для настройки пользователей и сети
Удобней будет по SSH подключиться к этому миникомпьютеру, и все дальнейшие действия выполнять по SSH
Первым делом на сам миникомпьютер скачать требуемый образ Armbian. В данном случае всегда будет скачиваться последний образ Armbian
Пофиксить проблему с DNS. Разбираться не стал, просто удаляю симлинк /etc/resolv.confrm -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.confrm -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, приведя его к виду как на изображении (uuid разделов не менять, добавить только строку с devicetree):
После этого необходимо выйти из chroot и отмонтировать все разделы:
exit
umount /mnt/EFI
umount /mnt/proc
umount /mnt/sys
umount /mnt/dev
umount /mnt
sync
Всё, теперь систему можно перезагружать, обязательно вынув sd карту и она загрузится в новую установленную систему.
Нет комментариев