- Регистрация
- 23 Август 2023
- Сообщения
- 2 814
- Лучшие ответы
- 0
- Реакции
- 0
- Баллы
- 51
Offline
Теперь, когда Joel0 из сообщества TrueNAS создал форк TrueNAS, работающий на ARM, я подумал: почему бы не попробовать — на Raspberry Pi.
Сейчас у меня в стойке крутится сервер Ampere на ARM с Linux и ZFS в роли основного сервера хранения, а в студии — Raspberry Pi с четырьмя SATA-SSD и ZFS как резервная реплика. Конфигурация этих ARM-NAS опубликована у меня на GitHub.
Я много лет ждал поддержки TrueNAS на ARM, хотя, судя по настроениям в том сообществе, «ARM-серверы недостаточно мощные для серьёзных серверов хранения» — несмотря на то, что я и многие другие годами успешно их используем… но это к делу не относится.
На Raspberry Pi?
Да, именно так.
Я неоднократно убеждался: запуск современных приложений на более слабом железе — отличный способ вскрыть мелкие недочёты в конфигурации, а заодно понять, как заставить те же приложения работать заметно лучше на более мощных машинах.
Raspberry Pi 5 NAS c SSDs
От моего Pi Dramble до Petabyte Pi Project — запуск софта, рассчитанного на куда более серьёзное железо, многому меня научил. Так что, возможно, запуск TrueNAS, которому требуется 8 ГБ ОЗУ и не менее 16 ГБ на системный диск, станет неплохим учебным упражнением.
Я делал это на x86-серверах, но это скучно. Слишком просто. Когда проект проходит без сучка и задоринки, я мало чему учусь и не вынужден разбираться в конфигурационных тонкостях.
Полную демонстрацию можно посмотреть на видео, а ниже — текстовая версия:
На Raspberry Pi нет UEFI
Одна заметная проблема Raspberry Pi — отсутствие официальной поддержки UEFI, стандартного способа загрузки компьютеров и интерфейса взаимодействия операционных систем с прошивкой устройства. Официально Raspberry Pi поддерживает только загрузку Linux на основе дерева устройств (Device Tree), что гораздо менее стандартизовано. Это означает, что на Pi нельзя просто поставить «любой» дистрибутив Linux — нужны сборки, адаптированные под Pi. Для Pi действительно есть хорошие ОС, например Raspberry Pi OS на базе Debian. Но это не то же самое, что взять Windows для ARM и поставить её на мою рабочую станцию Ampere.
Чтобы обойти это ограничение, приходится опираться на форк проекта Windows on Raspberry Pi. Конкретно я использую форк rpi5-uefi от NumberOneGit.
Чтобы включить поддержку UEFI на вашем Pi 5 (для CM5 процесс может немного отличаться):
Raspberry Pi 5 UEFI Boot меню
TrueNAS на Pi 5
Теперь, когда Pi загружается в режиме UEFI, можно установить TrueNAS. Для этого:
Должна загрузиться TrueNAS SCALE; первый запуск может занять время, так как многим сервисам нужно впервые сгенерировать файлы, настроиться и запуститься.
Ошибка запуска установщика TrueNAS ix-etc
В моём случае при первом запуске служба ix-etc не запустилась (истёк тайм-аут). Её задача — сформировать содержимое /etc для TrueNAS. После загрузки я вошёл в консоль Linux, выполнил systemctl start ix-etc и перезагрузил систему.
После перезагрузки, похоже, все службы TrueNAS стартовали без проблем, включая веб-интерфейс. Я открыл IP-адрес, показанный в консоли, вошёл пользователем admin, созданным при установке, и увидел панель управления TrueNAS.
TrueNAS работает на Raspberry Pi 5
Текущие ограничения
Сейчас большинство ограничений связано с отсутствующими возможностями в режиме UEFI: поскольку Raspberry Pi ещё не добавила поддержку RP1 в ядро Linux, и никто пока не выполнил реверс-инжиниринг интерфейсов RP1, вы не сможете использовать:
Ограничение по Ethernet особенно раздражает, поскольку приходится использовать внешний USB-Ethernet адаптер — как и на большинстве систем под Windows on ARM без чипов Qualcomm.
Andrea della Porta из SUSE работает над включением поддержки RP1 в апстрим ядра Linux при содействии Raspberry Pi, но прогресс пока довольно медленный.
Всё чаще задаюсь вопросом: почему Raspberry Pi вообще не рассматривает официальную поддержку UEFI? С благословения Microsoft или без него — возможность грузить «ванильную» Windows 11 для ARM на Pi была бы отличной. Да и любой обычный Linux-дистрибутив для ARM (включая TrueNAS SCALE) тогда бы тоже загружался…
Дальнейшие шаги
Недавно ко мне приехал новый железный проект — Homelabs Pi Storage server: он использует кастомный SATA-бэкплейн для CM5 и 3D-печатный корпус под 6-дисковый NAS.
Сервер хранения Homelabs Pi
Я поставил TrueNAS на CM5 Lite (по той же процедуре, что выше), но когда подключил четыре SATA-жёстких диска, они раскрутились, однако не определились. Сейчас поддержка UEFI на Pi 5 не позволяет использовать более одного устройства PCIe, а в Homelabs Pi Storage server стоит PCIe-коммутатор, который разветвляется на 2,5 Гбит/с Ethernet и 6-портовый SATA-контроллер.
Все эти устройства прекрасно работают «из коробки» в Raspberry Pi OS (мне удалось собрать массив ZFS и получить 250 MB/s по 2,5GbE на бэкплейне Homelabs — см. ниже), но под UEFI они пока не распознаются
Homelabs Pi — ZFS-массив, Samba, Windows, 250 МБ/с
Я уже использую «чистый» ZFS под Raspberry Pi OS на другом сервере хранения на базе Raspberry Pi: там четыре SSD и ни одного жёсткого диска. Он устойчиво держит 200 МБ/с на запись, и я предполагаю, что TrueNAS сможет примерно то же.
Есть и платы только под NVMe, вроде GeeekPi N16 Quad-NVMe HAT за $50, — это компактный вариант полностью флешевого сервера. Но опять-таки: поскольку на таких платах стоят PCIe-коммутаторы (у Pi только одна линия PCIe x1), TrueNAS на текущий момент (из-за ограничений UEFI/PCIe-коммутатора) не видит ни один из этих накопителей. Если вы хотите использовать именно TrueNAS, а не просто сами управлять ZFS на Pi, лучший путь — специализированный HAT или SATA-контроллер, либо HBA в режиме IT, чтобы подключать диски напрямую к Pi.
Из-за текущих ограничений UEFI я по-прежнему рекомендую запускать TrueNAS на более производительном ARM-железе (например, серверах Ampere). Если хочется остаться на одноплатниках (SBC), для платформ на RK3588 активно разрабатывается прошивка UEFI. Она может дать больше функциональности для ряда плат — смотрите список совместимости.
Или можно не мудрствовать и поставить TrueNAS на x86, где она полностью поддерживается
Если вам интересно не только ставить TrueNAS на Pi, но и глубже понимать, как работает само «железо», обратите внимание на курс «Электроника и электротехника». Он учит проектировать собственные устройства — от схемы и выбора компонентов до печатной платы и запуска прототипа. На странице курса можно ознакомиться с подробной программой, а также записаться на бесплатные уроки.
А тем, кто настроен на серьезное системное обучение, крайне рекомендуем рассмотреть Подписку — выбираете курсы под свои задачи, экономите на обучении, получаете профессиональный рост. Узнать подробнее

