ずっとブートせず悩んでいたが、Amazonレビューをみて解決した。ケースのせいだった。
問題の商品
- Salcar USB3.0 2.5インチ HDD/SSDケース 9.5mm/7mm厚両対応 SATAⅠ/Ⅱ/Ⅲ対応 UASP対応 Windows/Mac 工具不要 簡単脱着 アルミ 1年保証
- ELUTENG MSATA to USB3.0 ケース 5gbps 高速データ転送 MSATA SSDケースアルミ合金製 MSATA USB 変換 外付け ドライブケース 30x30 / 30×50mm 超小型 MSATA ケース USBケーブル付き
情報源
- https://www.amazon.co.jp/gp/customer-reviews/RFMOZ0DW3XHWG/ref=cm_cr_dp_d_rvw_ttl?ie=UTF8&ASIN=B081TY821N
- https://qiita.com/kark1223/items/34b597b45326d80a4780
調べてみると以下にも。
- https://www.raspberrypi.org/forums/viewtopic.php?t=286835
- https://note.com/hash_define/n/n6b3d7dcdf539
- https://signal-flag-z.blogspot.com/2020/03/raspberry-pi-4usb30ssd.html
解決策
/boot/cmdline.txt
の先頭にusb-storage.quirks=152d:0578:u
を追記する
Raspberry PI OSをHDD/SSDに書き込んだら、bootパーティションをマウントして、上記のように追記する。そして初回ブートすればブートに成功する。
原因
HDDケースのコントローラチップのせい。ラズパイ4がデフォルトでブートするチップはASM1351
, VL716
, ASM1153E
あたりらしい。
USB接続したデバイスの情報を調べてみる。
$ sudo lsusb ID 152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp. JMS567 SATA 6Gb/s bridge
後悔
面倒くさい。このケースにしたとたん、cmdline.txtを書き換えねばならないって。
絶対そんなこと忘れる。また別のOSを書いたとき、おなじ手順が必要になる。そのとき覚えているか? いや絶対わすれる。そしてこんなコマンド覚えられない。この記事を読んで思い出し、再現する必要がある。あー面倒くさい。
対策
紙に書いてケースに貼る。
反省
ちゃんとレビューみてから買うべきだった。前にもsalcar製買って大丈夫だったからいいだろうと思ったらコレだよ。