Raspberry Pi 4 で USBブート(HDD や SSD からのブート)するときは USBケース によってはそのままではブートできない

結論

signal-flag-z.blogspot.com

「そのままではブートできない」ことを確認する方法

当該 USBデバイス が接続されている状態で $ lsusb -t を実行する。結果に Driver=uas がある場合には、前述の記事に従って設定の変更が必要になる。

pi@raspberrypi:~ $ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
    |__ Port 2: Dev 2, If 0, Class=Mass Storage, Driver=uas, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M

自分の場合の例

以下の 2つ のデバイス(ケース)を所有していますが、どちらも Driver=uas でした。

Bus 002 Device 003: ID 152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp. JMS578 SATA 6Gb/s
Bus 002 Device 002: ID 0789:0301 Logitec Corp. LHR(LGB) USB Device

補足

USBブート環境の構築自体は以下の手順で OK でした。設定ファイルやカーネルコピーなどの解説をしているページもありますが、現状ではそれらは不要になっています(便利)。

  • MicroSD に Raspberry Pi OS を入れて 起動し、$ sudo rpi-eeprom-update で EEPROM をアップグレードする
  • Raspberry Pi Imager を用いて USBデバイス に OS をインストールする
    • MicroSD でブートする場合と同じ
    • 任意の OS で OK
  • MicroSD を外し USBデバイス を接続して Raspberry Pi を起動すると USBデバイス からブートされる

感想

  • USBブートの手順は間違っていないのに一向に起動できなくて 8時間 溶かした
  • この内容は属人化する方法の典型例といっていいので困ったもの
    • 「USBケース が原因である」ということを可能性として疑うことを全くしていなかったので、「UAS」という単語にたどり着くまでに 7時間 近くかかった
Powered by はてなブログ