Сейчас у меня в стойке крутится сервер Ampere на ARM с Linux и ZFS в роли основного сервера хранения, а в студии — Raspberry Pi с четырьмя SATA-SSD и ZFS как резервная реплика. Конфигурация этих ARM-NAS опубликована у меня на GitHub.
Я много лет ждал поддержки TrueNAS на ARM, хотя, судя по настроениям в том сообществе, «ARM-серверы недостаточно мощные для серьёзных серверов хранения» — несмотря на то, что я и многие другие годами успешно их используем… но это к делу не относится.
На Raspberry Pi?
Да, именно так.
Я неоднократно убеждался: запуск современных приложений на более слабом железе — отличный способ вскрыть мелкие недочёты в конфигурации, а заодно понять, как заставить те же приложения работать заметно лучше на более мощных машинах.

Raspberry Pi 5 NAS c SSDs
От моего Pi Dramble до Petabyte Pi Project — запуск софта, рассчитанного на куда более серьёзное железо, многому меня научил. Так что, возможно, запуск TrueNAS, которому требуется 8 ГБ ОЗУ и не менее 16 ГБ на системный диск, станет неплохим учебным упражнением.
Я делал это на x86-серверах, но это скучно. Слишком просто. Когда проект проходит без сучка и задоринки, я мало чему учусь и не вынужден разбираться в конфигурационных тонкостях.
Полную демонстрацию можно посмотреть на видео, а ниже — текстовая версия:
На Raspberry Pi нет UEFI
Одна заметная проблема Raspberry Pi — отсутствие официальной поддержки UEFI, стандартного способа загрузки компьютеров и интерфейса взаимодействия операционных систем с прошивкой устройства. Официально Raspberry Pi поддерживает только загрузку Linux на основе дерева устройств (Device Tree), что гораздо менее стандартизовано. Это означает, что на Pi нельзя просто поставить «любой» дистрибутив Linux — нужны сборки, адаптированные под Pi. Для Pi действительно есть хорошие ОС, например Raspberry Pi OS на базе Debian. Но это не то же самое, что взять Windows для ARM и поставить её на мою рабочую станцию Ampere.
Чтобы обойти это ограничение, приходится опираться на форк проекта Windows on Raspberry Pi. Конкретно я использую форк rpi5-uefi от NumberOneGit.
Чтобы включить поддержку UEFI на вашем Pi 5 (для CM5 процесс может немного отличаться):
Обновите EEPROM до релиза 2025-06-09 (или новее — проверьте установленную версию в Raspberry Pi OS командой rpi-eeprom-update):
а. Обычно обновиться можно через Raspberry Pi Imager, sudo apt full-upgrade -y или sudo rpi-eeprom-update -a. Однако на момент написания эти методы ставят последнюю стабильную версию (2025-05-08), поэтому до тех пор используйте один из вариантов:
b. Ручное обновление загрузчика с исходников с помощью usbboot.
c. Переключение на бета-канал загрузчика: sudo nano /etc/default/rpi-eeprom-update, затем поменяйте latest на beta и выполните sudo rpi-eeprom-update -a.
d. После перезагрузки проверьте версию загрузчика командой rpi-eeprom-update.
Скачайте актуальный релиз .zip из rpi5-uefi Releases.
Возьмите microSD карту, уже отформатированную для Pi (я просто вынул карту с Pi OS из своего Pi 5, на котором только что обновлял EEPROM), и очистите содержимое тома FAT32 «bootfs». Скопируйте в эту папку все файлы из скачанного .zip (включая RPI_EFI.fd).
Извлеките microSD карту, вставьте её в Pi и подайте питание при подключённом HDMI-дисплее.
Вы должны увидеть логотип Raspberry Pi и экран загрузчика EDK2. Если у вас не установлены NVMe- или USB-носители для загрузки, появится надпись «Press any key to enter the Boot Manager Menu.»
Поскольку я не нашёл клавишу „any“, я нажал „Enter“ — и попал в стандартное меню диспетчера загрузки. Там можно настроить скорость SD-карты, частоту шины PCIe и т. п.
После того как выставите параметры по вкусу (см. некоторые рекомендации для Linux), сохраните изменения и перезагрузитесь.

