У меня есть 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
Заимствование изdon_crisstiответс использованием
tee
, но безdd
илиБашизмы:sudo tee /dev/disk2 /dev/disk3 > /dev/disk4 < masi.img
Использование
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