世界を動かす技術を、日本語で。

Raspberry PiにTrueNASをインストールする方法

概要

  • TrueNAS のArm対応フォークが登場し、 Raspberry Pi でも動作可能に
  • UEFI非対応 のRaspberry PiでTrueNASを動かすには工夫が必要
  • 現状、 内蔵Ethernetや複数PCIeデバイス に制限あり
  • ZFSやSATA/NVMe拡張 は一部制約下で動作可能
  • 今後は 更なる互換性向上 やUEFI公式サポートに期待

TrueNAS Arm版をRaspberry Piで動かす意義

  • TrueNASコミュニティのJoel0氏による Arm対応フォーク の登場
  • メインストレージは Ampere Armサーバ+Linux+ZFS、スタジオでは Raspberry Pi+ZFS でバックアップ運用
  • GitHub上で構成情報を公開、多くのユーザーがArm NASを実用化
  • 「Armサーバは非力」という先入観 が根強いが、実際には多用途で活用例多数
  • 低スペック環境でのアプリ動作検証 は、構成ミスや最適化ポイントの発見に有用

Raspberry PiでUEFIを有効化する手順

  • Raspberry Piは 公式UEFI非対応、デバイスツリー方式のみサポート
  • Windows on Raspberry Pi由来のコミュニティUEFI(NumberOneGitのrpi5-uefi fork) を利用
  • EEPROMを2025-06-09以降のバージョンに更新
    • Raspberry Pi Imagerやapt、rpi-eeprom-updateコマンドでアップグレード
    • ベータチャンネルへの切り替えやusbbootによる手動更新も選択肢
  • rpi5-uefiの最新リリース.zipをダウンロードし、microSDのbootfsに展開
  • PiへmicroSDを挿し、HDMIディスプレイ接続で起動
  • EDK2ブートローダ画面 で各種設定(SDカード速度、PCIeバス速度など)を調整

Raspberry Pi 5でTrueNASをインストールする流れ

  • https://truenas-releases.jmay.us からTrueNAS Arm版ISOをダウンロード(例:25.04.2)
  • Etcher等でISOをUSBメモリに書き込み
  • PiのUSB 3.0ポートに挿してUEFIブートマネージャから起動
  • インストーラの指示に従い、 インストール先はインストーラUSBやmicroSD以外 を指定
  • インストール後、再起動しUSBドライブを抜く
  • 初回起動はサービス生成等で時間がかかる 場合あり
  • ix-etcサービスの起動失敗時は手動でsystemctl start ix-etc→再起動
  • TrueNASのWeb UIにアクセスし、管理画面へログイン

現状の制限事項

  • UEFIモード下で未対応の機能多数
    • ファン制御(PWM)、カメラ/ディスプレイ(CSI/DSI)、GPIO、内蔵Ethernet
  • 内蔵Ethernet非対応 のため、USB Ethernetアダプター必須
  • RP1サポートのLinuxカーネルへの取り込みが進行中(SUSEのAndrea della Porta氏らが推進)
  • 複数PCIeデバイス未対応 のため、PCIeスイッチ経由のSATA・2.5GbE等は認識不可
    • Pi OSでは認識・ZFSアレイも構築可能だが、UEFI下では未対応

TrueNASでのストレージ拡張と今後の展望

  • ZFS+SSD4台構成で200MB/sec超の書き込み実績
  • NVMe専用HAT(GeeekPi N16 Quad-NVMe HAT等)も利用可能だが、 PCIeスイッチ経由は現状未対応
  • TrueNASを使いたい場合は 単一HATやITモードHBA等、ディスク直結型拡張 が推奨
  • 高性能Armサーバ(Ampere等)やRK3588系SBCならUEFIファームウェアが進化中
  • x86環境では完全サポート、安定運用重視ならx86選択も現実的

まとめ・今後への期待

  • Raspberry Pi公式UEFIサポート やRP1対応進展により、今後の互換性向上に期待
  • Windows 11 for Armや多様なLinuxディストリビューション が動作する未来も視野
  • 現状は制約多いが、学習・実験用途には最適な環境
  • コミュニティ・開発者の活動次第で更なる進化 が見込まれる

