Bunu yapmak için bash komutunun tee işlemiyle birlikte "process substitution" komutunu kullanabilirsiniz:
cat drive.image | tee >(dd of=/dev/sda) >(dd of=/dev/sdb) >(dd of=/dev/sdc) | dd of=/dev/sdd
ya da netlik için (biraz verimlilik pahasına) ddsonuncunun diğerleriyle aynı şekilde çağrılmasını sağlayabilir ve tee stdout'unu / dev / null'a gönderebilirsiniz:
cat drive.image | tee >(dd of=/dev/sda) >(dd of=/dev/sdb) >(dd of=/dev/sdc) >(dd of=/dev/sdd) | /dev/null
Eğer varsa ve bunu kullanabilirsiniz yüklü boru görüntüleyici yerine catyararlı bir ilerleme göstergesi almak için:
pv drive.image | tee >(dd of=/dev/sda) >(dd of=/dev/sdb) >(dd of=/dev/sdc) | dd of=/dev/sdd
Bu, kaynak görüntüyü yalnızca bir kez okur, bu nedenle kaynak sürücünün kafa atması görülür, bu nedenle görüntüyü diğer yöntemlerle birden çok kez kopyalamaya çalıştığınızda muhtemelen üstel yavaşlama göreceksiniz. teeYukarıdaki gibi kullanıldığında , işlemler en yavaş hedef sürücünün hızında çalışmalıdır.
Hedef sürücülerin USB üzerinden bağlı olması durumunda, bunların hepsinin veri yolu bant genişliğini paylaşıyor olabileceğini unutmayın, bu nedenle paralel olarak çok sayıda yazmak bunları sıralı olarak yazmaktan daha hızlı olmayabilir, çünkü USB veri yolu kaynak veya hedef sürücüler değil darboğaz haline gelir.
Yukarıdaki, Linux veya benzeri kullandığınızı varsayar (cihaz adları farklı olsa da OSX üzerinde de çalışmalıdır), Windows veya başka bir şey kullanıyorsanız, farklı bir çözüme ihtiyacınız vardır.
Düzenle
Ağ üzerinden görüntüleme, kullandığınız yazılım bazı yayın veya çok noktaya yayın iletimini desteklemedikçe, USB üzerinden birçok sürücünün görüntülenmesi ile benzer bir soruna sahiptir - aktarım kanalı sürücüler yerine darboğaz haline gelir.
İçin ddyöntemle yapabildin muhtemelen papatya dizimi netcat+ tee+ ddşöyle her makinede süreçler:
- Kaynak makinesi
cat/ pv/ ddaracılığıyla veri s nchedef makineye 1.
- Hedef makine (1),
nckaynak makineden veri dinler ve bunları boru hattına teegönderir dd(bu da diske ncgönderir ) ve hedef makineye (2) gönderen başka bir işleme sahiptir.
- Hedef makine (2),
nchedef makine (1) 'den gelen verileri dinler ve bunları boru hattına teegönderir dd(ve böylece diske) ve nchedef makineye (3) gönderen başka bir işleme sahiptir.
- ve böylece
ncverileri önceki makineden alıp diske gönderen son makineye kadar devam eder dd.
Bu şekilde, anahtar ve ağ kartlarınızın hepsinin tam çift yönlü bir bağlantı üzerinde anlaştığınızı varsayarak, tam ağ bant genişliğinizi potansiyel olarak kullanırsınız. Kaynak makine yerine verilerin 10 kopyasını gönderir (10 hedef makine olduğu varsayılır), böylece her biri giden bant genişliğinin 1 / 10'u ile sınırlıdır. Her bir hedef makine verilerin bir kopyasını alıp gönderir tekrar. Sen tampon boyutu ayarlarını değiştirebilir gerekebilir pv, ncve dden pratik performans yaklaşmak için.
Çok noktaya yayını destekleyen bir yazılım bulabilirseniz, bu çok daha kolay (ve muhtemelen biraz daha hızlı) olacaktır! Ama yukarıdaki denemek için yeterince daft olabilir hacky çözüm tür ...
Tekrar Düzenle
Başka bir düşünce. Sürücü görüntüsü iyi sıkıştırırsa (büyük parçaları sıfırlarla doluysa), kaynak makinenin giden bant genişliği aynı anda birçok hedefe gönderilse bile sorun olmak zorunda değildir. Önce görüntüyü sıkıştırın, tee+ ile her yere nciletin ve hedeflerde (ağ-> nc-> dekompresör-> dd-> disk) açın.