web-dev-qa-db-ja.com

dd:複数のディスクに書き込みますか?

まったく同じフォーマット、同じサイズ、同じブランドのSDカードが2枚あります。 dd画像を/dev/disk2に同時に/dev/disk3に同時に送信したいと思います。
疑似コード

Sudo dd bs=1m if=/Users/masi/2016-05-10-raspbian-jessie.img of={/dev/disk2,/dev/disk3}

どうすれば1つの入力から多くの出力SDにddできますか?

  1. don_crisstiの回答 から借用しますが、teeを使用しますが、ddまたはbashisms:

    Sudo tee /dev/disk2 /dev/disk3 > /dev/disk4 < masi.img
    
  2. Debianのpeeを使用 moreutils パッケージ:

    Sudo dd if=masi.img | \
      pee "dd of=/dev/disk2"  "dd of=/dev/disk3"  "dd of=/dev/disk4"
    

    bashksh、またはzshを使用すると、以下のように省略できます。

    Sudo dd if=masi.img | pee "dd of=/dev/disk"{2..4}
    

    または、(ddの便利な関数が必要ない場合):

    Sudo pee "dd of=/dev/disk"{2..4} < masi.img
    

    peeは便利です。必要に応じて、(引用された各引数内に)追加の個別のddオプション、さらには各出力デバイスに個別に調整された他のパイプとフィルターを含めることができます。

どちらの方法でも、出力ディスクの数を無制限に拡張できます。

20
agc

あなたは試すことができます dcfldd
これはgnu ddの拡張バージョンであり、複数のファイルまたはディスクに同時に出力できます。

dcfldd if=masi.img of=/dev/disk2 of=/dev/disk3 of=/dev/disk4
21
don_crissti

また、これはteeおよび_process substitution_で可能です。

dd if=/dev/sda | tee >(dd of=/dev/sdb) >(dd of=/dev/sdc) | dd of=/dev/sdd

3
manifestor