Raspberry Pi 4でもUSBブートが正式に出来るようになりました。いわゆるstable(安定版)のbootloaderがリリースされています。
7月31日版としてリリースされたbootloaderへの更新と、Raspberry Pi OSの8月20日版で比較的に簡単な作業で実行できました。
構築方法をまとめてみます。
一度bootloaderの設定をしたRaspberry Piは、フラッシュROMに書き込むため何度も同じことをしなくても大丈夫です。
設定後はUSB接続のSSDドライブを繋ぐだけで起動することが可能になります。
追記:raspi-configのメニューが変更になっていたので修正しました。
追記:UbuntuMATE20.10でも試したよ。
追記:32bit版のベータでも試してみた。
追記:速度を測ってみたよ
SSDドライブで劇的
何がスゴイのか?と言いますと、SSDドライブなどは同じフラッシュメモリー系のmicroSDカードと次のような点で優れています。
- 堅牢性UP
- 速度UP
PCのドライブとして利用することを前提に設計されているが異なります。
ここで取り上げているのは、PC内蔵型のSSDドライブです。

USBで起動(ブート)が出来れば、microSDカードはもう必要ありません。思ったよりも難しく無かったので、手順通りにトライしてみてください。
最終的なバージョンなどは、uname -aコマンドで調べてみると分かります。今回は画像にあるバージョンでした。

Linux 5.4.51-v8+、aarch64の64bitとあります。
この記事でご紹介しているRaspberry Pi 4によるUSBブートは、Raspberry Pi 4本体と64bit版のRaspberry Pi OSの組み合わせです。
記事執筆時点では64bit版が正式にリリースされる前です。Raspberry Pi OSの32bit版ではありません。Raspberry Pi Imagerからは選択できません。
この記事はベータ版で実施しています。特殊ですので万人向けではありません。
64bit版が正式リリース前は、32bit版で試してください。
64bit版Raspberry Pi OSのダウンロード方法は次の今回の環境に記載しています。先取りしたい人はどうぞ。
※恐らく、Raspberry Pi OSが次期bullseyeになると、64bit版のOSも追加される見込みです。
今回の環境
ハードはRaspberry Pi 4 で行いました。今回はラズパイ4のメモリー8GBモデルしました。もちろん4GBモデルでも同じ手順でOKです。(Raspberry Pi 3Bでは既にUSBブートが可能になっています)
起動に使うbootloaderはOSから最新版でアップデートできる7月31日版です。(記事執筆時点)そして、OSはRaspberry Pi OSの最新版2020-08-20(64bit)を使います。(記事執筆時点)
時期によってはベータ版ではなく正式版、リリース日も変更になっている恐れがあります。予めご了承ください。(都度、修正していきます!)
64bitのRaspberry Pi OS の入手方法
Index of /raspios_arm64/images/
ダウンロード先にある「2020-08-20-raspios-buster-arm64.zip」を使いました。
32bit版は、いつもどおりRaspberry Pi Imagerから書き込みます。
必須な3つ
- bootloader(2020-07-31版)
- Raspberry Pi OS 64bit(2020-08-20版)
- OS標準のルール「SD Card Copier」
microSDカードの中身をSSDへそっくりそのままコピーするため、Raspberry Pi OS標準のSD Card Copierというソフトウェアを使います。
- Raspberry Pi OS(64bit 5月27日版ベータ)が書き込まれて起動している状態から、アップデートをさせても成功しました。
- Raspberry Pi Imagerで新たに書き込まなくてもアップグレードで8月20日版にアップできました。
- いきなりSSDドライブに書き込むことも可能になっています。
ラズパイ4でUSB起動(SSD)の環境まとめ
- Raspberry Pi 4B 8GB(4GBでも良い)
- bootloaderは2020−07−31版
- Raspberry Pi OSは2020-08-20版(64bit)、または5月27日版からアップグレード、32bit版でも可能
- SD Card CopierでmicroSDカードの中身をSSDへコピー
- 操作はほとんどraspi-config
- SSDはタイムセール祭りで買った格安の内蔵型SSD240GB(480GBでもOK)
- SSDとの接続に使ったSATA to USB変換アダプターはRaspberry Pi 4B Server エキスパートセットに付属していたアダプターを使いました。
内蔵型2.5インチSSDドライブとRaspberry Piを繋ぐ変換するアダプター(USB3.0からSATA接続)は、どれでも良いわけではないので注意が必要です。
変換アダプターを2、3試してみました。ケーブル長20cmかから50cmがあるようです。
HDDなどでは電力が足りないこともあります。SSDドライブも上手くいかない製品もあるでしょう。SSDもいきなり大容量を購入せずに安価な物で試してみてください。
2021年現在、容量480GBがコスパは最強です。
アップデート&アップグレード
私は既存のRaspberry Pi OSを使いましたので、先ずはコマンドで最新にアップグレードしないとなりません。
sudo apt update
sudo apt full-upgrade
これで最新のOSになりました。
つまり8月20日版へアップできました。もしも現行の8月20日版を新たにダウンロード&書き込んだのであれば、この手順は飛ばしても大丈夫です。
ただ、この時点でもbootloaderは以前のままです。

