ブログ

Armadillo-X1,Armadillo-IoT G3/G3L: ルートファイル展開後に正しくeMMCへ書き込まれていることを確認する方法

at_syunya.ohshio
2017年12月14日 16時45分

ルートファイルシステムの展開と書き込みは、マニュアルの項目「ルートファイルシステムの書き換え」を参考にeMMCへ行います。
しかし現状では「eMMCに書き込んだルートファイルシステムが正しいか」の確認方法まではマニュアルに記載されていません。
そこで本ブログではArmadillo-X1,Armadillo-IoT G3/G3Lへルートファイル展開後、正しくeMMCへ書き込まれているか確認する方法をご紹介します。

今回は例として、次の二種類のルートファイルシステムに対して[md5sum]コマンドを用いたmd5チェックサムでの確認方法を記載します。
1.既存のルートファイルシステム
2.利用者が新しく作成したルートファイルシステム

既存のルートファイルシステムのmd5チェックサムリスト生成

Armadilloのサイト「ドキュメント・ダウンロード」等から圧縮済みのルートファイルシステム「debian-jessie-armhf_[機種]_[VERSION].tar.gz」をダウンロード後、これを一度解凍して[md5sum]コマンドを用いたmd5チェックサムリストを生成します。
解凍からmd5チェックサムリスト生成までのコマンドを次に記載します。

atde:~/$ mkdir md5sum_create
atde:~/$ sudo tar zxf debian-jessie-armhf_[機種]_[VERSION].tar.gz -C md5sum_create/
atde:~/$ cd md5sum_create
atde:~/md5sum_create$ sudo find -type f -exec md5sum {} \; > ../check-list.md5sum
atde:~/md5sum_create$ cd ..
atde:~/$ sudo rm -Rf md5sum_create

上記コマンド実行後、ルートファイルシステムのmd5チェックサムリスト「check-list.md5sum」ファイルが生成されます。

利用者が新しく作成したルートファイルシステムのmd5チェックサムリスト生成

別ブログ「Armadillo-X1,Armadillo-IoT G3/G3L: Debian GNU/Linuxルートファイルシステム構築ツール「x1-debian-builder」の使用方法」にて紹介している[x1-debian-builder]のツール実行スクリプト[build.sh]を変更し、ルートファイルシステム生成と同時にmd5チェックサムリストを生成させます。
[vi]コマンド等で[build.sh]を開き、最下行周辺のコードを次のように修正します。
「#md5sum_check-list create」以下3行が追加行となります。

#Remove resources
cp $ABSP/resources/installed_pkgs.list ./installed_pkgs_$BD.list
chown ${SUDO_USER}  ./installed_pkgs_$BD.list
rm -rf $ABSP/resources

#md5sum_check-list create
cd $ABSP
sudo find -type f -exec md5sum {} \; > ../check-list.md5sum
cd ..

#Archive userland
(cd $ABSP; tar zcf ../$(basename $ABSP)_$BD.tar.gz * ; chown ${SUDO_USER} ../$(basename $ABSP)_$BD.tar.gz)

#Remove working dir
rm -rf $ABSP

[build.sh]修正後にスクリプトを実行すると、x1-debian-builder-[VERSION]ディレクトリ下にルートファイルシステムのmd5チェックサムリスト「check-list.md5sum」ファイルが生成されます。

ルートファイルシステム展開後のmd5チェックサムの確認

マニュアルの項目「ルートファイルシステムの書き換え」を参考にeMMCへ展開後、md5チェックサムの確認を行います。
前項目で生成した「check-list.md5sum」はあらかじめArmadillo上にコピーしておきます。
今回の例ではArmadillo-Iot G3にroot権限でログインしているとし、md5チェックサムリスト「check-list.md5sum」は/root下に設置したとします。
まずeMMCの第二パーティションをマウントし、ディレクトリ内に移動します。

armadillo:~# mount /dev/mmcblk2p2 /mnt/
armadillo:~# cd /mnt
armadillo:~/mnt#

その後、md5sumコマンドを用いてチェックサムの確認を行います。
環境によりますが、md5チェックサムは約1分30秒ほどかかります。

armadillo:~/mnt# md5sum -c /root/check-list.md5sum

上記コマンド実行後、md5チェックサムが一致していなければ次のようにWARNINGが表示され、展開に失敗していることがわかります。

md5sum: WARNING: 31 listed files could not be read
md5sum: WARNING: 2411 computed checksums did NOT match

上記WARNINGが表示されなければ正常に展開されています。

注意

md5チェックサムの確認は、必ず「ルートファイルシステムをeMMCに展開してから、再起動するまで」に行ってください。
展開後に一度でも再起動を行ってしまうとファイルが更新されてしまうため、次のようにmd5チェックサムが合わなくなってしまいます。

md5sum: WARNING: 2 computed checksums did NOT match