※2025.10.02 値の誤記がありましたので修正いたしました。
先日のRaspberryPi 5の電源の件から、起動をSDカードからNVMeのM.2 SSD(以降SSDとします)に変更でき、快適な爆速起動を楽しんでいます🤩思っていた数倍以上のスピードで、電源投入時のスプラッシュスクリーンが1秒かからず消えて、すぐにデスクトップが表示されるようになりました。このスピード、本気でやばいです😎
そんな中、SSDのRaspberryPi OSをクリーンな状態にするにはどうするんだろうという疑問を感じたので調べてみました。つまり、SSD起動より、USBメモリ起動を優先するように設定を変更する設定の方法となります。
自分のように、OSを頻繁書き変える癖のある方には必須の設定です。クリーンインストールだけでなく、トラブル対応時に必須といえる設定です。
- なぜブート順序を変える必要があるのか?
- 1. 現在の設定とブート順序の仕組みを理解する
- 2. raspi-configコマンドでブート順を変更する
- 3. CLI(rpi-eeprom-config)でUSB優先を確定させる
- 4. リブートとブートデバイスの確認
- 終わりに
なぜブート順序を変える必要があるのか?
現在SSDから起動している場合、RaspberryPiはSSDを優先して探しに行く設定になっています。そのため、OSを書き込んだUSBメモリを本体に挿しても、SSDから起動してしまいます。
PCのようにBIOSやUEFIなどで起動をコントロールする機能があればいいのですが、RaspberryPiでは起動時にはそんなことはできません(多分)。
この問題を解決するためには、EEPROMにあるブートローダーの設定を編集する必要があります。この設定を編集し、USBの起動をSSDより優先するように設定し直します。
1. 現在の設定とブート順序の仕組みを理解する
まず、現在の設定からブート順序のルール確認しましょう。
EEPROM設定の確認
RaspberryPiでターミナルを開き、以下のコマンドで現在のブートローダー設定を表示します。
$ sudo rpi-eeprom-config
出力された情報のうち、BOOT_ORDERの行に注目してください。
$ sudo rpi-eeprom-config [all] BOOT_UART=1 POWER_OFF_ON_HALT=0 BOOT_ORDER=0xf461
BOOT_ORDERの値の読み方
BOOT_ORDERの値は、右側から左側に向かって読み込まれ
、起動を試すデバイスの優先順位を示します。これをずーっと勘違いしていました。一般的な設定だと左から右ですよね…😨
値 | デバイス |
---|---|
1 | SDカード |
4 | USB |
6 | NVMe (SSD) |
f | 試行を繰り返す |
SSD優先で起動している場合、初期値はBOOT_ORDER=0xf461になっていると思います。これは右から「SDカード(1) → NVMe(6) → USB(4)」の順にブートを試すことを意味します(右側から解釈されます
)。そのため、SDカードが挿入されていなければ、NVMe (6) が優先されます。
2. raspi-configコマンドでブート順を変更する
まずは、raspi-config
を使ます。
raspi-configの起動
ターミナルに以下のコマンドを入力し、実行します。
$ sudo raspi-config
メニューの選択
【Advanced Options】を選択し、【Enter】キーを押下します。
続いて、【Boot Order】を選択し、【Enter】キーを押下します。
表示されたメニューから、NVMe/USB Boot
(NVMeまたはUSBが優先されるような名称)を選択します。
3. CLI(rpi-eeprom-config)でUSB優先を確定させる
さらにUSBを優先させるために直接EEPROMの設定を編集します。
EEPROM設定ファイルの編集
ターミナルで以下のコマンドを実行し、設定ファイルを編集します。コマンドを実行すると、デフォルトのテキストエディタ(通常はnano)が開きます。
$ sudo rpi-eeprom-config --edit
BOOT_ORDERの値を変更
BOOT_ORDERの行を探し、値を以下に変更します。
USB → SSD → SDカードの順にする設定
BOOT_ORDER=0xf461
この値は右から左に向かって:SDカード(1) → NVMe(6) → USB(4) の順に試す、を繰り返す
を意味します。
今回はUSBから起動したいという目的がありますので、USB(4)がNVMe(6)より優先されるように、0xf641
と設定します。(2025.10.02 値に誤記があったので修正いたします)
もしSDカードを抜いて、SSDとUSBメモリだけを接続する場合、USB(4)の方がNVMe(6)より右にあるので、USBが優先されます。
設定が終わったらファイルの保存と終了を行います。 これで、新しい設定がEEPROMに書き込まれます。
4. リブートとブートデバイスの確認
設定が完了したら、システムを再起動し、意図したデバイスから起動しているか確認しましょう。
USBメモリの挿入
OSイメージを書き込んだUSBメモリをRaspberryPi 5に挿入します。
再起動コマンドを実行
ターミナルで以下のコマンドを実行し、システムを再起動します。
$ sudo reboot
起動デバイスの確認
USBメモリから起動したら、ターミナルで以下のコマンドを実行し、ファイルシステムを確認します。
$ df -h
出力結果の/(ルートディレクトリ)が、/dev/sdaや/dev/sdbのようなUSBデバイスにマウントされていれば成功です!
終わりに
これで、SSDとUSBの起動順序を自由に入れ替えることができるようになりました。 割と忘れがちな設定かもしれないので、メモとして残しておきます。