Главное преимущество Banana Pi M2 Berry перед Raspberry Pi — родной SATA-порт прямо с чипа Allwinner V40. Реальные 100–160 МБ/с против ~30 МБ/с у диска через USB 2.0, и ресурс SSD вместо ресурса microSD-карты, которая под нагрузкой сервера живёт год-два. Разберём, как перенести систему на SSD правильно.
Важное ограничение платы
Загрузиться напрямую с SATA плата не умеет: загрузчик чипа Allwinner стартует только с microSD. Поэтому рабочая схема выглядит так: загрузчик и ядро остаются на SD-карте, а корневая файловая система (rootfs) переезжает на SSD. Карта нужна всегда, но после старта вся работа идёт с диска — нагрузки на карту почти нет, подойдёт любая надёжная на 8 ГБ.
Что понадобится
- Banana Pi M2 Berry с установленным Armbian (образ для платы называется Banana Pi M2 Ultra — это нормально, у них общий чип)
- microSD-карта с рабочей системой
- 2.5" SATA SSD и два кабеля: SATA-данные и питание диска (питание подключается к отдельному 4-pin разъёму на плате рядом с SATA-портом)
Шаг 1. Настраиваем зеркало репозитория
Штатный редиректор Armbian может направлять на медленные или недоступные зеркала — загрузка пакетов будет обрываться по таймауту. Надёжнее прописать зеркало Яндекса напрямую:
sudo nano /etc/apt/sources.list.d/armbian.sourcesНайдите строку URIs и замените её:
URIs: https://mirror.yandex.ru/mirrors/armbian/aptЕсли система стоит на beta-репозитории (в URI присутствует beta), путь будет https://mirror.yandex.ru/mirrors/armbian/beta. В одной строке URIs можно указать несколько зеркал через пробел — apt переберёт их по порядку, если первое недоступно.
Обновите индекс:
sudo apt updateШаг 2. Проверяем, что система видит диск
Подключите SSD и загрузите плату. Смотрим, определился ли диск:
dmesg | grep -i ata
lsblkВ выводе dmesg должны быть строки вида:
ahci-sunxi 1c18000.sata: AHCI vers 0001.0100, 32 command slots, 3 Gbps
ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata1.00: ATA-10: KINGSTON SA400S37240G, max UDMA/133SATA link up — контроллер работает, диск на связи. В lsblk диск появится как sda. Если строк про SATA нет вообще — контроллер не активирован в device tree вашей сборки; проверьте, что установлен пакет linux-dtb, соответствующий вашему ядру.
Заодно стоит проверить здоровье диска:
sudo apt install smartmontools -y
sudo smartctl -H /dev/sdaОтвет PASSED — можно продолжать.
Шаг 3. Запускаем перенос через armbian-config
В свежих версиях Armbian перенос системы спрятан в конфигураторе:
sudo apt install armbian-config -y
sudo armbian-configПуть по меню: System → Storage → пункт STO001 «Copy the running Armbian system to another device». В старых сборках то же самое делает команда nand-sata-install — это один и тот же мастер.
Мастер спросит:
1. Целевое устройство — выбирайте /dev/sda
2. Вариант установки — «Boot from SD, system on SATA/USB» (загрузчик на карте, система на диске)
3. Файловую систему — ext4
4. Подтверждение стирания диска
Дальше идёт копирование rootfs — 10–20 минут в зависимости от объёма установленного. Мастер сам разметит диск, скопирует систему и поправит конфигурацию загрузки. По завершении соглашайтесь на перезагрузку.
Шаг 4. Проверяем результат
После перезагрузки:
lsblk
df -h /Правильная картина выглядит так:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 223,6G 0 disk
└─sda1 8:1 0 223,6G 0 part /
mmcblk0 179:0 0 58G 0 disk
└─mmcblk0p1 179:1 0 57,4G 0 part /bootКорень / смонтирован с sda1, на карте остался только /boot. Всё, система живёт на SSD.
Если в сборке настроен zram (своп и /var/log в сжатой памяти) — он останется как был. Это правильная конфигурация для одноплатника, трогать её не нужно.
Как это устроено внутри
Магии в переносе нет. Мастер делает три вещи: создаёт раздел ext4 на диске, копирует туда корневую систему через rsync и меняет одну строку в файле /boot/armbianEnv.txt на SD-карте:
rootdev=UUID=<uuid-раздела-на-ssd>Ядро при загрузке читает этот параметр и монтирует корень с указанного устройства. Зная это, перенос можно выполнить и полностью вручную — fdisk, mkfs.ext4, rsync с исключением служебных каталогов, правка rootdev и записи в /etc/fstab.
Откат, если что-то пошло не так
Главная страховка этой схемы: SD-карта остаётся загрузочной. Если после переноса плата не поднялась, вставьте карту в компьютер и в файле /boot/armbianEnv.txt верните старое значение:
rootdev=/dev/mmcblk0p1Система снова загрузится с карты, как до переноса — на карте всё осталось нетронутым.
Финальные штрихи
Прогоните систему под нагрузкой, чтобы убедиться в стабильности связки:
sudo apt install stress-ng -y
stress-ng --cpu 4 --hdd 1 --timeout 300
dmesg | grep -iE 'reset|fail' | tailПять минут без ошибок ata в dmesg — конфигурация рабочая.
И обязательно снимите образ SD-карты (dd или Win32DiskImager на компьютере): после переноса она содержит только загрузчик и ядро, образ маленький, а восстановление при выходе карты из строя займёт минуты. Обновления ядра через apt продолжат работать штатно — /boot смонтирован с карты, пакеты обновляются туда сами.
Итог
Перенос системы на SSD — обязательный шаг для любой серьёзной задачи на M2 Berry: сервера, NAS, хостинга. Схема «загрузка с SD, система на SATA» настраивается одним мастером за 20 минут, легко откатывается правкой одной строки и раскрывает главное железное преимущество этой платы над одноклассниками.