RaspberryPi 4BはUSB3.0が使えるのでUSB接続のSSDで動かすと一桁以上のディスクアクセス速度の向上が見込めるそうです。
Raspberry PiではまだUSBブートがサポートされていないので、SDカードをブート用のメディアだけに使ってUSB3.0に接続した外付けSSDでUbuntuを動かすことになります。
外付けSSDとの相性問題などで苦労する可能性もあるようですが、そんなに差があるのならとりあえずチャレンジしてみない訳にはいかないでしょう。
ということで、以下はラズベリーパイ4 をUSBポートにつないだSSDで使うための手順に沿って試した結果です。
参考にしたサイト: Raspberry PiをUSB(HDD)で起動させる
色々と試行錯誤しましたが、わかってしまえば手順は簡単です。
1.SSDに移したいシステムが入ったSDカードの中身をSSDにコピーする。
参考にしたサイトではddコマンドを使っていますが、SDカードの中身をそのままSSDに移し替えることのできるツールを使えばOKです。
私はbalena etcherを使って保存したSDカードのイメージをSSDに書き込みました。
2.SSDの/etc/fstabを編集する
元のSDカードで起動しSSDドライブをUSBポートに接続してマウントし、SSDドライブの/etc/fstabをblkidコマンドで確認したSSDドライブのものに書き換える。
下は私のSSDの例です。
proc /proc proc defaults 0 0 /dev/mmcblk0p1 /boot vfat defaults 0 2 /dev/sda2 / ext4 defaults,noatime 0 1 /swap swap swap defaults 0 0
※ procの行はなくても起動します、
/swapの行も必要ありません、起動ログのワーニング対策で追加したものです。
3.SSDドライブのパーティションを拡張する
後からやっても良いですが、ここでSDカードのgparted(なければインストール)でやっておくと簡単です。ただし、gpartedはGUIプログラムなのでリモートデスクトップかHDMIで表示したウィンドウ上で使う必要があります。
4.fatでフォーマットしたSDカードを用意し、元のSDカードのfatにあるファイルをすべてコピーしてcmdline.txtが指定しているrootドライブをSDDに書き換える。
以上で、SDカードのシステムをUSB3.0に接続したSSDから起動できるようになります。
SDカードの中身をSSDに移すために、コピーツールを使えば万一失敗したときにバックアップしたSDカードのイメージでやり直せるので安心です。
RaspberryPi 3BのファームウェアのあるバージョンからからUSBブートはサポートされました。
多分4Bもサポートしているのでは。
ただし3Bの場合、設定前はSDカードが必須で設定後にSDカード優先でSDカードが入ってない場合にUSBブートを試みる設定になり設定は元に戻せませんでした。
4Bの場合はどうか知りません。