プログラミング系ブログ

プログラミング系ブログ

プログラムやパソコンパーツ関連のことを、まったりと解説したり、しなかったりするブログです。

sdカード無し! raspi4 を ssd で usbブートする

皆さん、お久しぶりです。
以前の記事で、NAS を構築するため ssd でブートする内容を書きましたが、その時は sd カード無しではできない状況でした。
今日は raspberry pi 4 の ssd での usb ブートについて、sd カード無しでもできるようになったというのを目にし、 試してみたところうまくいったので記事にします。

今回は eeprom の書き換えを行う(通常のPCで言う bios の書き換えに近い?)ので、少しだけ危険度が高いです。
いつものように自己責任でお願いします。
とは言え、コマンドを打つと自動で書き換えてくれるので、よほどのこと(書き込み中に突然電源を切るなど)をしない限りは大丈夫だと思います。

Raspberry Pi OS

sd カード無しで usbブートするディスクを作成するには、Raspberry Pi OS だけを直接 sd カードにインストールしたものが必要になります。
すなわち、初回設定の時だけは sd カードが必要です。
また、「Raspberry Pi OS だけを直接 sd カードにインストールしたもの」 と書いた通り、NOOBS を使ってインストールしたものはダメでした。
前回 usb ブートの記事を書いた際には、NOOBS でインストールしていたので、再インストールする羽目になりました...。(笑)
筆者は以下の sd カードリーダーを使って作業しました。この sd カードリーダーで先にデータのバックアップを Ubuntu 上に取りましたが、Windows でも Ubuntu でも問題なく普通に動作しました。

ではさっそくOSをインストールしましょう。
手順を説明します!と書こうと思っていたのですが、最近では公式ツールが出来ているらしく、公式ツールを使うのが一番楽ちんみたいです。そういうの早く言ってよ...。
以下のサイトが詳しいので、OS のインストールを行ってください。
Raspberry Piに公式のイメージ書き込みツール「Raspberry Pi Imager」がリリースされてセットアップが超便利に #RaspberryPi

筆者はこのような便利なツールがあるのを知らずに、このサイトに書いてある手順でインストールしましたが、特に問題は起きなかったです。
以前はこっちが主流だったのだと思います。

USB ブート

OS のインストールと、パスワード等の初期設定がすんだら、さっそく usb ブートの準備に入りましょう!
まずは、普通に sd カードで raspberry pi 4 を起動してください。
念のため、アップデートを確認します。

sudo apt update
sudo apt full-upgrade

次に、"/etc/default/rpi-eeprom-update" の中身を編集します。

sudo nano /etc/default/rpi-eeprom-update

で、ファイルを開き、

# 変更前
FIRMWARE_RELEASE_STATUS="critical"
# 変更後
FIRMWARE_RELEASE_STATUS="stable"

として、安定版に変更します。
以下のコマンドで、eeprom を書き換えます。

 sudo rpi-eeprom-update -d -a 

割とすぐに終わると思うので、完了したら、再起動してください。
再起動したら以下のコマンドで、バージョンを確認します。

vcgencmd bootloader_version

f:id:dpcblog:20200725205834j:plain

筆者の環境では、2020年7月16日のバージョンとなっていました。
これ以降であれば大丈夫なはずです。
次に、sd カードから、ssd へとデータを移します。
それには、Raspberry Pi OS に入っている、SD Card Copier を使います。
右上のラズベリーのアイコンから、アクセサリ、SD Card Copier の順にたどれば出てきます。
f:id:dpcblog:20200725225118j:plain

上が sd カード、下が ssd です。
New Partition UUID は、どちらでもよいです。
f:id:dpcblog:20200725225135j:plain
[2020-12-28 追記]
New Partition UUID にチェックボックスを入れなかった場合、ssd にも同じ UUID が割り当てされるので、 ssd から起動した後、 同じ中身の sd カードのマウントが UUID の重複によりできなくなります。
sd カードもすぐマウントして使いたい (初期化したい等の) 方は、New Partition UUID にチェックしておくとよい思います。(sd カードをもう使わない方はチェックいらないです。)
説明不足かなと思ったので追記しました。

ssd を初期化してもよいか聞かれるので、最終確認をしてからOKを押してください。
f:id:dpcblog:20200725225150j:plain
ssd へのコピーは10~30分かかると思うので、気長に待ちましょう~。
コピーができたら、一度シャットダウンしてから、raspi4 の電源を切り、sd カードを抜いてから、ssd のみで起動するか確かめてください!
正常に起動出来たら成功です!!

おわりに

以上で ssd 単体の usb ブート設定は終了です。
いかがだったでしょうか?
意外と簡単にできたので、ssd で起動させたいという方はやってみてはいかがでしょうか?
最後まで読んでいただきありがとうございました!