Hackerたちの意見

TrueNASのUIだけを使いたいな。OSや仮想化の設定とは分けてほしい。

なんでTrueNASがOSとして動く必要があるんだろう?NASとしてのほとんどの作業はユーザースペースで行われるんじゃない?

おそらく、すでに存在する最も近いものはCockpitを動かすことだね。[1] 45Drivesはそれ用の便利なストレージやファイル共有プラグインも維持してるけど[2]、その中には今のところx86専用のものもあるよ。[1] https://cockpit-project.org [2] https://github.com/45Drives?q=cockpit

FreeNASって呼ばれてた頃からTrueNASは使ってないな。FreeNASはしばらく好きだったけど、ある時点からSambaやNFS、ZFSをちゃんと使えるようになって、逆に邪魔になってきた感じ。今は、Amazonで約400ドルの「ミニゲーミングPC」を使ってて、3つの8ベイUSBハードドライブエンクロージャーに16TBのドライブを詰め込んでる。RAIDで6台分は失うから、合計ストレージは約288TBだけど、USBでも実際には結構速いよ。Jellyfinで動画を見たり、Minecraftサーバーをホストするには十分な速さだし。TrueNASが誰のためにあるのか、特に「自分でインストールする」って意味ではちょっとわからないな。TrueNASをインストールするくらいの知識があるなら、たぶん必要ないんじゃないかな…

同じく、しばらくすると「管理された」ソフトウェアがサポートしてないことをやりたくなるよね。今はUbuntu/Sambaを使って、KVMやDockerはハードウェアにアクセスしなくていいものに使ってる。

Samba、NFS、ZFSを手動で設定できるけど、なんでそんなことしたいんだろう?SSHでSambaのユーザーや共有を設定するのは面倒くさいし、退屈だし、ミスも多い。DockerのCLIは比較的良いけど、スマホでブラウザを開いて「更新」や「再起動」を押す方がもっと楽だよ。新しいサービスを追加したり、他にやりたいこともできるし。確かにスマホからSSHで入ることもできるけど、それは最悪だよね。何かするためにノートパソコンを取りに行くこともできるけど、JellyfinやPlexが調子悪くてソファに座ってる時に、わざわざ立ち上がってノートパソコンを探しに行きたくない。動かずに「サービス再起動」を押したいんだ。それがTrueNASやUnraidみたいなもののポイントだと思う。

TrueNASはただのウェブベースの設定管理だよ。ウェブUIだけ使ってれば、システムの状態は生成される設定ファイルに集約される。バニラのFreeBSD+Samba+NFS+ZFSのセットアップをすると、ファイルシステム内のいくつかのファイルを編集する必要があって、調整や災害復旧の際に忘れがちなんだよね。

合計ストレージは約288TB!?どうやって288TBも埋めるの?ほとんどメディアなの? >FreeNASはしばらく好きだったけど、ある時点からSambaやNFS、ZFSをちゃんと使えるようになって、逆に邪魔になってきた。私は約4年間、ほぼ満足してTrueNASを使ってきたけど、最近この気持ちになり始めてる。最近、4ディスクのraidz1プールを6ディスクのraidz2プールに拡張することについて書いたんだ。[1] ZFSのコマンドラインツールを使って全部やったけど、TrueNASのUIではできないことだった。TrueNASを維持しているiXsystemsの開発者が私の投稿を読んで、zfsコマンドラインユーティリティからZFSプールを作成するのはサポートされていないから、TrueNASでそのプールを使うとバグが出るかもしれないって言われた。TrueNASがZFSプールの状態をそのまま受け入れられないのは本当に驚いた。TrueNASがすべてのZFSのやり取りを管理しようとするのはやりすぎな気がする。もっと自分のインフラをNixOSに移行してるし、NixOSでNASを管理してる人が多いのも知ってる。ますます魅力的に感じてきた。[1] https://mtlynch.io/raidz1-to-raidz2/ [2] https://www.reddit.com/r/truenas/comments/1m7b5e0/migrating_...

