【Amazon】【新生活2021オープン】ニューノーマルにおける2021年の新生活をサポート(3/18迄)
【HP公式ストア】インテルPentiumプロセッサ搭載、メモリー4GB HP Chromebook 14a
【Amazon】【50%ポイント還元】Kindle本キャンペーン(3/4迄)

ラズパイ4をUSB接続のSSDから起動する方法(USBブート)

USBブートでSSDが起動する様子Raspberry Pi 4B
Raspberry Pi 4B
スポンサーリンク

大々的にはリリースがまだありませんが、とうとうUSBブートがほぼ正式に出来るようになりました。いわゆるstable(安定版)のbootloaderがリリースされたからです。

7月31日版としてリリースされたbootloaderへの更新と、Raspberry Pi OSの8月20日版で比較的に簡単な作業で実行できました。
構築方法をまとめてみます。

追記:32bit版のベータでも試してみた。
追記:速度を測ってみたよ

SSDドライブで劇的

何がスゴイのか?と言いますと、SSDドライブなどは同じフラッシュメモリー系のmicroSDカードと次のような点で優れています。

  1. 堅牢性UP
  2. 速度UP

PCのドライブとして利用することを前提に設計されているが異なります。

これ見よがしにmicroSDカードをSSDの上に置いてみた!

USBで起動(ブート)が出来れば、microSDカードは必要なく起動できます。
思ったよりも難しく無かったので、手順通りにトライしてみてください。

最終的なバージョンなどは、uname -aコマンドで調べてみると分かります。以下のようなバージョンでした。

Linux 5.4.51-v8+、aarch64の64bitとあります。

Raspberry Pi 4によるUSBブートは、Raspberry Pi 4本体と64bit版のRaspberry Pi OSの組み合わせです。

通常のRaspberry Pi OSの32bit版ではありません。64bit版が正式にリリースされれば、Raspberry Pi Imagerから選択出来るはずです。

ダウンロード方法は次をご覧ください。

今回の環境

ハードは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/raspios_arm64-2020-08-24

ダウンロード先にある「2020-08-20-raspios-buster-arm64.zip」を使います。

  1. bootloader(2020-07-31版)
  2. Raspberry Pi OS 64bit(2020-08-20版)
  3. OS標準のルール「SD Card Copier」

microSDカードの中身をSSDへそっくりそのままコピーするため、Raspberry Pi OS標準のSD Card Copierというソフトウェアを使います。

※Raspberry Pi OS(64bit 5月27日版ベータ)が書き込まれて起動している状態からアップデートをしても成功しました。

※Raspberry Pi Imagerで書き込まなくてもアップグレードで8月20日版にアップできました。

ラズパイ4でUSB起動(SSD)の環境まとめ

  • Raspberry Pi 4B 8GB(4GBでも良い)
  • bootloaderは2020−07−31版
  • Raspberry Pi OSは2020-08-20版(64bit)、または5月27日版からアップグレード
  • SD Card CopierでmicroSDカードの中身をSSDへコピー
  • 操作はほとんどraspi-config
  • SSDはタイムセール祭りで買った格安の内蔵型SSD240GB
  • SSDとの接続に使ったSATA to USB変換アダプターはRaspberry Pi 4B Server エキスパートセットに付属していたアダプターを使いました。

内蔵型2.5インチSSDドライブとRaspberry Piを繋ぐ変換するアダプター(USB3.0からSATA接続)は、どれでも良いわけではないので注意が必要です。

変換アダプターを2、3試してみました。ケーブル長20cmか50cmがあるようです。

HDDなどでは電力が足りないこともあります。SSDドライブも上手くいかない製品もあるでしょう。SSDもいきなり大容量を購入せずに安価な物で試してみてください。

アップデート&アップグレード

私は既存のRaspberry Pi OSを使いましたので、先ずはコマンドで最新にアップグレードしないとなりません。

sudo apt update
sudo apt full-upgrade

これで最新のOSとなりました。つまり8月20日版へアップできました。もしも現行の8月20日版を新たにダウンロード&書き込んだのであれば、この手順は飛ばしても大丈夫です。

ただ、この時点でもbootloaderは以前のままでした。

ハイライトした部分にあるように、バージョンを調べてみます。

bootloaderのバージョンを調べるコマンド

vcgencmd bootloader_version