Raspberry Pi 5 UEFI Boot меню
TrueNAS на Pi 5
Теперь, когда Pi загружается в режиме UEFI, можно установить TrueNAS. Для этого:
Скачайте ISO-образ TrueNAS для ARM с https://truenas-releases.jmay.us (я выбрал 25.04.2).
Запишите ISO на USB-накопитель с помощью утилиты вроде Etcher.
После завершения работы Etcher извлеките USB-накопитель и вставьте его в Pi (я использовал USB 3 флеш-накопитель, поэтому подключил его к одному из синих портов USB 3 на Pi для максимальной скорости).
Если загрузка установщика TrueNAS не начнётся автоматически, выберите внешний USB-накопитель в диспетчере загрузки UEFI и загрузитесь в установщик TrueNAS.
Следуйте подсказкам установщика TrueNAS и установите систему на любой носитель, кроме установочного диска и microSD карты (я использовал вторую USB-флешку, подключённую ко второму порту USB 3). Дождитесь завершения установки.
По запросу перезагрузитесь и извлеките USB-накопитель.
Должна загрузиться TrueNAS SCALE; первый запуск может занять время, так как многим сервисам нужно впервые сгенерировать файлы, настроиться и запуститься.

Ошибка запуска установщика TrueNAS ix-etc
В моём случае при первом запуске служба ix-etc не запустилась (истёк тайм-аут). Её задача — сформировать содержимое /etc для TrueNAS. После загрузки я вошёл в консоль Linux, выполнил systemctl start ix-etc и перезагрузил систему.
После перезагрузки, похоже, все службы TrueNAS стартовали без проблем, включая веб-интерфейс. Я открыл IP-адрес, показанный в консоли, вошёл пользователем admin, созданным при установке, и увидел панель управления TrueNAS.

