以前、ROCK64をUSB接続のストレージから起動するように設定してみました。
使用したストレージの容量は500GBで、MBR(Master Boot Record)方式のブートセクタでした。
2.2TBを超える容量のストレージは、MBRではなくGPT(GUID Partition Table)という方式が採用されています。
ROCK64で、GPT方式のストレージから起動できるかどうか試してみました。
目次
ROCK64でGTP方式のストレージから起動するかどうか
2.2TB以下/超えるストレージのブートセクタ
PCに関するストレージのブートセクタは、こちらの「Unified Extensible Firmware Interface Forum」に資料があるようです。
拝見したところ、MBRパーティションは2.2TBの制限があり、その容量を超えるストレージの起動は、GPTとUEFI(Unified Extensible Firmware Interface)が必要、との記述があります。
ROCK64とUEFIとの関係はよくわかりませんが、実際に起動するかどうか、試して確認することは可能かと思い、試してみました。
使用したストレージ
こちらのUSB 3.0(5Gbps)対応の2.5インチHDDを使用しました。容量は5TBのものを使用しました。OpenMediaVaultイメージの書き込み
Etcherで書き込んだ場合
OpenMediaVault 4.0のROCK64用イメージは、こちらの記事でUSB経由で起動及びマウントが可能なことを確認済みです。
同じ手順で、Etcherを使って5TBのUSB HDDに書き込んでみました。Etcherの画面でも、ストレージの容量は5TBと認識されているようです。
さあ、2.2TB以下のストレージと同様に、起動するでしょうか?
2.2TBを超えるUSBストレージを接続してROCK64を起動
Rockchip系のシングルボードコンピュータは、システムコンソールがHDMI出力されないため、シリアルコンソールを接続して確認しました。
USB 3.0端子にUSB HDDを接続して起動したところ。
このような感じで、2.2TBを超えるストレージで起動することができました。
ただし、起動に失敗する場合もあり、数回再起動を繰り返した後、ログイン画面が表示される場合がありました。
さしあたり、2.2TBを超えるストレージでも、ROCK64に接続して起動できるようですが・・・。
2.2TBを超える容量を使用できるかどうか
fdiskコマンドでストレージの使用状況を確認したところ/dev/sda1に64MB、/dev/sda2に7.3GB使用しているようです。
最大2TBのパーティションしか作成できず、2.6TBの空き容量にパーティションを作成することができません。
また/dev/sda3として2TBのパーティションを作成しましたが、mkfsでフォーマットができず、さらにOpenMediaVaultから認識されませんでした。
ブートセクタがMBRのため、物理的に4.6TiBの容量が認識されていても、論理的にパーティションを作成できるのは2.2TBに限定されているようです。
GPTに対応したgdiskでパーティションを作成すると
cfdiskではなく、GPTに対応したgdiskコマンドを実行してみました。現在のパーティションテーブルはMBRのみと表示されますが、不正なGPTを発見したため、MBRからGPTへコンバートします、という内容のメッセージが表示されました。
2.6TBの空き容量を使用するため、gdiskコマンドでGPTパーティションへの変換を行ってみました。そして再起動・・・。
GPT変換後に起動すると
まあ、なんとなく予想はしておりましたが。
パーティションテーブルをGPTに変換すると、USBストレージからROCK64が起動しなくなりました。orz
armbianのnand-sata-installで書き込んだ場合
念の為、armbianをmicroSDカードから起動後、USB HDDを取り付けて、nando-sata-installコマンドでarmbianをストレージに書き込んでみました。
インストール中にGPTでフォーマットできるように、gdiskをインストールしておきます。
apt install gdisk
パーティションが無い警告が表示されて、gdiskが起動されました。USBストレージに64GBのパーティション(/dev/sda1)を作成し、armbianをインストールすることができました。
再起動後、先ほどと同じInvalid GPTエラーが表示されて、armbianは起動しませんでした。
まとめ
というわけで、簡単に経緯をまとめさせて頂きます。
- 2.2TBを超えるUSBストレージでも、Etcherでイメージを書き込めば、ROCK64で起動できるようです。
- しかし空き容量にパーティションを作成してもフォーマットできず、使用することができませんでした。何かパーティションテーブルに不整合が発生しているようです。
- 不整合の解消のため、gdiskコマンドでGPTパーティションへ変換してみました。するとROCK64で起動できなくなりました。
まあ一言で申し上げると「2.2TBを超えるストレージから起動できますが、パーティションテーブルに不整合が発生して、正常に動作しない」感じでしょうか。2.2TBを超えるストレージをブートデバイスとして使用するのは難しいようです。
USBストレージから起動して使いたい場合、2.2TB以下のストレージを使用したほうが良さそうです。
容量2.2TB以下のストレージから起動しつつ、別の2.2TBを超えるストレージを取り扱うことは問題ないのでしょうか・・・・(疑心暗鬼
このあたりの実験は、また追々行ってみたいと思います→問題なく使えました。
※19.3.29追記:記事の公開後、再度試したところ結果が変わったため、記事を一部修正致しました。