令和4年(2022年)2月。旧名称Raspbianこと、Raspberry Pi OSの64ビット版が正式リリースされました。
64ビットに対応するRaspberry Pi 4ですが、ブートローダーの更新によって、USBストレージから起動が可能となりました。microSDカード無しで、Raspberry Pi OSを使用できるようになりました。
そのような理由から。
大容量のUSBストレージに64ビット版のRaspberry Pi OSをインストールし、起動・初期設定を行う手順を記録させて頂こうと思います。
目次
64ビットに対応するRaspberry Pi
Raspberry Pi OS (64-bit)ですが、3機種に対応しています。
- Raspberry Pi 3
- Raspberry Pi 4
- Raspberry Pi 400
このうち、この記事ではRaspberry Pi 4のみ対象としています。
Raspberry Pi 400は入手できず、検証できておりません。Raspberry Pi 3は試せておりません。
EEPROMのブートローダーが更新可能なRaspberry Pi 4のみ対象としている点、ご了承下さい。(Pi 3はUSBブート5秒縛りで苦しんだ記憶があります
使用する機材
Raspberry Pi 4本体
メモリー容量4GB版で検証し、問題なく起動しました。8GB版が恋しいです。USBストレージはUASP(UAS)非対応のものを選択
私の場合ですが、使用するコンセントを1つで済ませたかったことと、USB電源を大量に使う予定があったため、USB電源の2.5インチHDDを接続しました。詳細はこちらの記事になります。
外付けの3.5インチUSB HDDがいちばん手軽かと思います。ただし、その場合コンセントはRaspberry Pi本体とHDD用に2つ使用します。
USBストレージですが、「UAS UASP」と記述があるものは、Raspberry Piのブートに対応していないそうです。この点は十分にご注意下さい。購入時「UAS UASPと書いていないもの」を必ず選択して下さい。こちらの情報になります。
https://www.raspberrypi.com/documentation/computers/raspberry-pi.html
推測で恐縮ですが、PS5/PS4はUASP UASに対応しているのでしょうか?PS4対応なら大丈夫な気もしますが確定情報ではありませんThis is especially important with USB SATA adapters which may be supported by the bootloader in mass storage mode but fail if Linux selects USB Attached SCSI – UAS mode. See this forum thread about UAS and how to add usb-storage.quirks to workaround this issue.
Type-C電源・電源ケーブル
Raspberry Pi 4本体と、USB HDDの給電に実際に使用しています。(あとでチューナーも接続する予定d冷却用アーマーケース
Raspberry Piの冷却は、アーマーケースをお勧めします。具体的な実績ですが。録画サーバとして、2年ほど動かしています。暑い夏、冷房の無い部屋で運用していますが、室温40度以上の中、ファンなしで、一度もフリーズせずに動作しています。アーマーケースお勧めです!キーボード・マウス
キーボード・マウスを接続したい場合、1つのUSB端子で両方の接続可能な、無線タイプをお勧めします。
microHDMI変換ケーブル
ディスプレイを接続する場合、microHDMI端子に対応したケーブルが必要になります。
購入時、必要な長さを十分にご確認下さい。USBストレージへのRaspberry Pi OS書き込み
必要な機材が揃ったところで、Raspberry Pi OSをUSBストレージに書き込みます。
Windows PCにて「Raspberry Pi Imager」を使用しましたが、MacOS、Ubuntuも同じ手順になるようです。
こちらのサイトからダウンロードさせて頂きました。
https://www.raspberrypi.com/software/
OSの選択
Raspberry Pi Imager起動後。
「OSを選ぶ」→「Raspberry Pi OS(Ohter)」→「Raspberry Pi OS(64-bit)」を選択しました。
ストレージの選択
Raspberry Pi OSのオプション設定
それでは「書き込む」・・・の前に。ちょっと待って下さい。
歯車アイコンをクリックます。
- ホスト名:必要
- SSHを使用する場合「SSHを有効化する」:他のPCから接続する場合
- ユーザ名とパスワード:必要
- Wi-Fi設定:必要な場合
- WiFiを使う国:JP :必要
- Wi-Fiを使用しない場合でも、使う国は設定しておいたほうが良さそうです
- ロケール設定:必要
- タイムゾーン:Asia/Tokyo
- キーボードレイアウト:jp
ここでホスト名、ユーザ名、パスワード、タイムゾーン、キーボードレイアウトは選択しておいたほうが、初期設定が円滑に進みます。
Wi-Fiを使用する場合も、ここで設定しておくと楽です。
ちなみにヘッドレス(キーボード・マウス・ディスプレイなし)で運用する場合、あとはSSHログイン後にロケールを設定すれば、設定完了となります。
イメージの書き込み
歯車アイコンの設定を保存しましたら、「書き込む」ボタンをクリックしてイメージを書き込みます。
こちらのメッセージが表示されましたら、書き込み完了になります。
USBストレージを接続してRaspberry Piを起動
Raspberry Pi 4から、microSDカードは取り外して下さい。
それでは、USBストレージを接続して起動します。
しばらく待っていると、次のような画面が表示されます。
続いてスプラッシュスクリーンが一瞬表示され、再起動するようです。
もしも、上記の画面が表示されず。待っていても変わらない場合、以下を確認します。
- USBストレージの容量が大きすぎないか
- USBストレージ(ケース)がUASP、UAS対応ではないか
- ブートローダーのバージョンが古くないか
ちなみに起動可能な容量ですが、具体的な定義がない状況です。
ブートローダーの仕様で決まりますが、ブートローダーが日々更新されております。起動しなかったら、小さい容量で試す、という流れが無難です。
起動しない場合はブートローダーを更新
USBストレージに問題が無ければ、Raspberry Pi 4のブートローダーが古い可能性があります。初期のRaspberry Pi 4のブートローダーは、USBストレージによる起動に対応していません。
しかし、EEPROMを更新することで、起動可能になります。次の記事の内容になります。
microSDカードにRaspberry Pi OSを書き込み、起動・更新することで、EEPROMのブートローダーが更新されます。
※22.12.31追記:再起動では更新されない場合があったため、念のためコマンドで更新しましょう。
# ブートローダーの手動更新コマンド
sudo rpi-eeprom-update -a
# その後必ず再起動
sudo reboot
# 再起動後にバージョン確認
sudo rpi-eeprom-update
vcgencmd bootloader_version
vcgencmd bootloader_config
# 電源OFF
sudo halt
その後、再度USBストレージを取り付けて起動してみて下さい。
Raspberry Pi OS起動後の初期設定
SSHでターミナル接続して設定する場合、下記の記事になります。
コンソールとしてキーボード・マウス・ディスプレイを接続して設定する場合は、下記の手順になります。
イメージを書き込む前に、歯車アイコンで初期設定を行っておきますと。
このような感じで、デスクトップ画面が表示されます。
確かに、aarch64版64ビットのDebian bullseyeベースのRaspberry Pi OSが起動しています。
ストレージ容量の確認
dfコマンドでストレージ容量を確認します。
/bootパーティションが/dev/sda1となっており、確かにUSBストレージから起動されています。
/dev/rootの容量を確認すると、USBストレージのすべての容量が、ルートパーティションに自動拡張されています。
このあたりは、Raspberry Pi OSは親切な設計ですね。
他のOSでは、手動で拡張が必要なケースも御座います。
ロケール設定調整
画面をよく見ますと、メニューが英語のようです。確かに、タイムゾーンとキーボードの設定はしましたが、ロケールの設定がまだでした。
このあたりの設定を調整しましょう。
Raspberry Pi Configurationの設定項目
ロケール以外の設定ですが。イメージの書き込み前に、必須の項目は設定済みですので、ほぼ調整する項目はありません。
Wi-Fiを使用しない場合ですが。ターミナルでSSHログインした時、Wi-Fiの国設定がされていないと、警告が表示されます。Wi-Fiの国設定を「JP」にしておいたほうが良いかもしれません。
基本的には、たとえばGPIOを有効にしたり、冷却ファンを設定する場合など、使用する目的に応じて、設定を追加するかたちになります。
System
- パスワード:設定済み
- ホスト名:設定済み
- ブート設定:デスクトップかコンソール(コマンドライン)
- 自動ログイン
- ネットワークブート
- 起動時のロゴ表示
Display
- アンダースキャン
- スクリーンセーバー(ブランク)
- ディスプレイ接続しない場合の解像度設定
Interfaces
- SSH:設定済み
- VNC
- SPI
- I2C
- Serial Port
- Serial Console
- 1-Wire
- Remote GPIO
Performance
- GPUメモリー量
- オーバーレイファイルシステムの有効化
- microSDカードの寿命を伸ばす効果がありますが、副作用もあるようです
- dockerが起動しなくなったため、既定の無効で使用しています
- ファン
- ファンGPIO
- ファン温度
Localisation
- ロケール
- タイムゾーン:設定済み
- キーボード:設定済み
- ワイヤレスLAN国設定:JPに設定されているか確認します
OSの更新
最後に、aptコマンドでOSを最新の状態に更新しておきます。
sudo apt update
sudo apt upgrade -y
画面が化けているのは、キャラクターセットがEUCに対して、SSH接続したターミナルがUTF-8のためでした。
SSH接続する場合、キャラクターセットはUTF-8にしたほうが良さそうです。
このような感じで。Raspberry Pi 4をUSBストレージから起動して、64ビット版Raspberr Pi OSを使用する環境ができました。
microSDカード、本当に不要になりましたね。
ブートローダーも更新が進み、問題なく使用できる状況に思えます。
Raspberry Pi 4の性能を最大限に引き出しつつ、大容量かつ長期間安心して使用できるストレージが利用できるようになりました。
さて。次は何を動かしましょうか?
dockerコンテナでサービスを構築するのも良さそうです。
NASは如何でしょうか?SMB/CIFSの他、NFS、FTP、RSync対応で、Webですべて管理可能です・・・・こちらは起動にmicroSDカードが必要でした。