Armadilloフォーラム

imgファイルの保存と復元

minoru.suganuma

2021年4月8日 16時27分

菅沼と申します。

armadillo-610でeMMCのバックアップについて。

SDブート後、SDカード内の適当なディレクトリにimgファイルの保存と
eMMCへの復元をしたいと考えています。

dd if=/dev/mmcblk0p2 of=backup.img conv=fsync

imageファイルは出来上がりますが、サイズ(3.6GB)が元サイズより大きくなってしまします。
-rw-r--r-- 1 root root 3630530560 Apr 5 2021 buckup.img

このimgファイルをeMMCに書き込むとサイズが大きいので書き込みが
出来ません。

dd if=backup.img of=/dev/mmcblk0p2 conv=fsy
dd: writing to '/dev/mmcblk0p2': No space left on device

eMMCのバックアップと復元の方法をご教示いただけますでしょうか。
初歩的な質問で申し訳ありません。

よろしくお願いいたします。

コメント

at_akihito.irie

2021年4月9日 14時58分

入江です。

当方のSDブートしているArmadillo-610上で、以下の手順でeMMCの第2パーティ
ションのバックアップを取得して書き込み直しましたが、お客様の環境で発生
している現象が再現しませんでした。

[armadillo]# dd if=/dev/mmcblk0p2 of=backup.img conv=fsync
[armadillo]# dd if=backup.img of=/dev/mmcblk0p2 conv=fsync

お客様の環境においても上記コマンドのように、backup.img作成後に何もせず
すぐに書き直しても同様の現象が再現しますでしょうか。

ご確認お願いします。

minoru.suganuma

2021年4月9日 16時36分

入江様

ご確認有難うございます。

ご連絡頂きました様に、バックアップしそのまま復元すると問題無く書き込む事が出来ました。

説明が足りなくて申し訳ありません。補足説明いたします。

aramadillo-610が3枚あり、1枚を使用し装置の環境を作った後に
mmcblk0p2のバックアップをとり、他の2枚にその内容を復元しようと
した所、最初の環境を作ったmmcblk0p2のサイズが他の2枚が
小さい為、復元が出来なかった様です。

-rw-r--r-- 1 root root 3630530560 4月 5 14:23 backup1.img
-rw-r--r-- 1 root root 3621781504 11月 4 2016 backup2.img

backup1.imgが環境を作成したものからddで保存したimg
backup2.imgが新しいarmadillo-610から保存したimg

環境を作成したimgを新しい610に復元する方法は有りますでしょうか。
有ればご教示頂けると幸いです。

よろしくお願いいたします。

> 入江です。
>
> 当方のSDブートしているArmadillo-610上で、以下の手順でeMMCの第2パーティ
> ションのバックアップを取得して書き込み直しましたが、お客様の環境で発生
> している現象が再現しませんでした。
>
>

> [armadillo]# dd if=/dev/mmcblk0p2 of=backup.img conv=fsync
> [armadillo]# dd if=backup.img of=/dev/mmcblk0p2 conv=fsync
> 

>
> お客様の環境においても上記コマンドのように、backup.img作成後に何もせず
> すぐに書き直しても同様の現象が再現しますでしょうか。
>
> ご確認お願いします。
>

minoru.suganuma

2021年4月9日 16時43分

入江様

説明文が間違えおりました。訂正いたします。

> した所、最初の環境を作ったmmcblk0p2のサイズが他の2枚が
> 小さい為、復元が出来なかった様です。
残りの2枚のmmcblk0p2のサイズが小さかったの間違えです。

よろしくお願いいたします。

