シングルボードコンピュータのRock64は、SPIフラッシュメモリーを書き換えることで、USB接続のSSD/フラッシュメモリー/HDDから起動できるようです。
具体的に起動用のHDDを作成する手順と、実際に起動できた/できなかったOSを記録しておこうと思います。
※使用するUSBストレージの種類や、他のHDD作成方法もあるかと思いますので、「こんなデバイスで、こんな方法で試したらこうらしい」程度のご参考に御覧ください。今後、OSやRock64ファームウェアの更新により起動の可否が変わる可能性が御座います。
目次
Rock64のUSB HDDによる起動手順
こちらのドキュメントに沿ってRock64の設定を変更します。
- NOOB – PINE64 Flashing u-boot to SPI Flash
- linux-build-flash-spi.md at master · ayufan-rock64-linux-build · GitHub
設定の全体的な流れ
次のような流れで起動の確認をしてみました。
- Rock64のSPIメモリーをHDD起動可能なものに変更します(最初1回のみ)。
- OSイメージをHDDに書き込みます。
- USB 2.0端子にHDDを取り付けて起動します。
- そのまま初期設定を行います。
- USB 3.0端子にHDDを付け替えて起動します。
- microSDカード/eMMC起動に戻す場合、Rock64のSPIメモリーを元に戻します。
OSにより5番まで進める=USB 3.0で起動できるものや、3番で止まってしまうもの等があり、すべてのOSがUSB起動に対応しているわけではない感じでした。
では、具体的な手順に進みたいと思います。
Rock64のSPIフラッシュメモリー更新
- こちらのページから、「u-boot-flash-spi-rock64.img.xz」をダウンロードさせて頂きました。もとに戻す場合は「u-boot-erase-spi-rock64.img.xz」を使用しますので、両方ダウンロードしておくと宜しいかと思います。
- xz圧縮に対応したEtcherを使わせて頂きました。「u-boot-flash-spi-rock64.img.xz」をmicroSDカードに書き込みます。
- Rock64にmicroSDカードをセットします。eMMCは必ず取り外し、USB機器やLANケーブルも外しておくようです。
- 電源を入れると、SPIフラッシュメモリーの更新が始まります。
- 更新が終了すると、白色の電源LEDが1秒間隔で点滅するようです。電源を切りmicroSDカードを取り外します。
更新中HDMI出力はありませんが、シリアルコンソールを接続すると次のようなメッセージが表示されました。電源を入れてから、Written: OKが出るまで2~3分のようです。
SPIメモリーを戻したい(消去する)場合、同じ手順で「u-boot-erase-spi-rock64.img.xz」を起動するようです。
ちなみにRock64などのRockChip系のSBCは、起動中のメッセージが一切画面に表示されないようです。細かい情報を知りたい場合、シリアルコンソールは必須かと思います。
ストレージの容量について
2.2TBを超える容量のUSB HDDで起動できるかどうか試したところ、起動するものの、パーティションに不整合が生じて、うまく動作しませんでした。
一方、2.2TB以下の容量のストレージから起動した後でしたら、2.2TBを超える容量のストレージを使用することができました。
起動用のストレージは、2.2TB以下の容量をお勧め致します。
起動用HDDの作成
こちらの7mm厚のHDDケースに容量500GBのHDDをセットして試してみました。
- OSイメージを用意します。上記の機器ではSourceForge.netさん版のopenmediavaultをUSB 3.0端子接続で起動することができました。Rock64のイメージをダウンロードします。
- Etcherで書き込んでみました。書き込み先にUSB接続のHDDを選択すると、このような警告が表示されますが、「continue」をクリックすると書き込む事ができます。
最初はUSB 2.0端子にHDDを取り付けて起動
USB接続のHDDをRock64のUSB 2.0端子に取り付けて起動します。
1~2分程度待つと次の画面が表示されて再起動しました。再起動後、openmediavault 4.1.8.2-1が起動し、ログインプロンプトが表示されました。root/openmediavaultでログイン後、dfコマンドで確認すると、確かに/dev/sdaファイルシステムが/boot及び/(ルート)にマウントされています。/(ルート)パーティションの容量は6.6GBのようです。HDDの残りの空き容量は、/dev/sda3に確保されているようです。
手動で/dev/sda3をフォーマットすると、openmediavaultからマウントできるようになりました。
mkfs.ext4 /dev/sda3
アップデート後にUSB 3.0端子に接続
apt-getコマンドでアップデートを行いました。
apt-get update
アップデート後にシャットダウン、HDDをUSB 3.0端子に付け替えましたが、openmediavault 4.1.8.2-1は問題なく起動しました。
※19.2.28追記:update後にupgradeも行ったほうが良いかと思います。updateのみでは、パッケージの更新が行われないようです。
openmediavault 4の初期設定は、宜しければこちらの記事を御覧ください。
確認してみたOS
USB接続のHDDから起動するかどうか、いくつかのOSにて確認してみました。
openmediavault 4.1.8.2-1(SourceForge.net)→問題なし
- 初期設定・アップデートをUSB 2.0端子で行い、その後USB 3.0端子に付け替えて問題なく動作しました。
- /dev/sda3を手動でフォーマットすることで、HDDの残りの容量をopenmediavaultで使用できました。
DietPi v6.16→USB3.0端子で起動せず?
- imgファイルのタイムスタンプ2018年9月10日
- USB 2.0端子で起動、初期設定を行うことができました。
- しかしUSB 3.0端子にHDDを接続すると起動しない感じです。
- ※18.10.29追記
- 2018年10月25日リリースのdietpi v6.17.12で再度試してみました。USB 2.0では起動しますが、USB 3.0の場合起動しませんでした。シリアルコンソールを見たところ、USB XHCI 1.10 scannning busでHDDが見つからない感じです。ネットワークブートのループ処理に入ってしまいます。
Armbian Bionic v5.59→問題なし
- Armbian_5.59_Rock64_Ubuntu_bionic_default_4.4.152
- シリアルコンソールで確認すると、HDDから初回起動時、パーティションの自動拡張に4分程かかっていました(500GBの場合)。根気よく待っていると、USBで無事起動しました。
- USB 3.0端子にHDDを接続した場合も、armbianを起動できました。
- ROCK64の動作が不安定でしたが、swap領域を増やしたところ、問題なく安定動作するようになりました。設定手順はこちらの記事となります。
以前、こちらの記事でmicroSDカードのアクセス速度を測定してみましたが、20MiB/s程度の速度のようです。
USB HDD起動した場合はどうでしょうか?
シーケンシャルリード性能を調べたところ、100MiB/s程度の速度が出ていました。microSDカード起動時の5倍以上の性能です。
HDD起動により、各種ファイルのアクセス速度が向上し、OSの全体的な性能向上が期待できそうです。
Rock64のパワーアップのため、USB起動をお試し頂いてはいかがでしょうか。