Help us understand the problem. What is going on with this article?

Jetson NanoのSDカードを丸ごとハードコピー(イメージ化)する方法

IMG_4820.JPG

Jetson NanoのSDカードの中身を丸々コピーしたい

 丹精込めて作り上げたJetson Nanoの環境、SDカードごと丸々コピーしたくなったりしますね。

 SDカードをイメージ化する方法自体はJetCardのGitHubリポジトリのREADMEに書いてありますので、これを参考にすれば良いのですが、例えば32GBのSDカードをそのままイメージ化してしまうと、32GBのSDカードにコピーするときSDカードの微妙な容量差によりコピーできない場合があったりします。

 また、イメージ自体の容量は、できれば削減したいのが人情です。そこで、ここでは容量を削減しつつイメージ化するテクニックを紹介します。

 ちなみに、この記事は昔Raspberry Piで実施した方法をJetson Nanoで実施したものとなります。
MacでRaspberry PiのSDカードをハードコピー(バックアップ)

Jetson NanoのSDコピー

必要なもの

 Jetson Nanoに加えて、コピー元のSDカードAとSDカードのイメージ化を行うSDカードB、コピー先のSDカードCと、3枚のSDカードが必要です。

  • Jetson Nano + 周辺機器(キーボード・マウス・ディスプレイ)
  • SDカードリーダー
  • SDカードA:コピー元のSDカード
  • SDカードB:SDカードのイメージ化を行うSDカード(64GB以上が望ましい)
  • SDカードC:コピー先のSDカード

 注意点としては、SDカードBは、自身のJetson Nanoのプログラム容量に加えて、イメージの容量も必要なため大きい容量が必要です。64GB程度は必要になると思います。

 また、SDカードAとSDカードBの容量が違う方が見分けがつきやすく、操作間違いが減ると思います。

ハードウェアの準備

 SDカードBにJetson Nanoのイメージを書き込んで、SDカードBでJetson Nanoを起動します。その後、Jetson NanoにSDカードリーダを使って、SDカードAを接続します。

IMG_4820.JPG

SDカードのパーテーションの縮小(リサイズ)

 コピー元のSDカードAのサイズを削減するため、パーティションを縮小(リサイズ)します。パーティーションのリサイズには、GUIで操作できるgpartedを使用します。

 以下コマンドでインストールできます。

$ sudo apt-get update
$ sudo apt-get install gparted

 gpartedは以下コマンドで起動します。起動する前にJetson NanoにSDカードリーダーとSDカードAを接続しておいて下さい。

$ sudo gparted

 右上のボタンから、SDカードのデバイスを選択します。 /dev/sdbの場合が多いと思います。容量で見分けるか、SDカード接続前後で確かめて下さい(SDカード接続後に増えたデバイスが対象のデバイスです)。
Screenshot from 2019-07-05 22-36-26.png

 dev/sdb1を右クリックして、Resizeを選択してからカードを適度にリサイズします。1GB程度は容量にマージンがあった方が良いと思います。
Screenshot from 2019-07-05 22-37-16.png

 Edit -> Apply All Operationsでパーティション操作を確定します。
Screenshot from 2019-07-05 22-37-40.png

 パーティションがリサイズされます。
Screenshot from 2019-07-05 22-38-36.png

 以下で完了です
Screenshot from 2019-07-05 22-56-28.png

SDカードのイメージ化

 以下コマンドでSDカードAをjetcard_image.imgというファイル名でイメージ化します。

$ sudo dd bs=4M if=/dev/sdb of=jetcard_image.img status=progress count=6250

bs=4Mは1度に4MB書き込むことを意味しています。count=6250で6250x4MB=2600MBのサイズのイメージを作成します。このサイズは、先ほどリサイズした容量以上の値を指定するようにして下さい。何も指定しないと、SDカードのサイズでイメージ化されます。

イメージファイルのSDカードへの書き込み

 通常のJetson NanoのSDカード同様、Etcher等を使ってコピー先のSDカードCにイメージを書き込みましょう。

 書き込み方の詳細知りたい方は、以下記事のイメージ書き込み方法を参照下さい。
Jetson Nanoで使えるSDカードのイメージファイルまとめとイメージ書き込み方法

 書き込んだ後は、またGpartedを使って縮小と同じ容量でSDカードCに合わせたサイズにパーティション拡大しましょう(拡大しないと、SDカードに使えない容量が残ったままになってしまいます)。

 方法は、SDカードBでJetson Nanoを起動して、SDカードCをSDカードリーダーでJetson Nanoに接続します。

 その状態で、以下コマンドでgpartedを起動します。

$ sudo gparted

 すると、ダイアログが出るので、OK、Fixの順にクリックします。
 Screenshot from 2019-07-06 01-08-01.png

 右上から/dev/sdbを選択すると、以下のようになっています。
Screenshot from 2019-07-06 01-08-22.png

 dev/sdb1を右クリックして、Resizeを選択してからカードのNew Sizeをカード容量の最大まで増やします。
 Screenshot from 2019-07-06 01-09-47.png

 Edit -> Apply All Operationsでパーティション操作を確定します。
 Screenshot from 2019-07-06 01-10-06.png

 これで容量がリサイズされます。

まとめ

 Jetson NanoのSDカードを丸ごとハードコピーする方法を書きました。結構手間がかかりますが、せっかく作り上げたJetson Nanoの環境、イメージ化してバックアップしておくことをおすすめします。

関連記事

Jetson Nano関係のTIPSまとめ
Jetson Nano関係の情報は、上記ページにまとめていますのでよければ参照下さい。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away