Raspberry Piを利用したポータブルNASの製作

  • 投稿日:
  • by
  • カテゴリ:
  • ハッシュタグ:

3年前に製作した WiFiポータブルNASだが、設定をミスってログインできなくなってしまった。
システムを再インストールしてもいいのだが、Raspberry Pi model 3Bベースだとやっぱり転送速度が遅くて不満があった。
最近は全然チェックしていなかったが model 5が出ているらしいし、この機会に買い替えてもいいかもしれない。

とか吞気に考えて Amazonを見てみたら、恐ろしいほど価格が高騰していて驚愕することになった。

Raspberry Piが再び値上げで16GBモデルが6万円超えに、発売時の3倍以上に高騰 - GIGAZINE

安価な小型PCとして知られる「Raspberry Pi」シリーズの一部モデルが2026年11月2日に値上げされました。メモリ容量16GBの「Raspberry Pi 5」は80ドル(約1万2700円)値上げされて385ドル(約6万1100円)となり、2025年1月の発売時と比べて価格は3倍以上に到達しています。

AIブームによるメモリ価格の高騰がこんなところまで及んでいるとは。 ちょっといい中古のノートPCが買える値段だね。

とはいえ今さら 3Bには戻りたくない。

261108164805384.jpg

そこで比較的価格が控えめのメモリ 2GB版の model 4Bを購入した。

261108164838459.jpg

NASとしての利用ならそれほど大きなメモリは必要ないだろうという判断だ。

この値段もちょっとどうかと思うが、円安でもあるし致し方ない。

Raspberry Pi 5 (2GB RAM)。
Raspberry Pi 5 (2GB RAM)。
posted with AmaQuick at 2026.11.10
Raspberry Pi
5つ星のうち4.7
¥20,500

一方、Pi 5のメモリ 2GB版だと 2万円を超える。

Raspberry Pi 5 (1GB RAM)。
Raspberry Pi 5 (1GB RAM)。
posted with AmaQuick at 2026.11.10
Raspberry Pi
5つ星のうち5.0
¥14,090

メモリ 1GB版なら Pi 4の 2GB版とほぼ同価格帯だが、さすがに 1GBではちょっと心もとない。

Raspberry Pi 5とPi 4の違いを比較|性能・価格・互換性【2026年10月】

価格差が10ドルまで縮んだ今、迷ったらPi 5で問題ありません。Pi 4に分があるのは、次の条件に当てはまる場合です。
 
ー Pi 4を選ぶ条件:周辺機器の流用・H.264・待機電力
 
1つ目は、Pi 4用のケース・PoE HAT・3A電源・カメラケーブルが手元に揃っている場合です。Pi 5に替えると、本体以外に電源とケースとケーブルで数千円の買い直しが発生します。2つ目は、3.5mm端子のアナログ出力や、H.264ハードウェアエンコードを使った既存の録画・配信の仕組みを動かし続けたい場合です。3つ目は、軽い処理を24時間動かすだけの用途です。アイドル電力の差は約1.2Wで、1年で約10kWhになります。Pi 4は2034年1月まで生産が続く予定なので、既存の設備の補修用にも当面は手に入ります。

ポータブルNASとしては性能よりも低発熱、低消費電力の優先度が高いので Pi 4で問題ありません。 冷却ファン付きケースなんか使いたくないし。
そもそも有線LANは 1Gbpsで同じだしね。

261108164900774.jpg

4Bなら USBは 3.0だし有線LANは GbE、WiFiも 11ac(Max 433.3Mbps)なので、十分に 3Bからの性能アップが体感できるハズだ。

ケースも新規に必要なので、こんな奴を買ってみた。


4B本体が先に届いたので、とりあえず Raspberry Pi OSのインストールをやってみる。
インストール方法は前回と同じだが、現在リリースされているものは Debian 13 (Trixie) ベースとなっている。

pi_imager01.jpg

Raspberry Piの機種を選択し、

pi_imager02.jpg

Pi OSの種類を選ぶのだが、最初は間違えて Desktop版を入れてしまった。