ハイライトした部分にあるように、バージョンを調べてみます。
bootloaderのバージョンを調べるコマンド
vcgencmd bootloader_version
4月16日版となっていますね。これを8月20日版にしないとなりません。
8月20日版以降のbootloaderであれば、そのままでも構いません。一応最新の方が安心だと思うなら手順通りにバージョンアップしてください。
新しいメニューがあるraspi-config
最新版のRaspberry Pi OSでは、お馴染みのraspi-configコマンドで表示されるメニューに新たなメニューが加わっています。bootloaderのバージョンを上げるのに使用します。
sudo raspi-config
操作は上下キーで選びENTERキーで決定、ESCキーでキャンセルです。

6.Advanced Optionsの中に以下2つが追加されています。

A6 Boot Order
A7 Boot ROM Version
今回、両方使います。
A6 Boot Orderの方でUSB起動するかどうかを決定するわけですが、先程のbootloaderが古いので、先に新しくしようと思います。
A7 Boot ROM Versionの中に2つのメニューがあります。

E1 Latest Use the latest version boot ROM software
E2 Default Use the factory default boot ROM software
E1が”最新バージョンのブートROMソフトウェアを使用”
E2が”デフォルト工場出荷時のブートROMソフトウェアを使用”
最新にしたいので、E1を選びます。E2は元に戻す時に使います。
最新版のブートROMが選ばれました。次回の再起動時に読み込まれます。「はい」を選んでください。

つまり、再起動後には新しいブートローダーに変更になっているので、再起動後にもう一度コマンドで確かめてみましょう。
再起動します。
bootloaderのバージョンを調べるコマンド
vcgencmd bootloader_version
どうですか? 8月20日版、またはより新しいバージョンになりましたか?
USBブートを有効にする前に丸ごとコピー
用意したSSDドライブにはまだ何も入っていません。
既に動いているmicroSDカードのRaspberry Pi OSをそのまま使うので、これをコピーして使います。
もしもRaspberry Pi OSも全く始めての場合、Raspberry Pi Imagerの書き込み先を何も入っていないSSDドライブを指定すればOKです。
ドライブを丸ごとコピーするのに、microSDカードをコピーする前提のソフトウェアがRaspberry Pi OSには最初から入っています。
「SD Card Copier」です。
メニュー → アクセサリ → SD Card Copier
ドライブを選んでコピー実行

上部がmicroSDカード、下部がSSDドライブです。
真っ新なので新しいパーティションにチェックを入れてください。

指定したSSDドライブの中身が全部消えることにYESとしてスタートボタン。
しばらくするとコピーが終わり、完了したダイアログが出ます。
起動をUSBブートに変更する
ここまで、Raspberry Pi OSとブートローダーを最新版にし、microSDカードのRaspberry Pi OSをSSDにもコピーしました。
これでUSBブートに変更してもOKになります。
もう一度raspi-configをコマンド実行して、6 Advances Options → A6 Boot Orderへ入ります。
- microSDカードから起動(boot)にする
- USB起動(boot)にする
- ネットワーク起動(boot)にする
3つから選びます。2番目がUSBブートに変更するオプションです。
これで完了です。お疲れ様でした。
再起動してからシャットダウンする
再起動しないと有効になりません。まだSSDドライブは繋ぎません。
microSDカードはそのままで再起動させ、それからシャットダウンして、microSDカードを抜いてSSDドライブを接続してから電源を入れてください。
次に電源を入れる前にmicroSDカードを抜かないとなりません。

写真でお分かりのように、microSDカードは抜いてSSDドライブの上に置いてあります。繋がっているのはSSDドライブだけという訳です。
速い
立ち上がりが速いのが分かります!
Chromiumブラウザの起動も3秒くらいとかなりサクサクです!

fdiskコマンドで見てみると、確かにmicroSDカードのパーティションがありませんね。

/dev/sdaのサイズが223.6GiBと出ていてext4のLinuxフォーマットになっています。
設定すればmicroSDカードでもUSBブートでもどちらもOK
今回の設定の後、microSDカードをまた差し、USB接続のSSDを取り外して起動してみました。ちゃんと今度はmicroSDカードから起動しましたよ!
更に、もう一度microSDカードを取り出し、また先程のSSDを取り付けて起動すれば、またSSDから起動します!
microSDカードが無い場合 → USBブート
microSDカードが挿してある場合 → microSDカードでブート
raspi-config
の手順でUSBブートに設定したので、microSDカードが存在しない状態で起動してもSSDで起動できるわけですね。便利!
そしてmicroSDカードはチェックに行くので、もしもOSがあればそのまま起動する仕組みです。
USBブートのラズパイ4って・・・
他のOSの場合はどうなんだろう?
→ UbuntuMATEは更に快適に感じました。
USBブートに対応したRaspberry Pi OS(64bit)に、SSDで起動させてみたら思った以上にサクサクで、メモリーも8GBあるならパソコンと変わらないと感じることでしょう!
少なくても私には、これまでで一番ストレスがないRaspberry Pi OSでした。
Raspberry Pi 4のメモリー8GBモデルは少しお高いです。SSDドライブの利用だと、メモリーの余裕を確実に感じられますので、1枚くらいは購入されるのをオススメしています。
以上、USBブートの現場からでした。

速度を測ってみたよ
別の記事でご紹介した速度を計測するスクリプトを導入して計測してみました。結果は・・・SSDストレージのベンチマークに使えるスクリプトに追記しておきました。どれだけ速いのか数字でも確認してください。
こちらも試しました。
32bit版でも

Ubuntu MATEでも試したよ
Ubuntu MATEは20.10からUSBブートに対応したとのことで、SSDドライブ起動を試しました。
