Jetson NanoのSDカードをイメージ化&大容量SDカードに環境を移行!

こんにちは、けんです。

最近仕事でもJetson Nanoを少し触るようになってきました。

NVIDIA Jetson Nano 2GB 開発者キット

NVIDIA Jetson Nano 2GB 開発者キット

24,800円(05/19 10:10時点)
Amazonの情報を掲載しています

JetPack4.3を32GBのmicroSDカード(以下SDカード)に書き込んで使っていたのですが、TensorFlowやらOpenCVやら諸々インストールしていったら、残り容量が1GBを切っているという警告が出てしまいました。

※日本語環境でセットアップしているので、こういった警告も日本語で表示されています。

そこで現在使用している32GB SDカードをイメージ化し、さらにそれを64GB SDカードに書き込んで空き容量を増やすことにしました。
今回からあげさんの記事を参考にさせていただきましたが、Windowsの場合はJetson Nanoのイメージを書き込んだSDカードを読むことが出来ないので、その辺りをWindows向けに変更しています。

必要なもの

HOSTマシンはWindows10機です。

今回の方法でSDカードを2枚、USBメモリーを1つ使います。

まずはこれまでJetson Nanoで使っていたコピー元となるSDカード(今回は32GB。以下SDカードA)。

続いてSDカードAをJetson Nano上でイメージ化するために必要となるSDカード(以下SDカードB)。
とりあえずJetson Nanoが動けばいいので容量は16GB以上あれば問題ありません。もしくは移行先となる64GB SDカードを使用しても構いません。
64GB SDカードを使った場合はSDカードAのイメージ作成後にフォーマット→SDカードAのイメージ書き込みが必要になります。

次にJetson NanoでSDカードAを読み込むためのUSBカードリーダー。
Jetson NanoのUSB端子は4つありますが密接しているので、隣の端子を塞がないためにもUSB直挿しタイプよりケーブル接続タイプの方が扱いやすいと思います。
転送速度も速いのでUSB3.0対応のものが良いでしょう。

最後にSDカードAのイメージを保存するためのUSBメモリーです。
容量はSDカードA以上のサイズであれば基本的には大丈夫だと思いますが、今回は64GBのUSBメモリーを使用しました。
こちらもUSB3.0対応&隣のポートに干渉しないようなスリムな物を使うと良いと思います。

USBメモリーはexFATでフォーマットするようにしてください。
FAT32フォーマットでは1ファイル4GBの制限があり、SDカードAのイメージは軽く4GBを超えるので、今回の用途では使用できません。

SDカードのイメージをUSBメモリーに保存

まずJetson Nanoのイメージを書き込んだSDカードBをJetson Nanoに接続し、セットアップを完了します。
方法は公式サイトの手順をご参照ください。

そしてJetson NanoでexFATフォーマットのUSBメモリーが使えるように、以下コマンドで「exfat-fuse」と「exfat-utils」をインストールします。

続いてJetson Nanoにカードリーダーを接続し、そこにSDカードAを接続します。
さらに別のポートにUSBメモリーを接続します。

SDカードAのサイズを削減したい方はからあげさんの記事を参考に、gpartedでパーティションの縮小を行ってください。
今回の場合はほぼ32GB使いきった状態なので、パーティション縮小は行いませんでした。

そしてdfコマンドでSDカードAのデバイスとUSBメモリーのマウント位置を確認します。

今回はSDカードAのデバイス名が/dev/sdf、USBメモリのデバイス名は/dev/sdaでマウント位置が/mntとなっています。
どれがどれか分からない場合はSDカードやUSBメモリーの接続前後でdfコマンドを実行すると良いです。

デバイス名とマウント位置が分かったら、以下コマンドを実行してSDカードAのイメージをUSBメモリーに保存します。

“if=”の後にコピー元となるSDカードAのデバイス名、”of=”の後にイメージの保存先となるUSBメモリーのマウント位置+ファイル名を指定します。
私の環境では15分ほどで32GBのイメージ作成が完了しましたが、カードリーダーやUSBメモリーがUSB2.0接続だともっと時間かかると思います。
ここまでできたらUSBメモリーをWindows機に接続してjetcard_image.imgファイルを適当な場所にコピーし、64GB SDカードをSD Card Formatterでフォーマット後にWin32DiskImager等で書き込みを行ってください。

64GB SDカードのパーティション拡張

イメージを書き込んだ64GB SDカードをJetson Nanoに接続して起動します。
SDカードAの時と同じ内容になっているはずです。
ただしパーティション割り当てもそのままで、増えた分の容量も未割当状態なので相変わらず容量不足のままです。
そこで未割当領域も使えるようにします。

以下コマンドでgpartedのインストールおよび起動をします。

今回の環境では以下のように表示されました。
/dev/mmcblk0p1がシステムで使っている領域で32GB分、残りの未割り当てとなっている32GB分が64GB SDカードに変更したことにより増加した領域です。

/dev/mmcblk0p1部分を右クリックしてリサイズを選択します。
そして以下の画面で新しいサイズを最大サイズである61042MiBに変更し、リサイズボタンを押します。

そして編集→保留中のすべての操作を適用すると進み、デバイスに対して操作を適用画面で適用をクリックするとパーティションの拡張が始まります。


パーティションの拡張は数秒で終わりました。

これで晴れて64GB分の容量がJetson Nanoで使えるようになりました!

まとめ

32GB SDカードで使用していたJetson Nanoを環境そのままコピーして64GBにサイズアップしました。
一般的には32GBあれば十分かとは思いますが、機械学習用のデータセットや動画を入れて容量が足りなくなってしまった方はお試しください。

この記事を書いた人

けん
けん
熱しやすく冷めやすく、さらに完全に形から入るタイプ。
電気回路を勉強中のへっぽこ会社員。


好きなレトロゲーム

【FC】テニス、バルーンファイト、ドラゴンバスター、ボンバーマン
【SFC】スーパーマリオワールド、エキサイトステージ、ドラゴンクエストV、VI、ファイナルファンタジーVI
【GB】ラクロアンヒーローズ、モトクロスマニアクス、魔界塔士Sa・Ga

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA