Raspberry Pi 4をUSB SSDからブートする


SDカードは遅いし壊れやすいらしいし何より抜き差しが面倒くさいので待望のUSBブートできるようにしてみました。

Raspberry Pi 4ではボード上にEEPROMが装備されており、この中にbootloaderが格納されているので、これを書き換えて起動できるようにするといったものらしいです。

これは恐らく普通のPCで言うところのBIOSメモリのようなものでしょうかね。

用意したもの

やったこと

基本的には公式の流れそのままですが、raspbianをインストール済みのSDカードがあることが前提です。

  1. 2020-05-27-raspios-buster-arm64を落とす
  2. balenaEtcherでUSBストレージにイメージを焼く
  3. 焼いたUSBをラズパイに刺す
  4. 以下のbootloaderをアップデートするコマンドを流す
sudo apt update
sudo apt full-upgrade
sudo reboot
  1. 再起動したら sudo rpi-eeprom-update を流してbootloaderがApr 16 2020以降のものであることを確認
  2. cd /lib/firmware/raspberrypi/bootloader/stable でbootloaderのあるディレクトリに移動
  3. rpi-eeprom-config pieeprom-2020-06-15.bin > ~/bootconf.txtで設定を書き出し
  4. nano ~/bootconf.txtBOOT_ORDER=0xf41 となっていることを確認
  5. rpi-eeprom-config --out ~/pieeprom-new.bin --config ~/bootconf.txt pieeprom-2020-06-15.bin で新しいbootloaderを作成
  6. sudo rpi-eeprom-update -d -f ~/pieeprom-new.bin でEEPROMにbootloaderを焼く
  7. SSHやVNCを利用する場合、sudo nano /boot/config.txthdmi_force_hotplug=1 を有効な状態にする
    • この設定をしない場合、HDMIプラグを抜いた状態で起動しなくなる
  8. sudo reboot
  9. 再起動を確認したら電源とmicroSDを抜く
  10. 電源を挿し直す
  11. USBストレージから起動すれば成功

おまけ

ざっくりReadが25倍速、Writeが4倍速くらいでしょうか。これならだいぶサクサク動いてくれそうです。

  • 今回採用したUSBストレージのベンチスコア

  • 以前使用していたmicroSDのベンチスコア