TrueNAS работает на Raspberry Pi 5
Текущие ограничения
Сейчас большинство ограничений связано с отсутствующими возможностями в режиме UEFI: поскольку Raspberry Pi ещё не добавила поддержку RP1 в ядро Linux, и никто пока не выполнил реверс-инжиниринг интерфейсов RP1, вы не сможете использовать:
Поддержку PWM на разъёме вентилятора (нет управления вентилятором)
Подключения CSI/DSI для дисплеев/камер
GPIO
Встроенный Ethernet
Ограничение по Ethernet особенно раздражает, поскольку приходится использовать внешний USB-Ethernet адаптер — как и на большинстве систем под Windows on ARM без чипов Qualcomm.
Andrea della Porta из SUSE работает над включением поддержки RP1 в апстрим ядра Linux при содействии Raspberry Pi, но прогресс пока довольно медленный.
Всё чаще задаюсь вопросом: почему Raspberry Pi вообще не рассматривает официальную поддержку UEFI? С благословения Microsoft или без него — возможность грузить «ванильную» Windows 11 для ARM на Pi была бы отличной. Да и любой обычный Linux-дистрибутив для ARM (включая TrueNAS SCALE) тогда бы тоже загружался…
Дальнейшие шаги
Недавно ко мне приехал новый железный проект — Homelabs Pi Storage server: он использует кастомный SATA-бэкплейн для CM5 и 3D-печатный корпус под 6-дисковый NAS.

Сервер хранения Homelabs Pi
Я поставил TrueNAS на CM5 Lite (по той же процедуре, что выше), но когда подключил четыре SATA-жёстких диска, они раскрутились, однако не определились. Сейчас поддержка UEFI на Pi 5 не позволяет использовать более одного устройства PCIe, а в Homelabs Pi Storage server стоит PCIe-коммутатор, который разветвляется на 2,5 Гбит/с Ethernet и 6-портовый SATA-контроллер.
Все эти устройства прекрасно работают «из коробки» в Raspberry Pi OS (мне удалось собрать массив ZFS и получить 250 MB/s по 2,5GbE на бэкплейне Homelabs — см. ниже), но под UEFI они пока не распознаются

Homelabs Pi — ZFS-массив, Samba, Windows, 250 МБ/с
Я уже использую «чистый» ZFS под Raspberry Pi OS на другом сервере хранения на базе Raspberry Pi: там четыре SSD и ни одного жёсткого диска. Он устойчиво держит 200 МБ/с на запись, и я предполагаю, что TrueNAS сможет примерно то же.
Есть и платы только под NVMe, вроде GeeekPi N16 Quad-NVMe HAT за $50, — это компактный вариант полностью флешевого сервера. Но опять-таки: поскольку на таких платах стоят PCIe-коммутаторы (у Pi только одна линия PCIe x1), TrueNAS на текущий момент (из-за ограничений UEFI/PCIe-коммутатора) не видит ни один из этих накопителей. Если вы хотите использовать именно TrueNAS, а не просто сами управлять ZFS на Pi, лучший путь — специализированный HAT или SATA-контроллер, либо HBA в режиме IT, чтобы подключать диски напрямую к Pi.
Из-за текущих ограничений UEFI я по-прежнему рекомендую запускать TrueNAS на более производительном ARM-железе (например, серверах Ampere). Если хочется остаться на одноплатниках (SBC), для платформ на RK3588 активно разрабатывается прошивка UEFI. Она может дать больше функциональности для ряда плат — смотрите список совместимости.
Или можно не мудрствовать и поставить TrueNAS на x86, где она полностью поддерживается
Если вам интересно не только ставить TrueNAS на Pi, но и глубже понимать, как работает само «железо», обратите внимание на курс «Электроника и электротехника». Он учит проектировать собственные устройства — от схемы и выбора компонентов до печатной платы и запуска прототипа. На странице курса можно ознакомиться с подробной программой, а также записаться на бесплатные уроки.
А тем, кто настроен на серьезное системное обучение, крайне рекомендуем рассмотреть Подписку — выбираете курсы под свои задачи, экономите на обучении, получаете профессиональный рост. Узнать подробнее