dd: записать на несколько дисков?

dd: записать на несколько дисков?

У меня есть 2 совершенно одинаковые отформатированные, одинакового размера и одинаковой марки SD-карты. Я хотел бы одновременно ddделать образ на /dev/disk2и на . Псевдокод/dev/disk3

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

Как можно ddиз одного входного SD сделать несколько выходных?

решение1

Вы можете попробоватьdcfldd
Это улучшенная версия gnu dd, которая может выводить данные в несколько файлов или дисков одновременно:

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

решение2

  1. Заимствование изdon_crisstiответс использованием tee, но без ddилиБашизмы:

    sudo tee /dev/disk2 /dev/disk3 > /dev/disk4 < masi.img
    
  2. Использование peeиз Debianmoreutilsупаковка:

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

    С bash, ksh, или 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параметры и даже другие каналы и фильтры, индивидуально настроенные для каждого выходного устройства.

При любом из методов количество выходных дисков можно увеличивать до бесконечности.

решение3

Также это возможно с teeи process substitution:

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

решение4

возвращаюсь к этому вопросу спустя 7 лет

parallelотличный инструмент для этого

Я использую этот фрагмент для обнуления дисков, его можно легко изменить на образы дисков

parallel dd if=/dev/zero of={} status=progress ::: /dev/nvme{0,1}n1

Связанный контент