はじめに
NVIDIA JetsonにNVMe SSDインストールして、OSが起動しなくなった時の対象方法をまとめる。
動作確認環境
- Jetson
- JetPack 5.1.2 (Ubuntu 20.04)
- AGX Orin (キャリアボード: CTI AGX202)
- ホストPC
- Ubuntu20.04
方法
エラー内容の確認
起動できない場合、モニタには情報が表示されない。nvidiaのロゴまでは出てくるが、そこから先に進まない。この状態では、詳細なエラー内容の確認ができないので、Jetsonに備わっているUARTを使ってホストPCと接続し、シリアルからログを見る必要がある。
Jetson Orin Nano開発者キットでは、UARTピンはあるがケーブルの作成が必要。詳細は以下をこちらを参照。
Jetson Orin開発者キットでは、マイクロUSBポートがUARTデバッグ用ポートになっている。詳細はこちらを参照。
- ホストPCとJetsonのUARTデバッグポートに接続する
- Jetsonを起動する
- Teratermなどで、Jetsonとシリアル接続してログを確認する
- 必要に応じて、Jetsonを再起動してログを確認する
各エラー内容の対処方法を以下に記載する。
UARTシリアルが使えない場合
下記のエラー対処方法を1つずつ試すことで解決する可能性があるので、エラー内容を見ずに試しても良い。ただし、他のエラーの可能性もあるので、UARTからエラー内容を見ることをお勧めする。
エラー対処方法
EXT4-fs (nvme0n1p1): bad geometry: block count xxxx exceeds size of device (yyyy blocks)
SSDのサイズがおかしくなっている場合のエラー。下記のようなエラーメッセージが出て起動しない。
[ 8.569067] Root device found: nvme0n1p1
[ 8.575250] Found dev node: /dev/nvme0n1p1
[ 8.582367] EXT4-fs (nvme0n1p1): bad geometry: block count 244190385 exceeds size of device (244190208 blocks)
[ 8.584196] ERROR: nvme0n1p1 mount fail...
[ 9.280861] mmc1: SDHCI controller on 3400000.sdhci [3400000.sdhci] using ADMA 64-bit
[ 10.270416] tegra-xusb 3610000.xhci: entering ELPG done
対処方法
-
SSDをJetsonから取り外し、ホストPC(Ubuntu)に接続する
-
Diskアプリなどで、マウント先を確認する (例:
/dev/sda1
) -
e2fsckコマンドでファイルチェック
/dev/sda1の場合
sudo e2fsck -f /dev/sda1
原因と同じ内容が表示されればOK。
e2fsck 1.45.5 (07-Jan-2020) The ファイルシステム size (according to the superblock) is 244190385 blocks The physical size of the device is 244190208 blocks Either the superblock or the partition table is likely to be corrupt! 中止<y>? yes
-
resize2fsコマンドで修正
/dev/sda1の場合
sudo resize2fs /dev/sda1
以下のような結果となればOK。
resize2fs 1.45.5 (07-Jan-2020) Resizing the filesystem on /dev/sda1 to 244190208 (4k) blocks. The filesystem on /dev/sda1 is now 244190208 (4k) blocks long.
-
e2fsckコマンドで再度ファイルチェック
/dev/sda1の場合sudo e2fsck -f /dev/sda1
エラーがでなければOK。
e2fsck 1.45.5 (07-Jan-2020) Pass 1: Checking iノードs, blocks, and sizes Pass 2: Checking ディレクトリ structure Pass 3: Checking ディレクトリ connectivity Pass 4: Checking reference counts Pass 5: Checking グループ summary information /dev/sda1: 175579/61054976 files (0.1% non-contiguous), 8903443/244190208 blocks
L4TLauncher: Attempting Recovery Boot
リカバリブートになっており起動しない。
対策
UEFIの設定変更する(OS chain A stauts: 「Normal」に変更する)。
- Jetson起動
- 起動画面で、「Esc」キーを押して、UEFIの設定画面に入る
- Device Manager → NVIDIA Configuration → L4T Configuration → OS chain A status に進む
- 「Unbootable」を「Normal」に変更
- 「Save and exit」で保存して再起動
- 正常に起動すれば成功
まとめ
UARTデバッグポートを利用して、NVMe SSDにインストールしたJetsonが起動しない際のトラブルシューティングをまとめた。正常に起動しない場合は、ディスプレイに情報が表示されないので、UARTデバッグポートを活用して何が原因で起動していないかを確認することをお勧めする。
参考