Armadilloフォーラム

インストールディスクイメージのSDへの書き込みについて

a2c-maru

2024年2月14日 17時13分

表題の件で、2点お尋ねします。

1.
SD(microSD)にインストールディスクイメージを書き込む際、
環境の制約からATDEではなく、普通のLinuxPCを使用しています。
その LinuxPCでは、SDカードは自動mountされるのですが、
mountされたままの状態でイメージを書き込んだSDを使用すると
Armadilloへの書き込みに失敗し、シリアルで様子を見ると
 ERROR: can't get kernel image!
 =>
で停止しています。
一方、自動mountされたSDを umountしてからSDにイメージを
書き込んだ場合、Armadilloへの書き込みは成功します。
どちらもSDに書き込んだ時点では何の異常も生じないのですが、
上記は理にかなった差異なのでしょうか?
(umountが解決策だという確証を得たい、というのが意図です。)

2.
フィールド展開に当たり、
インストールディスクイメージへのSDへの書き込み作業は、
Linuxに不慣れな方が実施することになる可能性が高いです。
Armadilloの話題からそれてしまって大変恐縮なのですが、
WindowsでインストールディスクイメージをSDに書き込める
(⇒そのSDでArmadilloに書き込める)
ツールをご存知ないでしょうか?

コメント

> (umountが解決策だという確証を得たい、というのが意図です。)

はい正しいです。umountしてからddで書き込んでください。
(ddの後のsyncも忘れず実行してください)
SDカードにファイルシステムがある場合に自動的にmountされますが、
この状態でddにより書き込みは基本的にはしてはいけません。

ddによる書き込みは、ファイルシステムもパーティション
(どちらもディスク上にあるデータ構造です)にも無関係に
生のバイト列をを書き込むため、mountしている状態の
パーティションとddして書いているものに齟齬が発生すると
エラーしたり、umount時のキャッシュからの書き戻しで
競合した書き込みになる可能性があります。
(可能性というより、なっているので、その結果ですね)

>
> (⇒そのSDでArmadilloに書き込める)
> ツールをご存知ないでしょうか?

当社のマニュアルだとwinddをつかっていたり
https://sourceforge.net/projects/windd/

最近だとrufusがこの手のツールだと新しいと思います。
https://rufus.ie/ja/

winddは、すでにメンテナンスされていない期間が長いので
最近のwindowsの挙動に対応しているのはrufasの方がいいかもしれません。

恐らく、原理的にwindowsでもSDを自動マウントされている状態だと、
上のツールは正しく書き込みできないはずです。
(プロパティから「安全にデバイスを取り外す」を強制されるか、ツールで自動で
取り外しを実施するものもあるかもしれません。)

早速のご回答ありがとうございました。
有益な情報をいただき、大変助かります。

間が空いてしまいましたが、rufusを使用してみたのでレポートします。
環境:Windows 10 Pro + rufus-4.4.exe
操作:[ 選択 ] ⇒ イメージファイルを選択 ⇒ [ スタート ]
   ⇒ SD内のデータが消去される旨の警告表示 ⇒ [ OK ]
結果:microSDへの書き込み、Armadilloへの書き込みとも問題なし

なお、書き込み終了後、Windowsから認識できない形式になった
ことによる(と思われる)警告が 2種類表示されました。