うん、同じだね。ほとんどのNASパッケージは何かを犠牲にしてるから、始めるにはいいけど、UbuntuでSambaを動かすのは簡単だよ。

USBハードドライブエンクロージャーってどういう意味? RAID(8ベイ)のスループットを1本のUSBラインで制限してるの?それってフェラーリを自転車で引っ張ってるようなもんだよ。

俺も「サーバーいじるのが大好きで、できる限りのことを引き出したい」っていうフェーズだったよ。ここ数年で「家族はただplexが動けばいいだけで、細かいことはどうでもいい」って感じに変わった。今はもっとターゲット層に近いと思う。非TrueNASのZFSを設定してたときはあまり気にしてなかったし、何か壊れたときは全体を再学習するような感じだった。

私も似たようなセットアップをしてるよ(Dell Wyse 5070を8ベイのエンクロージャーに接続してる)。RAIDは使ってなくて、いくつかのドライブ間で簡単なrsyncスクリプトを使ってるだけ。古い1〜2TBのハードドライブをコールドストレージとして集めて、本棚に置いてるんだ。rsyncスクリプトは、重要じゃないものは週に一度だけ動かしてる。ジンクスにならなければいいけど、2008年以降ハードドライブの故障は一度もないよ!

ここでの電力消費って重要だと思う?「USBボトルネック」について気にするべきかな?このシステムをどう整理すれば、USBケーブルのごちゃごちゃにならないの?ちゃんとしたNASボックスと比べて、見た目を良くしたいなって思ってるんだけど。

必要なことには十分な速さだし、Jellyfinで動画を見たり、Minecraftサーバーをホストしたりするために使ってる。4KのBlu-rayリップは100Mbpsを超えるけど、通常は80Mbpsくらいだと思う。MinecraftサーバーがどれくらいディスクI/Oをするかは分からないけど、そんなに多くはないと思う。USB2(ハイスピード)の帯域幅で十分だし、アレイを満たしたり、スクラビング/リサイバリングするのは大変だけどね。

学習目的には楽しいけど、PCIe 3バスでも、PiはIntel Nシリーズのマシンと比べるとあんまりサーバーとしては良くないよね。普通のNASデバイスを2台持ってるけど、複数のSATAポートがあるコンパクトなN100ボードを探してるんだ。古い使わなくなったドライブを活用したいから。ソフトウェア的には、ProxmoxをインストールしてZFSを設定して、ローカルファイルシステムをSMB経由で公開する軽量のLXCを入れるのが定番。リサイクルビンのオプションやMac特有のフラグをいじるのが好きなんだ。しばらくそのセットアップを使ってるよ、Proxmoxからね。

3つのSSDが死ぬって警告は、正直あまり自信を持たせてくれないな… Proxmoxのデフォ設定のZFSの使用パターンが原因だと思う? 時間が経つにつれて、いろんな情報源を読んでるうちに、データセンター向けのストレージにはいいけど、「Raspberry PiにUSBディスクをいくつかつなげた」みたいな用途には無駄な設定を無効にするメモを取ったよ。

Odroid H4+は、探しているものかもしれないよ。韓国のメーカーから出ているN97 SBCで、結構前からあるやつだよ。"+"バリアントは4つのSATAポートが付いてるし、アダプターボードを使えば2〜4個のNVMeドライブも接続できるんだ。

記事には「今、ラックにAmpere ArmサーバーをLinuxとZFSを使ってストレージサーバーとして運用している」と書いてあって、これはPiで試す方法を説明しているだけなんだけど、意外と面白いと思ったよ。N100sが好きな人がいて嬉しいし、もっと関連する記事が見つかればいいなと思う。

オンボードの2.5Gまたは10Gイーサネットと6〜8のSATAポートを持つミニITX N100ボードが、数百ドルでたくさん売ってるよ(例えばAmazonで)。「n100 mini itx nas」で検索してみて。6ベイや8ベイのミニITXケースも結構いいのがある。最近、完成したシステムを探してみたけど、作っているインテグレーターが見つからなかった。数百ドルでマザーボードの電源やリセットピンヘッダーを接続してくれる人がいないのが意外だったよ。

