Yanıtlar:
Kaynaktan hedefe sshd'nin çalıştığı hedefe kopyalama:
dd if=/dev/sda | gzip | ssh root@target 'gzip -d | dd of=/dev/sda'
Hedef sshd çalışmadığında, kaynaktan s hedefe sshd_host ile kopyalamak.
nc -l -p 62222 | dd of=/dev/sda bs=$((16 * 1024 * 1024))
ssh -L 62222:target:62222 sshd_host &
Kaynak: dd if=/dev/sda | nc -w 3 localhost 62222
dd - if = kaynaksa, = = hedef, bs = blok büyüklüğüdür. Farklı blok boyutları performansı artırabilir. 16 genellikle oldukça makul bir başlangıç noktasıdır. Ayrıca kaç blok kopyalanacağını göstermek için count = kullanabilirsiniz .
nc - -p , servisler için kullanılacak portu gösterir. -Bir servisi başlatmak için kullanılır. -w , istifa etmeden önce veri hattında beklemek için gereken süreyi ayarlar.
ssh - -L uzaktaki ana makinede tüneli kurar. Argümanın formatı local_port:target_host:target_port
,. Yerel programınız (nc) local_port'a bağlanır, bu bağlantı tünellenir ve target_host'ta target_port'a bağlanır.
Tanımlanan seçenekler sadece bunun için kullanılan seçeneklerdir. Daha fazla bilgi için man sayfalarına bakın.
Birkaç not:
source machine dd -> nc -> ssh -> ssh tunnel -> sshd server -> nc on target -> dd
Eğer ssh olmadan netcat kullanın. Sanırım en güvenli olanı değil, en hızlı olanıdır, tüm diski bu şekilde kopyalayıp geri yükleyebilirsiniz:
A bilgisayarında IP 192.168.0.1
cat /dev/hdb | nc -p 9000
B bilgisayarında
nc -l 192.168.0.1 9000 > /dev/hdb
Unutmayın ki nc'ye göre -l seçeneği şöyle:
-L nc'nin uzak bir ana bilgisayarla bağlantı başlatmak yerine gelen bir bağlantıyı dinlemesi gerektiğini belirtmek için kullanılır. Bu seçeneği -p, -s veya -z seçenekleriyle birlikte kullanmak bir hatadır .
netcat gerekli değildir.
src makinede çalıştırma:
dd if=/dev/sdX bs=1M | ssh root@dstMachine " dd of=/dev/sdY bs=1M"
sdX ve sdY'deki bölümlerin hiçbirinin monte edilmediğini varsayıyorum. Her iki kutuyu da knoppix veya benzeri bir canlı yayınla başlatabilirsiniz .
dd - eğer [verilmezse - stdin'den alır] 'dan veri alır , [verilmezse - veri stdout'a gönderilir]' e veri gönderir . bs - blok büyüklüğü ... işleri hızlandıracak.
ssh - uzak kutudaki tırnak işaretleri içinde verilen komutu yürütür, ssh dizisine pompalanan tüm veriler uzak makineye tünellenir ve orada yürütülen komut için stdin olarak porovid edilir.
Ana bilgisayar A, resimdeki, ana bilgisayar B ise resmin depolanacağı resimdir:
root@A# dd if=/dev/sda | ssh root@B "dd of=/some/file"
Diske geri yükleme sadece bu ikisini değiştirir.
Netcat ile temel kopya burada açıklanmıştır .
Bu konuda SSH ile ilgilenmeniz gerekiyorsa , bunun için bağlantı noktası iletmeyi kullanabilirsiniz ,
-R [bind_address:]port:host:hostport
Ancak, genel olarak, SSH transferini ilk başta (netcat olmadan) yapabilirsiniz.
Dosya sistemlerinin ikisi de bağlantısı kaldırıldığı sürece, dd iyi çalışıyor.
(from server1) dd if=/dev/sda bs=32k | ssh <server2> dd of=/dev/sda bs=32k
Önceden hostkey kimlik doğrulama kurulumuna ihtiyacınız olacak, aksi takdirde şifre istemi kopyalamanın başarısız olmasına neden olacaktır.
Bunu, monte edilmiş bir ses seviyesinde yapmak, kötü sonuçlar üretecektir.
Veya, clonezilla'yı kullanabilir ve uzaktaki depolama alanınızı sshfs aracılığıyla "bağlayabilirsiniz".
Yukarıda verilen seçeneklerin bir kombinasyonunu denedim ve sonuçları sizinle paylaşıyorum. dd blok boyutu, gzip ve gzip sıkıştırma algoritması kombinasyonlarını kullanarak en yavaş ila en yavaş.
Gördüğünüz gibi gzip sadece hızlı algoritmayı İM blok büyüklüğü ile birlikte kullanırken beni iyileştirdi.
time dd bs=1M if=/dev/HypGroup00/stage-snapshot | gzip --fast | ssh hyp5 'gzip -d | dd bs=1M of=/dev/HypGroup00/stage'
12884901888 bytes (13 GB) copied, 326.045 s, 39.5 MB/s
time dd if=/dev/HypGroup00/stage-snapshot | gzip --fast | ssh hyp5 'gzip -d | dd of=/dev/HypGroup00/stage'
12884901888 bytes (13 GB) copied, 370.158 s, 34.8 MB/s
time dd if=/dev/HypGroup00/stage-snapshot | ssh hyp5 dd of=/dev/HypGroup00/stage
12884901888 bytes (13 GB) copied, 370.274 s, 34.8 MB/s
time dd bs=1M if=/dev/HypGroup00/stage-snapshot | ssh hyp5 dd bs=1M of=/dev/HypGroup00/stage
12884901888 bytes (13 GB) copied, 372.906 s, 34.6 MB/s
time dd bs=1M if=/dev/HypGroup00/stage-snapshot | gzip | ssh hyp5 'gzip -d | dd bs=1M of=/dev/HypGroup00/stage'
12884901888 bytes (13 GB) copied, 520.116 s, 24.8 MB/s
LVM aracılığıyla yerel diskler kullanılarak bir Gigig Switch ile GigE'ye bağlı iki hızlı sunucu kullanıldı.
Burada bir somun kırmak için balyoz kullanıyormuşsunuz gibi görünüyor - ya da belki de daha iyi bir benzetme bahçenizi makasla kesmeye çalışıyor :)
Evde yapmak için çok iyi nedenleriniz olmadıkça, bunun gibi bir iş için araçların bazılarına göz atmanızı şiddetle tavsiye ederim.
Trinity Rescue Kit , çok noktaya yayın üzerinden görüntüleme sürücülerini destekleyen ücretsiz bir canlı CD'dir ve tam kapsamlı görüntüleme sistemlerine gitmeden, istediğiniz şeyi (ya da aynı satırlarda düşünen başka birisini) yapabilir.