[LinuxFocus-icon]
<--  | Ana Sayfa  | Eri�imd�zeni  | ��indekiler  | Arama

Duyumlar | Belgelikler | Ba�lant�lar | LF Nedir
Bu makalenin farkl� dillerde bulundu�u adresler: English  Castellano  ChineseGB  Francais  Indonesian  Turkce  

this is me
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

[Illustration]

�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.

_________________ _________________ _________________

 

Senaryo

Hayvanlar�n (''koyun Dolly'') klonlanmas� ve hatta insanlar�n klonlanmas� �ok tart���lan ve ku�kuyla bak�lan bir konu olmas�n�n yan�nda hi� ��phe yok ki baz� verilerin bilgisayarlar aras�nda klonlanmas�n�n (do�ru yap�l�rsa) fazla bir zarar� yok, bunun yan�nda dikkatlice yaz�lm�� yap�land�r�m betiklerinin ve ayarlamalar�n evrimi konusunda faydal� bir �eydir. Hemen hemen herkes Moore Kanunu'ndan ve bilgisayar �ret�m�ndeki h�zl� ilerlemeden dolay�, kulland��� da��t�mla hayat�nda en az bir kere de olsa mutlaka klonlama senaryosuyla kar�� kar��ya kalm��t�r - yeni bir bilgisayar veya diz�st� ald���n�zda veya daha h�zl� bir i�lemci ile sisteminizi yeniledi�inizde. Amac�m�z A bilgisayar�ndaki b�t�n dosya sistemini B bilgisayar�na kopyalamak. Bunun yapman�n iki yolu var; bir tanesi kasay� a��p, fiziksel olarak sabit disk s�r�c�s�n� ba�ka bir bilgisayara ba�layarak kopyalama i�lemini yapmak, ki bu makalede bundan bahsetmeyece�iz. Genelde bu pek m�mk�n olmaz - kasay� a�mak genelde garanti s�resini bitirir - ve ayn� zamanda tehlikelidir, tecr�besiz birisi donan�ma fiziksel veya elektrik g�c�yle bir zarar verebilir. Hatta daha fazlas� olabilir, bir keresinde d���k seviyeli hatal� bir program y�z�nden diskimdeki verileri kaybetmi�tim. �kinci se�enek ise e�er iki bilgisayarda da a� kart� varsa (art�k ev bilgisayarlar�nda bile genelde bulunuyor) daha g�venli ve burada anlat�lm�� durumda.

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�.

 

Olas� Y�ntemler

Bu temel yap�land�rmalardan sonra klonlama yapmak i�in bir ka� yol var:

�lki kar���k bir �ey ve sabit diskleriniz tam olarak ayn� �ekil ve geometride de�ilse bunu uygulaman�z m�mk�n de�il. Bunun yan�nda iso g�r�nt�lerini veya disketleri - burada bir �rnek bulabilirsiniz (diskcopy kabuk beti�i) - kopyalamada ideal olacakt�r. dd y�nteminin bir di�er dezavantaj� ise bo� yerlerin de kopyalanmas� ki bu da ekstradan zaman alacakt�r. tar ve cpio borular� ise �ok uzun zaman alacakt�r ve bir �ok problemi de beraberinde getirecektir. �rne�in; dosya isimlerinde ve k�sa yollarda baz� k�s�tlamalar olacak, /dev gibi dizininlerdeki dosyalarda sorun ��kacakt�r. Klonlamak i�in genellikle bu yolu tavsiye etmem. E�er kaynak ve hedef bilgisayarlarda farkl� dosya sistemleri mevcut ise muhtemelen en iyi ��z�m rsync(1) olacakt�r. Sadece ssh protokol�n�n etkin bir �ekilde �al��mas� ve dosya transferi yapabilmesi gerekli. Hatta ayg�t dosyalar� i�in -D se�ene�i ve bir �ok pratik senaryolar i�in de farkl� se�enekler mevcut. G�nl�k yedeklemeler, yans� olu�turma gibi �eyler i�in �ok kullan��l� bir ara�, �rnekli man-sayfalar� da �al���labilecek bir �ok �ey i�eriyor. rsync ile bir klonlama �rne�ini [1] adresinde bulabilirsiniz. Biz burada b�t�n dosya sistemini tekrar yaratmak manas�na gelen dump ve restore metodunu kulland�k. H�zl�, etkili ve istenen sonuca en az g�� harcanarak ula�t�r�r, k�saca tam yedek alma i�lemi i�in ideal. Asl�nda hedef bilgisayar �a�r�l�p tekrar yerle�tirilene kadar b�t�n klonlama prosed�r�n� iki defa uygulamak zorunda kald�m. Her iki durumda da her hangi bir sorunla kar��la�mad�m, GB'larca verinin kopyalanarak i�levsel ve �ny�klenebilir bir klon kabaca bir saatte meydana geldi. Bu y�ntemi kullanabilmek i�in hem hedef hem de kaynak bilgisayarda ayn� dosya sistemi olmak zorunda. ext2 ve ext3 en yayg�n kullan�lanlar (notlara bak�n�z a�a��da) oldu�undan bu ikisinden birini kullan�yorsunuz diye farzediyoruz.  

