|
|
Bu makalenin farklı dillerde bulunduğu adresler: English Castellano ChineseGB Francais Indonesian Turkce |
Gerrit Renker <gerrit.renker(at)gmx.de> Yazar hakkında: Obtained a computer science degree in 2001. Türkçe'ye çeviri: Cem Aytar <cemaytar(at)gmail.com> İçerik: |
LF Tip:Bir ağ üzerindeki bilgisayarları klonlamakÖzet:
Çoğu zaman problem olan konulardan bir tanesi de bir bilgisayarı başka bir
bilgisayara kopyalamaktır. Güvenilir, kolay ve kullanışlı bir yöntem de bu
makalede anlatıldığı gibi ağ tabanlı klonlamadır.
|
Aşağıda anlatılan yömtemlere mahsus öncelikli konu ''kaynak'' bilgisayar (klonlanacak olan) ile ''hedef'' bilgisayar (kopya) arasında bir ağ kurmak olacaktır. Her iki bilgisayar da bir hub'a bağlıysa işimiz kolay, değilse ağ kartlarını köprülü (crossover) kabloyla birbirine bağlamalısınız (normal düz kablolar kullanılamaz). Hedef bilgisayar için bir çalışan linux (Knoppix, LNX-BBC gibi) veya network kartını çalıştırabilecek küçük bir sistem ve ssh ve/veya netcat kullanılabilir olması gerekir. Hatta bunları yapabileceğiniz disketler bile var (Bilgisayarımdada tomsrtb olmasına rağmen, network kartımı geç tanıyor). Yeni bir sistem kurmak isterseniz, bu da belki kolay bir alternatif olabilir. Her iki bilgisayar da resimde olduğu gibi IP adresleri birbirleriyle ''konuşabilecek'' tarzda ve aynı ağ üzerinde olacak şekilde ayarlanmalı.
Bu temel yapılandırmalardan sonra klonlama yapmak için bir kaç yol var:
ssh-keygen -t rsayazın. İşleri kolaylaştırmak için bir şifre girmeyin. Ortak anahtara /root/.ssh/id_rsa.pub dosyasından ulaşabilirsiniz. Bu dosyayı kaynak bilgisayara
scp /root/.ssh/id_rsa KaynakBilgisayar:/tmpkomut satırı ile yükleyebilirsiniz. KaynakBilgisayar yazan yere IP nosunu yazın. Emin olup olmadığınızı sorunca ''yes'' yazın (''y'' bazen çalışmayabilir). Hala kaynak bilgisayarda root parolası için bekleniyor olacak. Şimdi de hedef bilgisayarın güvenilir bir ağ elemanı olduğunu göstermek için
cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keyskomutunu kaynak bilgisayarda yazın. Her şeyden emin olmak için yukarıdaki komut satırını hedef bilgisayarında da uygulayın. Artık bir parola istenmeyecektir.
İlk adım her zaman hedef bilgisayarın sabit sürücüsünü bölümlemek ve daha sonra ext2/ext3 dosya sistemini oluşturmaktır. Bir sonraki adım ise journalling seçeneğinin mke2fs komutuna -j seçeneğinin de eklenerek etkin hale getirilmesi olacak (çekirdekte ext3 desteğinin olması gerekli). Hatta isterseniz tune2fs(8) komutu ile ext2 sisteminizi ext3'e çevirebilirsiniz. Kaynak bilgisayarda şu konfigurasyon var diyelim:
Dosya Sistemi | Büyüklük | Kullanılan | Kullanım % | Bağlandığı yer |
---|---|---|---|---|
/dev/hda3 | 2.7G | 552M | 22% | / |
/dev/hda5 | 7.8G |
1.6G | 22% | /usr |
/dev/hda7 | 6.3G | 1.7G | 28% | /usr/share |
/dev/hda8 | 3.4G | 601M | 19% | /home |
/dev/hda12 | 5.3G | 1.9G | 37% | /opt |
/dev/hda1 | 587M | 70M | 13% |
/var/backup |
Genellikle bir kaç çeşit bölümlemeyi tavsiye ederim. Aksi takdirde dosya sistemindeki her hangi bir hata veya sabit sürücünüzdeki bir kaç sektörün bozulmasından dolayı bütün bilgilerinizi kaybedebilirsiniz. Ve Murphy Kanuna göre tek parçadan oluşan bir sürücü yerine farklı bölümlemeler yaparak tedbir almazsanız böyle kötü bir hadiseyle karşılaşacağınızdan emin olabilirsiniz. Yakınlarda böyle bir durumla karşılaştım, güzel bir çekirdek vardı ve ben sürücüyü bölümlere ayırmamıştım; ve bütün bilgilerimi root dosya sistemiyle birlikte kaybettim. Bu da bana /usr'nin çok hızlı büyüdüğünü gösterdi, dolayısıyla /usr/share dizini eklendi. Daha büyük bir sabit disk almanın vakti geldi.
Hedef bilgisayarda parted (tavsiye edilebilir) veya favori bölümleme programınızı çalıştırın (Qtparted iyi bir grafik arabirimine sahip ve Partition Magic'e benzer bir program). En az kaynak bilgisayardaki bölümler büyüklüğünde parçalar oluşturun. Takas alanını da unutmayın. Bölümleme tablosunu oluşturduktan sonra, her yeni bölümemke2fs -j -L <label> /dev/xxxkomutuyla dosya sistemini yükleyin. xxx yerine bölümün ismini, <label> yerine etiket ismini yazın.Ben genellikle etiket yerine ''/usr'' gibi şeyler kullanırım (açılış esnasında bunları göreceksiniz). tune2fs(8) ile düzenli sistem denetim aralığını ayarlamak gibi bir çok ayarı yapabilirsiniz.
mount /dev/xxx /mntKlonlama yaparken hedef bilgisayarda bulunduğumuz dizini
cd /mntolarak değiştirmemiz gerekli. Şimdi de hedef bilgisayarda ağ biti için şunları yapın:
ssh kaynakBilgisayar 'dump -0 -f - /' | restore -r -f -''-0'' tam yedekle, ''-f -'' dosya tanımlayicilar için stdin/stdout kullan, ''-r'' ağ üzerinde bağlı hedef bilgisayarın dosya sisteminin tekrar oluşturması için gerkli olan yüklemeyi yap manalarına gelmektedir. Daha fazla seçenek için dump(8) ve restore(8) kelimelerine bakabilirsiniz. Aşağıda kök dizini transfer edilirken oluşan çıktıyı göreceksiniz.
$ ssh 10.42.3.42 'dump -0 -f - /' | restore -r -f - DUMP: Date of this level 0 dump: Tue Feb 22 15:50:12 2005 DUMP: Dumping /dev/hda3 (/) to standard output DUMP: Label: debian DUMP: Writing 10 Kilobyte records DUMP: mapping (Pass I) [regular files] DUMP: mapping (Pass II) [directories] DUMP: estimated 547312 blocks. DUMP: Volume 1 started with block 1 at: Tue Feb 22 15:50:14 2005 DUMP: dumping (Pass III) [directories] DUMP: dumping (Pass IV) [regular files] DUMP: Volume 1 completed at: Tue Feb 22 15:51:43 2005 DUMP: Volume 1 546590 blocks (533.78MB) DUMP: Volume 1 took 0:01:29 DUMP: Volume 1 transfer rate: 6141 kB/s DUMP: 546590 blocks (533.78MB) DUMP: finished in 89 seconds, throughput 6141 kBytes/sec DUMP: Date of this level 0 dump: Tue Feb 22 15:50:12 2005 DUMP: Date this dump completed: Tue Feb 22 15:51:43 2005 DUMP: Average transfer rate: 6141 kB/s DUMP: DUMP IS DONEGeri yükleme her zaman restoresymtable adında bir dosya oluşturur. Dosya sistemi yüklenirken bir hata oluşmadığından eminseniz bir defaya mahsus olarak bu dosyayı silebilirsiniz. Kök dosya sistemi bittikten sonra, diğer bağlı alt-sistemleri de /usr ile başlayarak aynı şekilde halledebiliriz (çalışma dizininin yeni sistemin kökünde olduğunu kabul ediyoruz).
mount /dev/xxx ./usr cd ./usr ssh hedefBilgisayar 'dump -0 -f - /usr' | restore -r -f -Bu şekilde mount-cd-dump/restore döngüsünü bütün bölümler için gerçekleştirin. /usr/share (kaynak bilgisayarda kendine has bir bölümü olan) bölümüne gelince, yukarıdaki adımlardan sonra bulunduğunuz dizini ./usr/share olarak değiştirin ("." karakterine dikkat edin) ve şunları tekrarlayın
ssh hedefBilgisayar 'dump -0 -f - /usr/share' | restore -r -f -Sadece varolan dosyaları tekrar yükleme sorulursa yükleyin, dolayısıyla kaynak bilgisayardaki iki farklı bölümün hedef bilgisayardaki bir bölüme konmasında her hangi bir problem olmayacaktır. Bütün sistemi klonlamak ssh ve 100MB ağ kartları ile yaklaşık bir saat sürecektir (köprülü kablo da bir bonus).
Not: Bir dosya sisteminin dökümünü almak için sisteme bağlı olmasına gerek yoktur. Aynı zamanda bağlanmış bir bölüm için dizin ismini kullanmaktansa /dev/hda6 gibi bölüm etiketi de kullanabilirsiniz.
ssh'a alternatif olarak kısaltması nc olan netcat(1) 'i de kullanabilirsiniz. Netcat ağ üzerinde borular oluşturmanıza izin veren TCP/IP istemci sunucu işerinde kolay bir kullanıma sahip isviçre çakısı gibi bir şey. Yukarıdaki örnekler sadece aşağıdaki gibi değiştirildiğinde sorun kalmayacaktır. /var/backup bölümünün kaynak bilgisayardan hedef bilgisayara dump/restore ile taşındığını varsayıyoruz.
Alıcı tarafında (hedef Bilgisayar) ise bir dinleyici oluşturmak için netcat -l komutunun çıkışını restore komutuna bağlayın.nc -l -p 2000 -q 1 | restore -r -f -Kaynak Bilgisayar'da girdisi Hedef Bilgisayarın IP'si olan bir netcat durumu oluşturun.
dump -0 -f - /var/backup | nc <HedefBilgisayar-ip> 2000-q seçeneği nc'nin dosya-sonu (EOF) karakteri alınca durmasını sağlayacak, fakat benim yöntemimde elle durdurmak zorunda kalacağım. Zaten ssh kullanmanızı tavsiye ederim.
grub> root (hd0,xxx) ... filesystem is ... grub> setup (hd0) ... lots of output here grub> quitveya xxx yerine sabit sürücünüzü yazın ve şu komutu kullanın: grub-install /dev/xxx. Burada hem root (hdn,xx) kısmını hem de root=/dev/xxx kısmını kontrol edin.
Eğer klonlanmış bilgisayarda donanımınız daha iyiyse özel-çekirdek ayarları'nı güncellemek isteyebilirsiniz. Eğer önceden ayarlanmış birçok modüllü bir sistem kullanıyorsanız (RedHat, SuSe, Mandrake, Fedora ... gibi) endişelenmeyin, büyük bir olasılıkla uygun bir modül vardır. Yoksa, lspci -vv ve başka yerlerde açıklandığı gibi çekirdeğin derlenmesi ile sorunu çözebilirsiniz. Ekran kartınız farklıysa /etc/X11/XF86Config-4 dosyasını güncelleyin (veya xorg.conf RH/Fedora'da), aksi takdirde ekran çıktısı alamazsınız. Mümkünse ve elinizde gerekli araçlar mevcut ise 3. çalışma düzeyinde bilgisayarı açıp grafik araçlarının yardımıyla X ortamının ayarlarını yapabilirsiniz. Debian altında biraz araştırma gerekiyor, bende sürücü r128'den radeon'a değiştiği için şanslıydım.
Bu belge ext2/ext3 dosya sistemlerinin nasıl klonlandığını anlatıyor. Birçok benzer komut diğer birçok Linux sistemlerinde bulunabilir. Mesela, FreeBSD, HP-UX, IRIX gibi birçok Unix sistemleri dump/restore komutlarını destekler; Solaris'te ufsdump/ufsrestore diye adlandırılmıştır. ReiserFS gibi dump fonksiyonunu tavsiye etmeyen dosya sistemleri de mevcut. Burada kendisine rsync kullanmayı tavsiye ediyor. rsync ile bir Linux sistemin nasıl başarılı bir şekilde klonlanabileceğini burada görebilirsiniz [1].
|
Görselyöre sayfalarının bakımı, LinuxFocus Editörleri tarafından yapılmaktadır
© Gerrit Renker, FDL LinuxFocus.org |
Çeviri bilgisi:
|
2005-08-30, generated by lfparser version 2.46