4月16日版となっていますね。これを8月20日版にしないとなりません。

新しいメニューがあるraspi-config

最新版のRaspberry Pi OSでは、お馴染みのraspi-configコマンドで表示されるメニューに新たなメニューが加わっています。bootloaderのバージョンを上げるのに使用します。

sudo raspi-config

操作は上下キーで選びENTERキーで決定、ESCキーでキャンセルです。

bootos1

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

B4 Boot Order
B5 Boot ROM Version

今回、両方使います。

bootos2

B4 Boot Orderの方でUSB起動するかどうかを決定するわけですが、先程のbootloaderが古いので、先に新しくしようと思います。

B5 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は元に戻す時に使うのでしょう。

bootos5

最新版のブートROMが選ばれました。次回の再起動時に読み込まれます。「はい」を選んでください。

bootos6_cd

つまり、再起動後には新しいブートローダーに変更になっているので、再起動後にもう一度コマンドで確かめてみましょう。

再起動します。

bootloaderのバージョンを調べるコマンド

vcgencmd bootloader_version

8月20日版になりましたか?

USBブートを有効にする前に丸ごとコピー

用意したSSDドライブにはまだ何も入っていません。

既に動いているmicroSDカードのRaspberry Pi OSをそのまま使うので、これをコピーして使います。

ドライブを丸ごとコピーするのに、microSDカードをコピーする前提のソフトウェアがRaspberry Pi OSには最初から入っています。

「SD Card Copier」です。

メニュー→アクセサリ→SD Card Copier

ドライブを選んでコピー実行

上部がmicroSDカード、下部がSSDドライブです。

真っ新なので新しいパーティションにチェックを入れてください。

消しちゃうよ?の確認

そしてスタートボタン。しばらくするとコピーが終わり、完了したダイアログが出ます。

起動をUSBブートに変更する

ここまで、Raspberry Pi OSとブートローダーを最新版にし、microSDカードのRaspberry Pi OSをSSDにもコピーしました。

これでUSBブートに変更してもOKになります。

もう一度raspi-configをコマンド実行して、3.Boot Boot Options → B4 Boot Orderへ入ります。

これで完了です。

シャットダウンする

再起動しないと有効になりません。

再起動してから立ち上がった後にシャットダウンしてmicroSDカードを抜いてください。

microSDカードを抜かないとなりません。USB接続のSSDは繋がったままでもOKです。もしも繋げていない場合は、シャットダウン後に繋げてください。

SSDで起動している様子

立ち上がりが早いのが分かります。

Chromiumブラウザの起動も3秒くらいとかなりサクサクです!

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

/dev/sdaのサイズが223.6GiBと出ていてext4のLinuxフォーマットになっています。

設定すればmicroSDカードでもUSBブートでもどちらもOK

今回の設定の後、microSDカードをまた差し、USB接続のSSDを取り外して起動してみました。ちゃんとmicroSDカードから起動しましたよ!

更に、もう一度microSDカードを取り出し、また先程のSSDを取り付けて起動すれば、またSSDから起動します!

microSDカードが無い場合 → USBブート

raspi-config の手順でUSBブートに設定したので、microSDカードが存在しない状態で起動してもSSDで起動できるわけです。

USBブートのラズパイ4って・・・

他のOSの場合はどうなんだろう? いつ正式に対応するのでしょうか、楽しみです。

これだけサクサクと動くなら、UbuntuMATEなんかもスムーズでしょう。

USBブートに対応したRaspberry Pi OS(64bit)に、SSDで起動させてみたら思った以上にサクサクで、メモリーも8GBあるならパソコンと変わらないと感じるでしょう!

以上、USBブートの現場からでした。

こちらも試しました→32bit版のRaspberry Pi OSのUSBブートをUSBメモリースティックで試してみた

速度を測ってみたよ

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

参考uepon日々の備忘録
参考Raspberry Pi4のUSB(HDD)起動設定
参考Raspberry Pi 4 の 64bit版と USB Boot

コメント ご感想をお願いします。

【Amazon】【新生活2021オープン】ニューノーマルにおける2021年の新生活をサポート(3/18迄)
【HP公式ストア】インテルPentiumプロセッサ搭載、メモリー4GB HP Chromebook 14a
【Amazon】【50%ポイント還元】Kindle本キャンペーン(3/4迄)