> 入江様
>
> ご確認有難うございます。
>
> ご連絡頂きました様に、バックアップしそのまま復元すると問題無く書き込む事が出来ました。
>
> 説明が足りなくて申し訳ありません。補足説明いたします。
>
> aramadillo-610が3枚あり、1枚を使用し装置の環境を作った後に
> mmcblk0p2のバックアップをとり、他の2枚にその内容を復元しようと
> した所、最初の環境を作ったmmcblk0p2のサイズが他の2枚が
> 小さい為、復元が出来なかった様です。
>
> -rw-r--r-- 1 root root 3630530560 4月 5 14:23 backup1.img
> -rw-r--r-- 1 root root 3621781504 11月 4 2016 backup2.img
>
> backup1.imgが環境を作成したものからddで保存したimg
> backup2.imgが新しいarmadillo-610から保存したimg
>
> 環境を作成したimgを新しい610に復元する方法は有りますでしょうか。
> 有ればご教示頂けると幸いです。
>
> よろしくお願いいたします。
>
> > 入江です。
> >
> > 当方のSDブートしているArmadillo-610上で、以下の手順でeMMCの第2パーティ
> > ションのバックアップを取得して書き込み直しましたが、お客様の環境で発生
> > している現象が再現しませんでした。
> >
> >

> > [armadillo]# dd if=/dev/mmcblk0p2 of=backup.img conv=fsync
> > [armadillo]# dd if=backup.img of=/dev/mmcblk0p2 conv=fsync
> > 

> >
> > お客様の環境においても上記コマンドのように、backup.img作成後に何もせず
> > すぐに書き直しても同様の現象が再現しますでしょうか。
> >
> > ご確認お願いします。
> >

minoru.suganuma

2021年4月10日 16時15分

入江様

お世話になっております。

ddでの複製は、同一機器で行うものとの事なので
ddでのimgデータの書き込みはやめ、dumprootfsを使用し
インストールディスクからのeMMC書き込みを行う事にしました。
dumprootfsを使用しdump_rootfs.tar.gzは作成できましたが、
ATDEを使用し、make-install-disk-imageからimgを作成する時に
添付ファイルの様な/tmpの容量不足エラーが発生し正常に
install-disk-sd-a610-xxxxxxxx.imgが出来ません。

対処方法をご存じでしたらご教示頂けると幸いです。

よろしくお願いいたします。

ファイル ファイルの説明
dump_rootfs_log.txt

at_akihito.irie

2021年4月12日 14時14分

入江です。

ATDE上で下記コマンドを実行していただき、その出力をいただけますでしょうか。

[ATDE]$ df -h

minoru.suganuma

2021年4月12日 14時24分

> 入江です。
>
> ATDE上で下記コマンドを実行していただき、その出力をいただけますでしょうか。
>
>

> [ATDE]$ df -h
> 

>

入江様

お手数お掛けいたします。

df -h の結果を知らせします。

atmark@atde7:~$ sudo df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
udev 2.0G 0 2.0G 0% /dev
tmpfs 404M 6.5M 398M 2% /run
/dev/mapper/atde7--vg-root 31G 10G 19G 35% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
vmhgfs-fuse 461G 456G 4.5G 100% /mnt/hgfs
/dev/sda1 236M 132M 93M 59% /boot
tmpfs 404M 28K 404M 1% /run/user/115
tmpfs 404M 20K 404M 1% /run/user/1000

よろしくお願いいたします。

at_akihito.irie

2021年4月12日 18時31分

入江です。

make-install-disk-imageは、ユーザーランドのサイズを取得し、それに50MB
のマージンを加えたサイズのイメージファイルを作成しています。
しかし、現状ユーザーランドのサイズが正しく取得できておらず、作成したイ
メージファイルの容量が足りなくなっているようです。

ワークアラウンドではありますが、以下の手順でマージンのサイズを調整して、
エラーが起こらない容量でインストールディスクイメージを作成してください。

まず、make-install-disk-imageのv1.1.0に、添付のパッチ(p2-margin.patch)
を適用してください。

[ATDE ~/make-install-disk-image-v1.1.0]$ ls
build.sh  core  images  p2-margin.patch
[ATDE ~/make-install-disk-image-v1.1.0]$ patch -p1 < p2-margin.patch