pi_imager02a.jpg

下にスクロールすると「Raspberry Pi OS (other)」があるのでこれを選択する。

pi_imager02b.jpg

すると「Raspberry Pi OS Lite (64-bit)」があるので、これをインストールする。
USBドライブのマウントの関係(後述)で、NAS利用なら Lite版の方が適している。

pi_imager03.jpg

microSDXCカードは手元にあった 8GBを使用する。

pi_imager04.jpg

ホスト名の設定と、

pi_imager05.jpg

タイムゾーンを設定。

pi_imager06.jpg

管理ユーザー名とパスワードを設定。

pi_imager07.jpg

WiFi APへの接続情報は、Imagerを動かしている PCの情報から自動的に設定される。

pi_imager08.jpg

リモートログインのために SSHを有効化。

pi_imager09.jpg

Raspberry Pi Connectはよく分からないのでとりあえず無効化。

pi_imager10.jpg

設定完了で書き込みへ(この画面は最初に Desktop版をインストールしたときのもの)。

pi_imager11.jpg

カードが初期化されるよと念押し。

pi_imager12.jpg

書き込み中。

pi_imager13.jpg

書き込み完了。

261108165115339.jpg

書き込みが終わったら、microSDXCカードを 4Bに挿して USB TYPE-Cケーブルを接続する。

pi_imager14.jpg

WiFiには自動的に繋がるので、ターミナルソフトから SSHで接続する。
aptを updateすると、ダウンロードやインストールの速度が速くて驚く。
ここまではスムーズだった。 ここから先は前回と異なる部分について既述する。

1.時刻合わせ管理方法が変わっていた

時刻同期の状態を確認する方法は、

PiNAS:~ $ timedatectl
               Local time: Sun 2026-11-08 17:42:00 JST
           Universal time: Sun 2026-11-08 08:42:00 UTC
                 RTC time: n/a
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: no
              NTP service: n/a
          RTC in local TZ: no

「System clock synchronized: yes」 と表示されれば、正常に同期できていることになる。
最初に Desktop版をインストールしたときは「no」だったんだが、Lite版を入れ直したら「yes」だった。 何故だろう?
OS入れ直しても本体に前回の設定が残るとか?

時刻の同期を有効にするためには systemd-timesyncdをインストールする。

PiNAS:~ $ sudo apt install systemd-timesyncd

設定ファイルを開き、[Time] セクションを編集する

PiNAS:~ $ sudo vi /etc/systemd/timesyncd.conf
 
[Time]
NTP=ntp.jst.mfeed.ad.jp ntp.nict.jp
FallbackNTP=time.google.com

設定を反映させてサービスを再起動する。
既に「System clock synchronized: yes」になっているのなら「set-ntp true」は実行しなくてもよいが念のため。

PiNAS:~ $ sudo timedatectl set-ntp true
PiNAS:~ $ sudo systemctl daemon-reload
PiNAS:~ $ sudo systemctl restart systemd-timesyncd.service

時刻同期の状況を確認する。

PiNAS:~ $ sudo timedatectl show-timesync --all
LinkNTPServers=
SystemNTPServers=ntp.jst.mfeed.ad.jp ntp.nict.jp
RuntimeNTPServers=
FallbackNTPServers=time.google.com
ServerName=ntp.jst.mfeed.ad.jp
ServerAddress=210.173.160.27
RootDistanceMaxUSec=5s
PollIntervalMinUSec=32s
PollIntervalMaxUSec=34min 8s
PollIntervalUSec=4min 16s
NTPMessage={ Leap=0, Version=4, Mode=4, Stratum=2, Precision=-25, RootDelay=46.722ms, RootDispersion=1.129ms, Reference=85F3EC11, OriginateTimestamp=Mon 2026-11-09 20:22:55 JST, ReceiveTimestamp=Mon 2026-11-09 20:22:55 JST, TransmitTimestamp=Mon 2026-11-09 20:22:55 JST, DestinationTimestamp=Mon 2026-11-09 20:22:55 JST, Ignored=no, PacketCount=3, Jitter=3.211ms }
Frequency=-202762

