Slackware ARM 12.1をRaspberry Pi 4 Model B (以下 “RPi4” )で走らせています.かなり前から,ルートドライブはUSB 3.0で接続したSSD (1TB)にしているので,起動用に使用しているSDカードがパフォーマンスに影響することは全くありませんでした.
でまあ,その他的にも特に影響はないのですが😓,せっかくRaspberry Pi財団が,SDカードなしでブートするブートローダーを正式に出しているので,この際ですから,ブートローダーのupdateをしてみました.
Linuxと共に生きる人生を結構長くやってまして,近年,数百GB〜数TBのHDD/SSDのパーティションは,
- パーティションマップはGPT
- 最初のパーティションは,512MB〜4GBで,EFIや/boot,またはSWAP用
- 2番目のパーティションは2〜4GBで,SWAP用
- 残りは1つのパーティションのまま,Linux用
といった3パーティションの形で切るのに落ち着いてきてます.だいたいこのように統一しておくと,使い回すのに便利です.
Slackware ARM用のSSDも,GPTで,512MB EFI用(当システムでは不使用),4GB SWAP,残りの1TB弱がLinux用でルート,となっていました.そこで,fdiskで最初のパーティションのtypeをMicrosoft Dataに書き換え,リブート後,最初のパーティションをmsdos型式でフォーマットしてから,/bootにマウントしているSDカードの中身を全部書き込み,/etc/fstabで,/bootに対応する物理ドライブをSDカードからSSDの最初のパーティションに書き換えて,Slackware ARM側の準備は終了です.
ブートローダーの書き換えは,結局,Raspberry Pi財団のサイトから,外部PCによる復旧用SDカードの作成を選んで,空いているSDカードにBootloader修復ツールをインストールして,そこから実施しました.今後もブートローダーのアップデートの度に同様の方法を行うことにします.
以上正しくできていれば,SDカードなしでブートできます.また,Raspberry Pi OSから,rpi-eeprom-config, rpi-eeprom-updateおよび,/lib/firmware/raspberrypi/bootloader/の中身をSlackware ARMの方にコピーしました.今後,これらが役に立つのかどうかは解りません😓
実際は,紆余曲折,試行錯誤がいろいろありましたが,最短経路はたぶん上記の通りだと思います.
Slackware ARMで,rpi-eeprom-updateコマンドをかけて,最新のブートローダーになっていることが確認できました.
RPi OSによるupdateは必要(追記)2020/11/02
そうだろうなと思っていましたが,rpi-eeprom-updateは,EEPROM内のブートローダーと,/lib/firmware/raspberrypi/bootloader/criticalを比較するだけのようです.ですから,Slackware ARMで,rpi-eeprom-updateを今後何回繰り返しても未来永劫up-to-dateが返ってきます.
そのため,bootloaderを最新に保つためには,定期的に,Raspberry Pi OSのSDから起動して,apt update… を実行するしかなさそうです.
当社調べ
当記事を含む,当サイト内の情報は全て「当社調べ」によります.