その後、以下のように変数MARGINを定義しつつ、build.shを実行してください。

[ATDE ~/make-install-disk-image-v1.1.0]$ sudo MARGIN=100 ./build.sh a610 images/(以下略)

MARGINの単位はMByteで、初期値は50MBなのでそれ以上の値に設定すると良い
と思います(上記コマンド例では100MB)。
ただし、MARGINの値を大きくするとインストールディスクイメージのサイズも
大きくなりますのでご注意ください。

お手数おかけしますが、よろしくお願いいたします。

ファイル ファイルの説明
p2-margin.patch

minoru.suganuma

2021年4月12日 19時03分

入江様

お世話になっております。
ご教示頂きました手順で、エラー無く無事にimgファイルが出来上がりました。
ありがとうございました。

1点お聞きしたいのですが、3枚あるarmadillo-610のmmcblk0p2のサイズが
1枚だけ大きいのはどのような理由でしょうか。
ご教示頂けますと幸いです。

よろしくお願いいたします。

minoru.suganuma

2021年4月13日 8時29分

入江様

ご教示頂きました方法で出来たimgファイルからインストールディスクを作り
インストールを行うと、添付ファイルの様に途中で止まってしまいます。
出来上がったimgファイルからインストールディスクの作成
sudo dd if=install-disk-sd-a610-20210412.img of=/dev/sdb conv=fsync

610用のimgファイルからだとインストールは正常終了します。
sudo dd if=install-disk-sd-a600-20200219.img of=/dev/sdb bs=4M conv=fsync

dump_rootfsで作成するimgファイルを全てwgetでダウンロードしたデータを使用して
作成したimgファイルの場合もインストールが途中終了しました。
sudo ./build.sh a610 ~/images/u-boot-a600-v2018.03-at8.imx ~/images/uImage-a600-v4.14-at23 ~/images/a610_20210226.dtb ~/images/debian-stretch-armhf-a600-20200319.tar.gz

度々、申し訳ありませんが対処方法をご教示お願いいたします。

よろしくお願いいたします。

ファイル ファイルの説明
インストールディスクからインストールNG.log dump_rootfsで作成したimgファイルでインストールした時のログ

at_akihito.irie

2021年4月13日 11時34分

入江です。

ddコマンドは成功していましたでしょうか。

問題の切り分けのため、再度SDにインストールディスクイメージを書き込んで、
その終了ステータスも確認してみるのが良いと思います。
以下のコマンドを実行し、OKが出力されることを確認して、再度インストール
を行ってください(以下はSDカードが/dev/sdbの場合)。

[ATDE]$ sudo umount /dev/sdb[0-9]
[ATDE]$ sudo dd if=install-disk-sd-a610-20210412.img of=/dev/sdb bs=4M conv=fsync && echo OK // 成功するとOKが出力される

minoru.suganuma

2021年4月13日 12時05分

入江様

ご確認頂きありがとうございます。
再度、インストールSDの作成とインストールを行いましたので
ログをお送りいたします。
結果は同じでした。インストールSDの作成はOKで終わっています。

申し訳ありませんがサポートよろしくお願いいたします。

菅沼

> 入江です。
>
> ddコマンドは成功していましたでしょうか。
>
> 問題の切り分けのため、再度SDにインストールディスクイメージを書き込んで、
> その終了ステータスも確認してみるのが良いと思います。
> 以下のコマンドを実行し、OKが出力されることを確認して、再度インストール
> を行ってください(以下はSDカードが/dev/sdbの場合)。
>
>

> [ATDE]$ sudo umount /dev/sdb[0-9]
> [ATDE]$ sudo dd if=install-disk-sd-a610-20210412.img of=/dev/sdb bs=4M conv=fsync && echo OK // 成功するとOKが出力される
> 

>

ファイル ファイルの説明
インストール途中停止.log

at_akihito.irie

2021年4月13日 18時17分

入江です。