これで時刻の同期については問題ないだろう。

2.固定IPアドレス化の方法が変わっていた

今回が前作と大きく異なるのは、WiFiで NASに接続するのをやめて有線 LANでの接続を前提とした点だ。
つまり PCと NASを LANケーブルで直結して使用するのだ。
ちなみに今の機器は「Auto MDI/MDI-X」に対応しているので、クロスケーブルは必要ない。

4Bの WiFiは 11acとはいえ、実効速度はせいぜい 140Mbpsくらいのものだろう(それでも 3Bに比べれば十分速いが)。
だが GbEの有線LANなら 800Mbpsくらい出ても不思議はない。
実際は機器(PCや 4B、SSD)の性能に制約されるが、ファイル転送速度は WiFi経由の 3Bよりもケタ違いに速くなるハズだ。

そこで有線 LAN(eth0)を固定 IPアドレス化する必要があるのだが、Debian 12以降ではネットワーク管理には NetworkManagerが使われており、従来の dhcpcd.confによる設定は無効になっている。

まずは現状把握。 LANケーブルを繋いでいない状態で「nmcli connection show」を実行してみる。

PiNAS:~ $ nmcli connection show
NAME                         UUID                                  TYPE      DEVICE
netplan-wlan0-elecom-xxxxxx  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  wifi      wlan0
lo                           yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy  loopback  lo
netplan-eth0                 zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz  ethernet  --

有線LAN(netplan-eth0)の DEVICEが「--」になっている。
続いてLANケーブルで PCと 4Bを直結してからもう一度やってみると、

PiNAS:~ $ nmcli connection show
NAME                         UUID                                  TYPE      DEVICE
netplan-wlan0-elecom-xxxxxx  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  wifi      wlan0
netplan-eth0                 zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz  ethernet  eth0
lo                           yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy  loopback  lo

DEVICEが「eth0」になった。
続いて netplan-eth0に固定IPを設定する。

PiNAS:~ $ sudo nmcli connection modify "netplan-eth0" ipv4.addresses "192.168.3.1/24"
PiNAS:~ $ sudo nmcli connection modify "netplan-eth0" ipv4.gateway "192.168.3.1"
PiNAS:~ $ sudo nmcli connection modify "netplan-eth0" ipv4.dns "8.8.8.8"
PiNAS:~ $ sudo nmcli connection modify "netplan-eth0" ipv4.method manual
PiNAS:~ $ sudo service isc-dhcp-server start

eth0の設定を確認してみよう。

PiNAS:~ $  ifconfig eth0
eth0: flags=4163  mtu 1500
        inet 192.168.3.1  netmask 255.255.255.0  broadcast 192.168.3.255
        inet6 zzzz::zzzz:zzzz:zzzz:zzzz  prefixlen 64  scopeid 0x20
        ether zz:zz:zz:zz:zz:zz  txqueuelen 1000  (Ethernet)
        RX packets 277  bytes 31986 (31.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 23  bytes 2380 (2.3 KiB)
        TX errors 0  dropped 15 overruns 0  carrier 0  collisions 0

設定した通りになっている。
ちなみに WiFi(wlan0)に関しては自宅の APへ接続する設定のまま変更しない。
よって hostapdによるアクセスポイント化も不要ということになる。

3.ハートビートの設定ファイルが変わっていた。

PiNAS:~ $ sudo vi /boot/config.txt

DO NOT EDIT THIS FILE

The file you are looking for has moved to /boot/firmware/config.txt



お、おう。
言われた通り、/boot/firmware/config.txtの最下行に以下の記述を追加する。

PiNAS:~ $ sudo vi /boot/firmware/config.txt

dtparam=pwr_led_trigger=heartbeat


3.USBドライブのマウントについて

Desktop版OSをインストールしてUSB SSDを接続したら、「/media/(ユーザー名)/ボリューム」に自動的にマウントされた。
これはこれで便利なのかもしれないが、マウントポイントは自分で管理したいので Lite版に入れ直した。