Raspberry Pi SSDの/bootについて

Pi3B+そしてPi3A+もリリースになっていますね。あとはPi4のリリースを待つのみでしょうか。
根拠のない勝手な推測(希望、期待)を言うとGbE、wifi(802.11ac)は確定としてあとはUSB3.0そしてメモリ(2GB)でしょうか。
cpuはA55ベースになるといいな。(非公式クロックアップ可、放熱次第)
メモリ(2GB)は単純にコストアップに繋がるため公式価格$35と考えると厳しいところかなと思いますが期待だけはしておこうと思います。
USB3.0は少なくとも1ポートは実装されるものと思っています。
当サイトのPi3はSSD+USB2.0でもマイクロSDと比較して良好な結果が得られているのでUSB3.0になればかなりのパフォマンスを発揮してくれるものと期待しています。
リリース時期についてはPI財団は祭り好きと思えるためきっとPi day(π day)に合わせてくるのではないかと予想しています。(間に合えば)

USB-SSDからの起動

Pi3ではUSBブートモードを有効にして内蔵SDカードを外すとSSDから起動を開始します。
当サイトのPi3では電源投入10秒後にSSDの起動を開始します。メインで使用するディスクトップ用途ではこの10秒は妙に長く感じてしまいます。

この10秒のロスタイムを解消するには内装スロットにあるSDカードのbootを利用することでロスタイムをなくすことができますがカーネルバージョンが一致している必要があります。

Raspbianのupdateは時折カーネルの更新も入ります。そのためraspberrypi-kernelのupdateがあった時は自動で更新しないようにapt-mark hold raspberrypi-kernelを設定しておきます。

内装スロットに使用するSDカードは通常のRaspbianをインストールしたものとbootだけを用意したカードを使用することができます。

RaspbianのSDカード

内装スロットのSDカード(Raspbian)は最低限update && upgradeをできる環境を作ります。
カーネルの更新があった場合は保留として通知されます。
SDカードを外してSSDで起動(boot)してカーネルを更新

# apt-mark unhold raspberrypi-kernel
# apt update && apt upgrade
# reboot

再度SSDで起動(boot)したらスロットにSDカードを挿し込んでSDカードで起動するようcmdcmdline.txtを編集
/media/pi/boot/cmdcmdline.txt

root=PARTUUID=xxxxxxxx-02 //SDカードのUUID

内装スロットに起動可能なSDカードがあればこちらが優先するのでSDカード側もupdate && upgradeを実行
SDカードのカーネルを更新したらまた/boot/cmdcmdline.txtを編集してSSDに振り向け直します。

bootのSDカード

現在当サイトで採用しています。

T社のSDカード(64GB)ですがOSとして使うとよくファイルが壊れます。(当時かなり安かった)このカードをboot用に使います。
boot以外の領域はデータ用として大事なファイルは保存できませんが一時ファイルや実験用として利用します。

bootはFAT32で適当なサイズを割り当て、フラグにbootを指定します。

マウントポイントの作成

# mkdir /boot_sd

/etc/fstabの編集(通常時オートマウントしない。noautoを入れておくこと)

PARTUUID=xxxxxxxx-01  /boot_sd  vfat    defaults,noauto 0    2

カーネル更新時は上記の方法でSSDのカーネルを更新
SDカードのbootを/boot_sdにマウント
SSDのbootを/boot_sdにコピー

# mount /boot_sd
# rm -r /boot_sd/*
# cp -r /boot/* /boot_sd

#raspi-configなどで起動オプションを変更した場合は/boot/config.txtに追記変更されます。(uartなどはcmdcmdline.txtも)
SDカード(Raspbian)のbootは手作業で変更箇所を追記、修正する必要があります。
SDカード(boot only)は変更ファイルをコピーまたは修正する必要があります。

勝手気儘に予想してみましたが次期Pi4はディスクトップ用途としても充分実用になる仕様になるものと期待しています。