作成したインストール用SDカードをATDEに接続して、以下のコマンドを実行し
てください。
以下手順はSDが/dev/sdbであること前提です。適宜読み替えてください。

[ATDE]$ sudo umount /dev/sdb[0-9]

次に、下記のコマンドを実行し、その出力をいただけますでしょうか。

[ATDE]$ sudo fdisk -l /dev/sdb
[ATDE]$ sudo mount /dev/sdb2 /mnt
[ATDE]$ ls /mnt

上記コマンドが失敗した場合も教えてください。
以上、よろしくお願いいたします。

minoru.suganuma

2021年4月13日 18時40分

> 入江です。
>
> 作成したインストール用SDカードをATDEに接続して、以下のコマンドを実行し
> てください。
> 以下手順はSDが/dev/sdbであること前提です。適宜読み替えてください。
>
>

> [ATDE]$ sudo umount /dev/sdb[0-9]
> 

>
> 次に、下記のコマンドを実行し、その出力をいただけますでしょうか。
>
>

> [ATDE]$ sudo fdisk -l /dev/sdb
> [ATDE]$ sudo mount /dev/sdb2 /mnt
> [ATDE]$ ls /mnt
> 

>
> 上記コマンドが失敗した場合も教えてください。
> 以上、よろしくお願いいたします。
>

minoru.suganuma

2021年4月13日 18時42分

入江様

大変お忙しい所申し訳御座いません。
コマンドの結果を添付ファイルでお送りします。

ご確認よろしくお願いいたします。

菅沼

> 入江です。
>
> 作成したインストール用SDカードをATDEに接続して、以下のコマンドを実行し
> てください。
> 以下手順はSDが/dev/sdbであること前提です。適宜読み替えてください。
>
>

> [ATDE]$ sudo umount /dev/sdb[0-9]
> 

>
> 次に、下記のコマンドを実行し、その出力をいただけますでしょうか。
>
>

> [ATDE]$ sudo fdisk -l /dev/sdb
> [ATDE]$ sudo mount /dev/sdb2 /mnt
> [ATDE]$ ls /mnt
> 

>
> 上記コマンドが失敗した場合も教えてください。
> 以上、よろしくお願いいたします。
>

ファイル ファイルの説明
test.log

minoru.suganuma

2021年4月19日 15時06分

入江様

先日の返信結果で、何か分かりそうでしょうか。
お忙しい所申し訳ありません。

よろしくお願いいたします。

菅沼

> 入江様
>
> 大変お忙しい所申し訳御座いません。
> コマンドの結果を添付ファイルでお送りします。
>
> ご確認よろしくお願いいたします。
>
> 菅沼
>
> > 入江です。
> >
> > 作成したインストール用SDカードをATDEに接続して、以下のコマンドを実行し
> > てください。
> > 以下手順はSDが/dev/sdbであること前提です。適宜読み替えてください。
> >
> >

> > [ATDE]$ sudo umount /dev/sdb[0-9]
> > 

> >
> > 次に、下記のコマンドを実行し、その出力をいただけますでしょうか。
> >
> >

> > [ATDE]$ sudo fdisk -l /dev/sdb
> > [ATDE]$ sudo mount /dev/sdb2 /mnt
> > [ATDE]$ ls /mnt
> > 

> >
> > 上記コマンドが失敗した場合も教えてください。
> > 以上、よろしくお願いいたします。
> >

at_akihito.irie

2021年4月19日 18時18分

入江です。

回答が遅くなってしまい、申し訳ございません。

当方でも調査を進めていますが、現象の再現もできない状態です。

ですが頂いたインストールログから、make-install-disk-imageに最初から組
み込まれているユーザーランドイメージに問題がある可能性が考えられます。
そこで、make-install-disk-imageを削除、再ダウンロードしてから再度イン
ストールディスクイメージの作成をやり直していただいてよろしいでしょうか。

以上、よろしくお願いいたします。