RPiにTrueNASをインストールする理由は「なぜ」じゃなくて「なぜしないの?」って感じじゃない?唯一の理由は「使ってないのがあるから」くらいかな。そうじゃなければ、アイドル時の消費電力は低電力のIntel N100とかとあまり変わらないし、そこからはどんどん悪化するよ。ネットワーク転送速度やディスク転送も(利用可能な)PCIeレーンの制約で制限されるし、RAMやCPUの速度もさらに悪化するしね。

それについては記事の第二部で触れられてるよね:>「現代のアプリケーションを遅いハードウェアで動かすのは、設定の小さな欠陥や誤解を明らかにする素晴らしい方法だ。これによって、より高性能なマシンでアプリケーションをうまく動かす方法を学べる。」理由よりも「なぜやらないの?」って感じだね :) 現在、RPiでTrueNASを動かすことはお勧めしないけど、楽しみのためにやるのは全然問題ないと思うし、超小型のビルドが必要でArmを試してみたい人にはいいかもね。> 現在のUEFIの制限があるから、やっぱり高性能なArmハードウェア(Ampereサーバーみたいな)でTrueNASを動かすことをお勧めするよ。

Raspberry Pi 4(8GB RAM)をNASとしてほぼ5年間使ってるけど、めちゃくちゃ信頼性が高いよ。以下のソフトウェアを動かしてる:Ubuntu 64ビット、Samba、Jenkins、Postgres、MariaDB。USBハブを通して外付けハードドライブを接続してる(Piは外付けハードドライブに十分な電力を供給できないことがあるから)。PiのパブリックSambaフォルダにgit pushして、Jenkinsをトリガーして、Piでdockerを使ってサーバーをビルドしてインストールしてる。

一方で、誰かがRaspberry Pi 5でTianoCoreを動かそうとしているのを知るのは良いことだね。でも、まだ破壊的なバックスペースの挙動や、NetBSDや他のブートローダーが表示するスピナーを壊す非効率的な再帰実装が残ってる。小さなことだけど、ブートシーケンスに慣れているとスピナーがないのはちょっと違和感があるよね。

ちなみに、これがM. Geerlingの言っている「Piで動かすことでバグを見つける」というポイントをうまく示しているね。TianoCoreの不必要に再帰的な破壊的BSの実装は、Pi 4では十分に遅くて、ブートローダーがスピナーを表示する方法と組み合わせると、フレームリフレッシュのタイミングが合ったときに、スピナーのキャラクターがほんの一瞬画面にちらつくのを見られたことがあった。それが何が起こっているのか調べるきっかけになったんだ。

ちょっと前に似たようなことをやったことがあって、https://wiki.radxa.com/Dual_Quad_SATA_HATを使ったんだ(TrueNASではなくOpenMediaVaultをインストールしたけど)。楽しいプロジェクトだったし、見た目も良かったけど、実際にはあまりうまく動かなかった。かなり不安定で、ドライブが頻繁に切断されたり再接続されたりしてた。もっと質の良いコネクタがあるかもしれないけど、NASにはちゃんとしたSATA接続が必要だと思う。結局、自分でボックスを作って再びOMVを使ったよ。Debianにインストールするだけのユーザーランドソフトウェアだから好きなんだ。ここでTrueNASがオーバースペックだと思っているコメント者は、まだ試していないならOMVをチェックしてみるといいかも。正直、今のところストレージは数TBしかないから、PCを組んで設定する手間を考えるとあまり意味がないかもしれないけど、楽しんでやった過程が大事だったんだ。

低消費電力デバイスには、バニラOSでのZFSの方が理にかなってるんじゃない?TrueNAS、特にKubernetes版は、私が見たときには結構オーバーヘッドがあったよ。

その時点で「Dropbox問題」に近づくと思う。TruNASのユーザーは、電源を入れるか、アップデート用のUSBを差し込む以上のことをあまりしたくないんじゃないかな。