ssh'� kurmak

Minimum bir sistem kurduktan veya do�rudan �al��an cd ile bilgisayar�n�z� a�t�ktan sonra ilk ad�m ssh'� kurmak olacak (e�er transfer i�in netcat kullanmayacaksan�z ki o da detayl� bir �ekilde biraz a�a��da anlat�l�yor). Kaynak bilgisayarda sshd'nin (secure shell deamon) �al���yor olmas� laz�m. Emin de�ilseniz /etc/init.d/'den kontrol edebilirsiniz. Kaynak bilgisayarda (root olarak)
ssh-keygen -t rsa
yaz�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:/tmp
komut 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_keys
komutunu 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.  

Hedef bilgisayarda bir dosya sistemi olu�turmak

�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�me
mke2fs -j -L <label> /dev/xxx
komutuyla 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.

Dosya sistemini aktarmak

�ncelikle olu�turdu�unuz yeni b�l�mleri sisteme ba�lamal�s�n�z. K�k dosya sistemi (''/'') ile ba�layal�m, kalanlar�n� da ilerledik�e sisteme ba�layaca��z. Kaynak bilgisayardaki iki b�l�m� hedef bilgisayara bir b�l�m olarak aktarmak m�mk�n, asl�nda a�a��da yapt���m�z �rnekte /usr/ ve /usr/share b�l�mlerini b�yle birle�tirdik. Yani gelecek k�k dosya sisteminizi ��yle ba�layabilirsiniz:
mount /dev/xxx   /mnt
Klonlama yaparken hedef bilgisayarda bulundu�umuz dizini
cd /mnt
olarak 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 DONE
Geri 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.

Alternatif:  netcat

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.

Derleme

Tebrikler, buraya kadar bir sorun ��kmad�ysa klonlanm�� bir sisteme sahip oldunuz. �imdi de bu klonu �al��abilir hale getirelim. �lk olarak /etc/fstab dosyas�n� yeni ayarlar g�re g�ncelleyin, aksi takdirde klonlanm�� b�l�mleri kullanamazs�n�z. IP adresi de�i�tiyse (/etc/hosts, Debian'da /etc/network/interfaces) dosyas�n� da g�ncellemelisiniz. �nemli bir konu da neredeyse tamam� de�i�ecek olan a��l�� y�neticisinin g�ncellenmesi. lilo kullan�yorsan�z, /etc/lilo.conf dosyas�n� d�zenleyin (�zellikle root=... k�sm�n�) ve sonra lilo -v komutunu �al��t�r�n. grub kullan�yorsan�z, /boot/grub/menu.lst d�zenleyin (veya /boot/grub/grub.conf hangisinin sembolik link oldu�una ba�l�) ve sonra da grub komutunu �al��t�r�n,
grub> root (hd0,xxx)

... filesystem is ...

grub> setup (hd0)

... lots of output here

grub> quit
veya 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.

 

Di�er Sistemler

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].

 

Kaynaklar

[1] ''Farkl� Bir Metotla - Bir Linux Sistemin Klonlanmas�.'' Ben Okopnik, Linux Gazette Issue 83, October 2002.
 

Bu yaz� i�in g�r�� bildiriminde bulunabilirsiniz

Her yaz� kendi g�r�� bildirim sayfas�na sahiptir. Bu sayfaya yorumlar�n�z� yazabilir ve di�er okuyucular�n yorumlar�na bakabilirsiniz.
 talkback page 

<--, Bu say�n�n ana sayfas�na gider

G�rsely�re sayfalar�n�n bak�m�, LinuxFocus Edit�rleri taraf�ndan yap�lmaktad�r
© Gerrit Renker, FDL
LinuxFocus.org
�eviri bilgisi:
en --> -- : Gerrit Renker <gerrit.renker(at)gmx.de>
en --> tr: Cem Aytar <cemaytar(at)gmail.com>

2005-08-30, generated by lfparser version 2.46