画像を書く 2枚のSDカードで同時にやりたいです。私は少なくとも2つの同時書き込みシナリオを想定しています。
tee
または同様の分岐メカニズムを使用してイメージを書き込むことは可能ですか?2つの異なるBASHシェルからcatまたはpvコマンドを実行することは可能ですか?
Sudo sh -c 'pv sdcard.image >/dev/sdb'
Sudo sh -c 'pv sdcard.image >/dev/mmcblk0'
Sudo sh -c 'cat sdcard.image >/dev/sdb'
Sudo sh -c 'cat sdcard.image >/dev/mmcblk0'
2つのターゲットを異なる速度で書き込むことができる場合は、遅いライターに過負荷をかけないように、書き込み速度を下げる必要があるかもしれないという問題を予見できます。画像が大きい:複数のターゲットを書き込む機能は大きな利点です。
ティーなどの分岐機構で画像を書き込むことはできますか?
Sudo tee /dev/sdb /dev/mmcblk0 < sdcard.image > /dev/null
2つの異なるBASHシェルからcatコマンドを実行することは可能ですか?
どのcat
コマンド?
ここと同じ結果を達成したいだけの場合:
Sudo sh -c 'pv sdcard.image >/dev/sdb'
Sudo sh -c 'pv sdcard.image >/dev/mmcblk0'
しかし、1回のEnterヒットで、次のようなコマンドを単純に組み合わせてみませんか?:
Sudo sh -c 'pv sdcard.image /dev/sdb && pv sdcard.image /dev/mmcblk0'
ファイルを2回読みたくないからですか?
(&&
を使用すると、最初のコマンドが成功した場合にのみ、2番目のコマンドが実行されます。とにかく2番目のコマンドを実行する場合は、&&
を;
に変更できます)
ファイルシステムからファイルを1回だけ読み取るには、次のようにします。
cat sdcard.image | tee /dev/sdb > /dev/mmcblk0
ここでは、tee
のデフォルトの動作を利用しています。tee
がファイルに送信するもの、デバイスターゲットの1つに送信し、そのデバイスをtee
コマンドのファイル引数として指定し、tee
が送信するものstdout、他のデバイスターゲットにリダイレクトします。
または、イメージを2回読み取りますが、両方の書き込みを同時に、parallelで、parallel
を使用して実行します:
parallel 'cat sdcard.image >' ::: /dev/{sdb,mmcblk0}
注:このparallel
はGNU parallel
であり、moreutils parallel
ではないことに注意してください。