実際にRaspberry Piを使ったNASを作ったことがあるけど、結構面倒だったよ。SATAコントローラーはそんなに悪くないけど、他のハードウェアの部分で変な挙動が多くて、設定をいじるためにカーネルをコンパイルしなきゃいけないこともあった。ちゃんとサポートされている電源を使っても、内部の限界にぶつかって問題が出てくるんだよね。そうなると、チップをアンダークロックして、ファントムパワーを他のチップに移す人もいるし。ほとんどのものを別の電源から供給しなきゃいけないから、結局「普通のPC」に近づいちゃう。Facebookで100ドル以下の古いPCを手に入れるだけだよ。今使ってるのはDDR3とNvidia 1060のゲーミング時代の残り物で、クアッドコアでHTもあるから8スレッド使える。とはいえ、そのスレッドのほとんどが、2スレッドでジョブを走らせてるのに90%の使用率になっちゃうんだ。多分、実際に使われてるハードウェアがAVXみたいなもので、全コアで同時に共有できないからだと思う。SATAコントローラーはちょっと不安定だけど、4ポートのSATAカードは1枚約10ドルで買えるよ。Raspberry Piがダメになったら、ファームウェアやソフトウェアスタックを動かすための設定やハックを考えなきゃいけないけど、100ドルのランダムなPCが壊れたら、ログを見てどのハードウェアコンポーネントがダメになったかを調べて交換するだけで済む。

多分、実際に使われてるハードウェアがAVXみたいなもので、全コアで同時に共有できないからだと思う。それは正しい説明じゃないよ。各物理コアにはSSEやAVX命令を処理するための独自のベクターALUがあるから。チップのパワーバジェットはコア間で共有されてるけど、ベクター演算を行う物理トランジスタは共有されてないんだ。

電力消費はどんな感じ?

SATAコントローラーはちょっと不安定だけど、4ポートのSATAカードは1枚約10ドルで買えるよ。もし予算に余裕があれば、LSIや本格的なRAIDコントローラーを使う価値はあるよ。無名のPCI-e SATAカードは不安定で、すごく遅いから。NASにLSIを入れたら、パフォーマンスが文字通り10倍になったよ。特にZFSは全ドライブが同時にアクティブになるからね。

Raspberry Piの電力効率が好きだな。それ以前は、11Wくらいの電力で動くMacbookを使ってた。

TrueNASについてはよく知らないけど、Proxmoxだと試した2つの10ドルのSATAカードはどちらも問題があったよ。最初のやつはOSが起動しなかったし、2つ目は一応動いてたけど、書き込みすると接続したドライブが消えちゃった。サーバー用のLSIカードを使うのが良さそうだね。読んだ感じだと、電力消費が多いのが残念だけど。

QNAP TS-435XeUは、600ドルの1U短深型(11インチ)のケースで、クアッドホットスワップSATA、デュアルNVME、デュアル10GbE銅、デュアル2.5GbE、4-32GB DDR4 SODIMMのArm NASなんだけど、OSSコミュニティの注目があればいいなと思う。ZFS暗号化のハードウェアサポートもあるよ。ECCをサポートするMarvell/Armada CN9130 SoCをベースにしていて、メインラインLinuxのサポートもあるし、uboot用の公開されてるけど非アップストリームのコードもある。ローカルシリアルコンソールとちょっとした努力があれば、QNAPのOSをArm Debian/DevuanにZFSで置き換えられるよ。低消費電力、小型、高速ネットワーク、ECCメモリ、アップストリームに優しいLinuxの珍しい組み合わせだね。QNAPは同じSoCを使った10GbEルーターも売ってるけど、これはHelios4 NASのArmada 388の後継なんだ(RIP)、https://kobol.io/helios4/ UEFIサポートはないから、TrueNAS for Armはそのままじゃ動かないよ。

自分でUbootをビルドできるなら、UEFIを有効にできるんじゃない?EDK2みたいにフル機能ではないけど、LinuxやBSDを起動するのには使えると思うよ。