UBUNTU'DA SİSTEM YEDEĞİ ALMAK - Bolum: 1/5
Kaynakca:
1. Howto: Backup and restore your system!
2. Backup your System using TAR
I. GİRİŞ
Linux'un, Windows'ta olmayan cok ilginc bir ozelliği var; insanı kurcalamaya, yeni yeni şeyler denemeye teşvik ediyor. Lakin bazen bu kurcalama işini abartıp sistemi kullanılmaz hale getirebiliyoruz. İşte boyle durumlarda bir duğmeye basıp herşeyi, sistemi bozmadan onceki eski haline getirebilseydik harika olurdu. Size guzel bir haberim var: Bu mumkun!
Once şu felaket senaryolarına bir goz atalım isterseniz:
Senaryo-1: Butun ayarlarınızı yaptınız, ekran kartınız, ses kartınız, vb. donanımınız duzgun calışıyor. Bir gun yaptığınız guncellemeler, program kurulumları (orn. KDE4) neticesinde bilgisayarınız sapıttı. Masaustu acılmıyor, eskiden calışan ses artık gelmiyor. Butun ayarlar bir şekilde alt ust oldu ama nasıl oldu emin değilsiniz. Duzeltemiyorsunuz da...
Senaryo-2: Şu an Alpha aşamasında olan Ubuntu'nun yeni versiyonu Intrepid Ibex'i (8.10) merak edip kurdunuz, sorunlarından bıktınız ve geri donmek istiyordunuz. Normelde Hardy'yi sıfırdan tekrar kurmanız gerekir. Ama o kadar ozelleştirmeden sonra tekrar sıfırdan kurulup yapmak size zor geliyor.
Senaryo-3: Zararsız bir dosyayı root yetkileriyle sileyim derken meşhur "rm -rf" komutunun neden bu kadar tehlikeli olduğunu ilk elden gorme şansınız oldu: Pek cok onemli sistem klasorunu yanlışlıkla sildiniz. Sisteminiz artık acılmıyor bile.
Senaryo-4: Cok uğraştınız, zevkinize gore ozelleştirdiniz; en nihayetinde size ozel cok guzel bir sistem kurdunuz. Ve bu sistemi, benzer ozellikleri olan yeni bilgisayarınıza aktarmak istiyorsunuz.
Bu senaryolar ve daha fazlası icin; ne yazık ki Ubuntu'da, Windows'taki Sistem Geri Yukleme'de olduğu gibi merkezi bir cozum yok. Ancak 3. kişilerin geliştirdiği pek cok program var. Once bu programları irdeleyelim. Yedekleme ve geri yukleme icin temelde uc farklı yaklaşım soz konusu:
A- Diskin / bolumun komple kopyasını alan yazılımlar:
Linux'teki klasik "dd" disk goruntusu alma programı, Acronis True Image, Norton Ghost, PartImage, vb.
(Bildiğim kadarıyla bunları dezavantajı, geri yukleme icin tamamen aynı ozellikte, aynı boyutta bir sabit diske / bolume ihtiyac olması, ozellikle "dd" komutu icin, bolum boyutunda değişiklik olursa geri yukleme yapılamamasıdır.)
B- Dosya ve dizin arşivleme esasına gore calışan uygulamalar:
Linux'teki klasik "tar", "dar", "rsync", "rdiff-backup" yedekleme programları, Simple Backup Suite, Flyback, "dar" programının onyuzu olan KDar, Mondo Rescue, vb.
(Grafik araclar genelde belli bazı klasorlerin yedeklenmesinde kullanılıyor. Komple sistem yedeği almak icin konsol araclarını kullanmak daha doğru bir yaklaşım olur. Bu araclardan bazıları, eklemeli yedekleme [incremental backup] ve farka dayalı yedekleme [differential backup] olarak tabir edilen cozumleri destekliyor. Boylece her seferinde komple sistem yedeği almak yerine, mevcut yedek uzerine, sadece yapılan değişiklikleri yedek almak mumkun oluyor.)
C- Mevcut paket ve ayarları kullanarak Calışan CD oluşturan uygulamalar:
Remastersys, Reconstructor, bir dereceye kadar AptOnCD, vb.
(Bu aracları kullanarak, Ubuntu/Linux Mint tabanlı, ancak istediğiniz paketlerin kurulu olduğu Calışan CD/DVD'ler oluşturabilirsiniz.)
Şimdi dilim donduğunce yukarıdaki araclardan, B grubuna ait olan, uzun suredir kullandığım ve beni gecmişte bircok zor durumdan kurtarmış olan "tar" ile konsoldan yedekleme yontemini anlatacağım.
II. ON HAZIRLIKLAR
Herşeyden once "/etc/fstab" ve "/boot/grub/menu.lst" dosyalarındaki UUID referanslarını kaldırarak, yerlerine /dev/sdX# (sda1, sdb2 gibi) aygıt referanslarını yazmalıyız. Bu işlemi yedeklemeden sonra yapmaktansa once yapmamız hayrımıza, zira geri yukleme oncesinde disk bolumlerinde boyut değişikliği, formatlama, vb. işlemler yapılmışsa ilgili bolumun UUID numarası değişiyor ve geri yukleme sonrasında sistem ya hic acılmıyor, ya da duzgun acılmıyor.
Kod:
sudo fdisk -l sudo blkid
komutlarıyla mevcut sabit disklerin UUID numaralarını bulun.
Kod:
gksu gedit /etc/fstab &
komutuyla ve yukarıdaki komutların cıktılarından faydalanarak, acılışta yuklenecek bolumlere ait "UUID=....." ifadesini (dikkat; komple satırı değil) "/dev/sdX#" şeklinde ilgili satırın aygıt ismiyle değiştirin. Buradaki & işlemi, konsolda verdiğiniz komutu arka plana atacak ve gnome editor acıldıktan sonra da konsolda yeni komutlar yazmanıza imkan verecek.
Aşağıda ornek bir fstab dosyasının değişiklikten onceki ve sonraki halleri var:
Kod:
# /etc/fstab: static file system information. # #
proc /proc proc defaults 0 0 # /dev/sda1 UUID=9c1afbfd-73ae-4a60-8764-b8dcdd980672 / ext3 relatime,errors=remount-ro 0 1 # /dev/sda5 UUID=7dcc38cc-88d2-4eb2-bf6f-6adc03ee43a5 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0
Kod:
# /etc/fstab: static file system information. # #
proc /proc proc defaults 0 0 /dev/sda1 / ext3 relatime,errors=remount-ro 0 1 /dev/sda5 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0
Kod:
gksu gedit /boot/grub/menu.lst &
komutuyla ve yukarıdaki komutların cıktılarından faydalanarak, Linux root bolumune (fstab icinde / olarak yuklenen bolume) ait "root=UUID=....." sozcuklerini "root=/dev/sdX#" olarak ilgili satırın aygıt ismiyle değiştirin. "sdX#" yerine sda3, sdb1, hda5, vb. gercek bolum numarasını yazmalısınız. Bu arada dikkat edin, dosyanın başlarında bir yerlerde, yorum satırı gibi gorunen (# ile başlayan), ancak gercekte sistem tarafından cekirdek guncellemelerinde Grub menusunun otomatik guncellenmesinde kullanılan "root=UUID=....." ifadesine rastlayacaksınız. Bu satırı da aynı şekilde "root=/dev/sdX#" olarak değiştirmelisiniz.
Aşağıda ornek bir menu.lst dosyasının değişiklikten onceki ve sonraki halleri var:
Kod:
# menu.lst - See: grub(8), info grub, update-grub(8) # grub-install(8), grub-floppy(8), # grub-md5-crypt, /usr/share/doc/grub # and /usr/share/doc/grub-doc/. ..... ..... ## If you want special options for specific kernels use kopt_x_y_z ## where x.y.z is kernel version. Minor versions can be omitted. ## e.g. kopt=root=/dev/hda1 ro ## kopt_2_6_8=root=/dev/hdc1 ro ## kopt_2_6_8_2_686=root=/dev/hdc2 ro # kopt=root=UUID=9c1afbfd-73ae-4a60-8764-b8dcdd980672 ro ..... ..... title Ubuntu 8.04.1, kernel 2.6.24-19-generic root (hd0,0) kernel /boot/vmlinuz-2.6.24-19-generic root=UUID=9c1afbfd-73ae-4a60-8764-b8dcdd980672 ro quiet splash initrd /boot/initrd.img-2.6.24-19-generic quiet title Ubuntu 8.04.1, kernel 2.6.24-19-generic (recovery mode) root (hd0,0) kernel /boot/vmlinuz-2.6.24-19-generic root=UUID=9c1afbfd-73ae-4a60-8764-b8dcdd980672 ro single initrd /boot/initrd.img-2.6.24-19-generic title Ubuntu 8.04.1, memtest86+ root (hd0,0) kernel /boot/memtest86+.bin quiet ### END DEBIAN AUTOMAGIC KERNELS LIST
Kod:
# menu.lst - See: grub(8), info grub, update-grub(8) # grub-install(8), grub-floppy(8), # grub-md5-crypt, /usr/share/doc/grub # and /usr/share/doc/grub-doc/. ..... ..... ## If you want special options for specific kernels use kopt_x_y_z ## where x.y.z is kernel version. Minor versions can be omitted. ## e.g. kopt=root=/dev/hda1 ro ## kopt_2_6_8=root=/dev/hdc1 ro ## kopt_2_6_8_2_686=root=/dev/hdc2 ro # kopt=root=/dev/sda1 ro ..... ..... title Ubuntu 8.04.1, kernel 2.6.24-19-generic root (hd0,0) kernel /boot/vmlinuz-2.6.24-19-generic root=/dev/sda1 ro quiet splash initrd /boot/initrd.img-2.6.24-19-generic quiet title Ubuntu 8.04.1, kernel 2.6.24-19-generic (recovery mode) root (hd0,0) kernel /boot/vmlinuz-2.6.24-19-generic root=/dev/sda1 ro single initrd /boot/initrd.img-2.6.24-19-generic title Ubuntu 8.04.1, memtest86+ root (hd0,0) kernel /boot/memtest86+.bin quiet ### END DEBIAN AUTOMAGIC KERNELS LIST
Her iki dosyayı da kaydedin ve kapatın. Duzgun calıştığından emin olmak icin bilgisayarınızı bir kez kapatıp acın:
Kod:
sudo reboot
Firefox'tan (ve diğer web tarayıcılarından) gecmiş dosyalar (cache) arşivini temizleyin:
Kod:
Firefox icin Araclar >> Ozel verileri temizle, Opera icin Araclar >> Kişisel verileri sil
"/var/cache/apt/archives" klasorunde tutulan, yuklediğiniz programların arşivlenen Debian paketlerini aşağıdaki komutla temizleyin:
Kod:
sudo apt-get clean
Masaustunde ve diskin diğer yerlerinde kaydedilmesini istemediğiniz dosyalar (film, muzik, vb.) olup olmadığını son bir kez kontrol edin.
Artık komple sistem yedeği almaya hazırsınız.
------------------------------------------------------------
UBUNTU'DA SİSTEM YEDEĞİ ALMAK - Bolum: 2/5
III. YEDEKLEME
Sistem yedeğimizi toplamda uc adımda alacağız: Kok dizinini(/), ev dizinini (/home) ve "/etc/fstab" dosyasını arşivleyeceğiz. Sistem kok dizinini arşivlerken "/home" klasorunu yalnızca boş olarak, "/media" altındaki bağlı sistemlerin yalnızca ana klasor isimlerini, sistem işleyişiyle ilgili sanal dosyaları iceren /proc ve /sys klasorlerini ise boş olarak kaydedeceğiz.
Sonra "/home" klasorune gecerek icinde bulunan kullanıcıların ev dizinlerini yedekleyeceğiz. Ev dizinini kok dizininden ayırmamız iki acıdan onemli ve gerekli: Birincisi; ev dizinindeki dosyalar ve ayarlar yanlışlıkla silinirse butun sistemi geri yuklemeye gerek olmuyor. İkincisi; (ben dahil) bazı kullanıcılar ev dizini ayrı bir bolumde tutuyor, zira bu şekilde bir kullanım, Ubuntu dağıtım/versiyon guncellemede buyuk kolaylıklar sağlıyor. Boyle bir durumda ev dizinini zaten ayrı yedeklemek durumundayız.
Kod:
cat /etc/fstab
komutuyla, hangi bolumun (/dev/sdX) sisteme nasıl bağlandığını (/, /home, /boot, vb.) gorebilirsiniz.
Kod:
Alt+F2 >> gnome-terminal
komutuyla konsolu acın.
Kod:
sudo su
komutuyla yetkili kullanıcı moduna gecin. Ana dizine gecerek ilk yedekleme komutunu calıştırın:
Kod:
cd / tar cvzpf /root.tgz --exclude=
Eğer sisteminiz Ubuntu turevlerinden biri değilse ve harici dosya sistemleri /media yerine /mnt dizinine bağlanıyorsa, yukarıdaki komutta "media/*/*" yerine "mnt/*/*" kullanın.
Kod:
less /etc/fstab
komutu ile, harici dosya sistemlerinin, dizin ağacında nereye bağlandığını gorebilirsiniz.
Enter'a bastığınız andan itibaren arşiv oluşturulmaya başlayacak ve bilgisayarınızın hızına gore yalaşık 1-2 saat surecek. Bu sırada bilgisayarda calışmaya devam edebilirsiniz ancak kesinlikle program yuklemeyin, kaldırmayın ve sistemdeki paketleri guncellemeyin.
Tar programına verdiğimiz cvzpf parametrelerinden c; yeni dosya oluşturur (create), v; konsolda yapılan işlemle ilgili geri bildirim yapar (verbose), z; dosyayı gzip ile sıkıştırır [*.tar.gz ya da kısaca *.tgz] (zip), p; yedeklenen dosyalarının dosya izinlerini korur (preserve veya permissions), f de "hani bana, hani bana?" der; illa cıvıtacağım Neyse, f parametresi oluşturulacak dosyanın ismini belirtir (burada "f root.tgz").
Tar komutunda dosya ve dizinleri haric tutmak icin --exclude= komutunu kullanıyoruz. Haric tutulacak liste tek bir elemandan oluşuyorsa, suslu parantez işaretlerini kullanmayabilirsiniz. Dilerseniz, tar komutu icin birden fazla "--exclude=" parametresi de kullanabilirsiniz.
Sıra ev dizinini arşivlemeye geldi:
Kod:
cd /home tar cvzpf /home.tgz --exclude= .
komutuyla /home dizinine gecerek kullanıcı klasorlerini kok dizin altında (/home.tgz) arşivleyin. Komutu vermeden once "cd /home" ile ev dizinine gitmeniz onemli. Aksi takdirde tar, dosyaları /home/kullanıcı_ismi olarak kaydediyor ve geri yuklemede sorunlar cıkabiliyor.
Bu esnada kullanıcı klasorunuzde yer kaplayan ve haric tutulmasını istediğiniz film, muzik vb. klasorleri;
Kod:
tar cvzpf /home.tgz --exclude= .
tarzı bir gosterimle arşiv harici tutabilirsiniz. En sondaki nokta işareti (.) mevcut dizinin arşivleneceğini belirtiyor.
Dikkat: Bu tarz sonradan eklediğiniz belgelerinizi kaybetmek istemiyorsanız, aşağıda anlatacağım geri yukleme aşamasında ev dizinini formatlamamaya dikkat edin.
Ev dizinimizi de yedekledik. Son olarak, bağlı bolumlerin listelendiği /etc/fstab dosyasını, sonradan gerektiğinde başvurmak uzere kok dizine yedekleyelim:
Kod:
cp /etc/fstab /fstab.old exit
komutuyla fstab dosyasını da yedekleyerek, yonetici oturumunu sonlandırıyoruz.
Şimdi kok dizinde root.tgz, home.tgz ve fstab.old olmak uzere toplam 3 adet yedek dosyası oluşmuş olması lazım. Bunları sisteminizde ayrı bir bolume, orneğin ext3 formatlı bir depo bolumune, ya da ntfs formatlı Windows paylaşımlı bir klasore, ya da en iyisi yazılabilir bir DVD'ye (yedekleri "split" vb. ek bir programla bolmezseniz 700 MB standart bir CD'ye sığmayacaktır) kaydetmeniz gerekiyor.
Orneğin, yedek diskimiz disk1 olsun.
Kod:
mkdir -p /media/disk1/backup/`date +%y%m%d` mv /*.tgz /*.old /media/disk1/backup/`date +%y%m%d`
komutları diskimizde bugunun tarihiyle bir yedek dosyası oluşturacak ve 3 arşiv dosyamızı bu dizine taşıyacaktır. "mkdir" komutuna parametre olarak "-p" ya da "--parents" eklerseniz, verdiğiniz dizin ağacındaki aradaki eksik dizinleri otomatik oluşturacaktır.
Yedekleme işlemi tamam.
------------------------------------------------
UBUNTU'DA SİSTEM YEDEĞİ ALMAK - Bolum: 3/5
IV. GERİ YUKLEME
Korktuğunuz başınıza geldi: Sisteminiz acılmıyor, ya da duzeltilemeyecek kadar cok problem cıkartıyor. Bu durumda yapmanız gereken şey; en son aldığınız yedeği tekrar geri yuklemek. Geri yukleme işlemi, yedekleme işleminden bir nebze daha zor; bolumleri bağlamanız, gerekiyorsa formatlamanız, hangi arşiv dosyasını hangi bolume acacağınıza cok dikkat etmeniz gerekecek. Ancak "bir penguenin beceremeyeceği iş yoktur". Oyleyse haydi bakalım!
Geri yukleme işlemini iki yoldan yapabilirsiniz:
A- Calışan Sistem Uzerinde Geri Yukleme:
Eğer sisteminizdeki bazı ayarlar bozulduysa, bazı donanımlar calışmıyorsa, ancak eski yedeği aldıktan sonra cok fazla program, vb. yuklemediyseniz, mevcut calışmakta olan sistem uzerinde geri yukleme yapabilirsiniz. Bunun icin:
Kod:
Alt+F2 >> gnome-terminal
komutuyla konsolu acın ve
Kod:
sudo su
komutuyla yetkili kullanıcı moduna gecin.
Kod:
cd /media/sdX#/yedek_dizini
ile yedek dosyaların olduğu dizine gidin. Eğer yedek dosyaları CD/DVD ortamında kayıtlı ise;
Kod:
cd /media/cdrom#/yedek_dizini
Burada sdX# yerine sda1, sdb3 gibi, cdrom# yerine cdrom0, cdrom1 gibi isimler kulanacaksınız. Bağlı bolumlerin listesini:
Kod:
ls /media
komutuyla gorebilirsiniz.
Kod:
tar xvzpf root.tgz -C
komutu ile kok dizini,
Kod:
tar xvzpf home.tgz -C /home
ile ev dizinini geri yukleyin.
Kod:
reboot
ile bilgisayarı yeniden başlatın.
Bu yontemin avantajı geri yuklemenin cok kolay olması, dezavantajı ise genelde "/usr/share" altında bulunan yeni yuklenmiş program dosyalarının, ve varsa yeni cekirdek dosyalarının sistemde fazlalık olarak kalması ve yer işgal etmesi. Bu sorun icin bazı cozumler duşundum, yedekleme oncesi ve sonrası "find" ile yeni yuklenmiş dosyaları bulmak, yedekleme oncesi ve sonrası "dpkg get-selections" vb. komutlarla kurulu paketlerin listesini alarak bir şekilde karşılaştırmak ve yeni paketleri bulup ayıklamak, vb. Ancak henuz "budur" diyebileceğim kesin bir sonuca ulaşamadım.
B- Calışan CD Kullanarak Geri Yukleme:
Eğer Ubuntu acılmıyorsa ya da son yedeklemeden sonra pek cok program kurmuşsanız, bilgisayarınızı tercihan Ubuntu Calışan (Live) CD'si ile, Calışan CD'nin (bazı bilgisayar donanımlarında olduğu uzere) işe yaramadığı durumlarda ise, metin tabanlı Ubuntu Alternatif Kurulum CD'si ile acmanız ve geri yuklemeyi bu şekilde yapmanız gerekiyor: http://www.ubuntu.com/getubuntu/download
Yedeğinizi bir CD/DVD'ye almışsanız ve sisteminizde tek CD/DVD surucu varsa, yedek arşiv dosyalarını başka bir ortama (Windows sabit diski, USB hafıza cubuğu, harici disk, vb.) kopyalamalısınız. Eğer Alternatif Kurulum CD'sini kullanacaksanız, menude Windows'taki "kurtarma konsolu"na benzer bir secenek var, bunu secerek bilgisayarı root yetkileriyle konsoldan acmalısınız. Bilgisayarı Live CD ile actığınızı varsayarsak:
Kod:
Alt+F2 >> gnome-terminal
komutuyla konsolu acın ve
Kod:
sudo su
komutuyla yetkili kullanıcı moduna gecin.
"Ctrl+Shift+T" ile yeni bir sekme acın ve bu sekmede
Kod:
sudo fdisk -l
ile sistemde bulunan sabit diskleri, aygıt isimlerini ve bicemlerini listeleyin. Bu ekran, her zaman başvuracağınız bir kaynak olarak bir kenarda dursun. Tekrar ilk sekmeye donun. Sekmeler arasında gezinmek icin Ctrl+PgUp/PgDown tuş kombinasyonunu kullanabilirsiniz.
Yedeğin bulunduğu yer bir sabit disk bolumu ise, yukarıdaki komut cıktısını kullanarak ilgili aygıt ismini belirleyin ve aşağıdaki komutlarla, orneğin /dev/sdb1 icin;
Kod:
cd /media mkdir yedek mount /dev/sdb1 yedek ls yedek cd yedek/yedek_dizini
ile ilgili bolumu yukleyerek yedek dizinine gidin.
Eğer yedek CD/DVD'de ya da USB surucude bulunuyorsa, bunlar takıldığında zaten otomatik olarak yuklenecek ve ilgili dizin, sistem tarafından "/media" klasoru altında oluşturulacaktır:
Kod:
cd /media ls cd cdrom/yedek_dizini
gibi... Bir ust dizine gecmek icin "cd ..", onceki dizine donmek icin "cd -", kok dizinine cıkmak icin "cd /" komutlarını kullanabilirsiniz.
Yedek dizinimizi bulduk, şimdi sıra geri yukleme yapacağımız kok ve varsa ev bolumlerini bulmaya geldi. Bu aşamada, daha once yedeklediğimiz, "fstab.old" dosyası cok işimize yarayacak. Ctrl+Shift+T ile ucuncu bir sekme acın ve
Kod:
less /media/aygıt_adı/yedek_dizini/fstab.old
komutu ile eski fstab dosyanızı goruntuleyin.
Boylece 3 sekmemiz oldu; birincide işlemleri yapıyoruz, ikincide "fdisk -l" cıktısı var, ucuncude ise eski fstab (bağlı dosya sistemleri listesi) iceriği goruntuleniyor. Geri yukleme (ozellikle formatlama) işlemlerini yaparken bir gozumuz de diğer sekmelerde olsun. İkinci ve ucuncu sekmelerdeki bilgileri kullanarak, tahmini Ubuntu bolumlerini bulun (fdisk cıktısında ilgili aygıtların dosya sistemi Linux şeklinde gorunecektir). Orneğin, fstab cıktısında / (yani kok) olarak bağlanmış gozuken bolum /dev/sdf8 olsun:
Kod:
cd /media mkdir root mount /dev/sdf8 root ls root
komutlarıyla sırasıyla /media altında root isimli bir klasor oluşturuyoruz, sisteme bağlıyoruz (mount işlemi) ve doğru bolumu mu sectik diye; icinde ne var ne yok bakıyoruz.
Eğer kok dizini geri yuklemeden once bicimlendirmek (formatlamak) isterseniz (ki bence yapmalısınız), vermeniz gereken komutlar şu şekilde:
Kod:
umount root mkfs.ext3 /dev/sdf8
İlk komut yuklu bolumu sistemden ayırıyor (unmount işlemi, ancak komutu "umount"). İkinci komut ise ornek olarak verdiğim bolumu (sizinki farklı olabilir, aman dikkat!) ext3 biceminde bicimlendiriyor. Bicimlendirme yapılacak bolumun bağlı olmaması gerekiyor. Bolumlerinizin mevcut bicemlerini gormek icin 2. ve 3. sekmelerdeki cıktıları kontrol etmeyi unutmayın. Bu arada, "mkfs." yazıp hızlıca iki kere Tab tuşuna basarsanız, bu komutla bolum bicimlendirmekte kullanabileceğiniz diğer dosya sistemlerini de gorebilirsiniz.
Eğer sistemde ayrı bir /home bolumu varsa (fstab.old cıktısından gorebilirsiniz), ve aygıt ismi orneğin /dev/sdg9 ise ve ext3 biceminde ise, once iceriğini gormek icin;
Kod:
cd /media mkdir home mount /dev/sdg9 home ls home
Sonra bunu da bicimlendirmek icin;
Kod:
umount home mkfs.ext3 /dev/sdg9
komutları yeterli olacaktır. Ancak ben yine de /home dizininiz ayrı ise dokunmamanızı oneririm. Aksi takdirde guncel program ayarları bir yana, arşive koymadığınız muzik, video, vb. dosyalar ile yeni oluşturduğunuz belgeleri bir cırpıda kaybedebilirsiniz.
Evet, artık geri yuklemeye hazırız. Arşiv dosyalarının bulunduğu yedek dizininde değilsek (nerede olduğumuzu gormek icin "pwd"), yedek dizinine geri donelim. Ve kok dizinini geri yukleyecek olan ilk komutumuzu verelim:
Kod:
mount /dev/sdf8 /media/root tar xvzpf root.tgz -C /media/root
Verdiğimiz tar komutunda oncekinden farklı olarak c yerine x parametresini kullanıyoruz. x; f parametresinin ardından ismini verdiğim arşiv dosyasının icindekileri cıkart demek (extract). Daha once kullanmadığımız bir diğer parametre de -C (buyuk harf). Bu da dosyanın hangi ana dizine acılacağını gosteriyor.
Ayrı bir /home disk bolumu varsa;
Kod:
mount /dev/sdg9 /media/home tar xvzpf home.tgz -C /media/home
yoksa, yani /home klasoru kok sisteminin bulunduğu disk bolumunde bulunuyorsa (ki ozellikle olarak oluşturmadıysanız, buyuk ihtimalle bu şekildedir);
Kod:
tar xvzpf home.tgz -C /media/root/home
Burada dikkatli olun, ev dizinini yanlışlıkla doğrudan kok dizinine (/media/root) acmayın!
Yaklaşık yarım saatlik bir işlem sonucunda (geri yukleme, yedeklemeden daha kısa surecektir) butun dosyalar eski yerlerine yuklenmiş olacak ve bize kalan iş, bağlı bolumleri ayırarak, ardından sistemi yeniden başlatmak olacaktır:
Kod:
umount -a reboot
Bilgisayar yeniden başlamadan once Calışan CD'yi cıkarmayı unutmayın.
Şanslıysanız acılışta eski, guzel, sorunsuz Ubuntu'nuza kavuşacaksınız.
V. GRUB GERİ YUKLEME
Normalde Grub'u geri yuklemenize gerek yok. Disk bolumlerinde ciddi değişiklikler yapmadıysanız ve acılışta Grub menusunu goruyorsanız, bu adımı gecebilirsiniz. Ancak, orneğin Windows'u tekrar kurduysanız, haris Windows yukleyicisi, sabit diskin on yukleme kaydına (MBR - Master Boot Record) kendi acılış bilgilerini yazacak ve Grub kaydını silecektir. Boyle bir durumda Grub'u on yukleme kaydına geri yuklemeniz icin yapmanız gerekenler şu şekilde:
Bilgisayarınızı Calışan CD ile actıktan sonra;
Kod:
Alt+F2 >> gnome-terminal
ile ulaşabileceğiniz ucbirim benzetimcisi (terminal emulatoru) aracılığıyla, Grub arayuzunde aşağıdaki komutları girin:
Kod:
sudo grub
Kod:
grub> find /boot/grub/stage1
Burada (hdx,y) şeklinde bir geri bildirim alacaksınız. Burada verilen sayıları aşağıdaki komutta x ve y yerine kullanın. Orneğin (hd0,0) alırsanız aşağıda x yerine 0, y yerine 0 yazın.
Kod:
grub> root (hdx,y) grub> setup (hdx) grub> quit
Root ile başlayan komut, onyukleyiciye Grub ayarlarının nerede olduğunu gosteriyor, setup ile başlayan komut ise onyukleyicinin sabit diskin MBR (Ana Onyukleme Kaydı)'na yazılacağını belirtiyor.
Son olarak yaptığımız değişiklikleri onyukleme bolumune yazdıralım. Ancak oncelikle Ubuntu'nun kurulu olduğu sabit disk bolum adını bilmemiz gerekiyor.
Kod:
sudo fdisk -l
ile Ubuntu Linux'un yuklu olduğu bolumu bularak (eğer birden fazla Linux işletim sistemi kurulu değilse, son kelimesi Linux olan satırdır), ilgili bolum (sda1, sdb2, vb.), numarasını yazmadan sabit disk adı olarak (sda, sdb şeklinde) aşağıdaki komutta sdX yerine kullanın:
Kod:
sudo grub-install /dev/sdX
Eğer "sudo fdisk -l" komutu bolumleri sda, vb. yerine hda, vb. raporluyorsa, hdX kullanın, ama hdX yerine uygun sabit disk ismini aşağıdaki komutta kullanın:
Kod:
sudo grub-install /dev/hdX
Kod:
sudo reboot
komutu ile bilgisayarı yeniden başlatın.
-----------------------------------------------------
UBUNTU'DA SİSTEM YEDEĞİ ALMAK - Bolum: 4/5
VI. OZET
Son olarak, yukarıda uzun uzadıya anlattığım işlemin kısa bir ozetini aşağıda listelemek istiyorum. Bu yontemi uygulamayı duşunen arkadaşlara tavsiyem, yedeklemenin hemen ardından arşiv dosyalarının bulunduğu klasorde, orneğin dosyaları henuz taşımadıysanız kok dizininde, "benioku.txt" gibisinden bir metin dosyası oluşturmaları:
Kod:
gksu gedit /benioku.txt
ve aşağıdaki ozet bilgileri secip kopyalayarak, bu dosyanın icine yapıştırmaları. Boylece, ellerinde geri yukleme sırasında başvurabilecekleri bir referans metni olur:
Kod:
(Ctrl+Shift+T) less /benioku.txt
Alıntı:
***************
ON HAZIRLIKLAR:
***************
1. Alt+F2 >> gnome-terminal
2. sudo fdisk -l
3. sudo blkid
4. gksu gedit /etc/fstab &
(UUID=... yerine gercek aygit isimlerini [/dev/sdX# gibi] yaz)
5. gksu gedit /boot/grub/menu.lst &
(UUID=... yerine gercek aygit isimlerini [/dev/sdX# gibi] yaz)
6. sudo reboot
(Yedeklemeden once son kontrol icin)
6. Firefox Opera vb. gecici dosyalari temizle
7. sudo apt-get clean
(Debian paket arsivini silmek icin)
**********
YEDEKLEME:
**********
I. Baslangic:
-------------
1. Alt+F2 >> gnome-terminal
2. sudo su
II. Yedekleme islemi:
---------------------
1. cd /
2. tar cvzpf /root.tgz --exclude=
(Ubuntu haricindeki sistemler icin: "media/*.*" yerine "mnt/*/*")
3. cd /home
4. tar cvzpf /home.tgz --exclude= .
(Gerekiyorsa --exclude=)
5. cp /etc/fstab /fstab.old
II. Arsivleri tasimak icin:
---------------------------
1. mv /*.tgz /*.old /media/yedek_dizini
2. exit
*************
GERI YUKLEME:
*************
---------------------------
A. Calisan Sistem Uzerinde:
---------------------------
I. Baslangic:
-------------
1. Alt+F2 >> gnome-terminal
2. sudo su
II. Geri yukleme islemi:
------------------------
1. ls /media
2. cd /media/sdX#/yedek_dizini
(yedekler sabit disk uzerinde kayitli ise)
cd /media/cdrom#/yedek_dizini
(yedek CD/DVD ortaminda kayitli ise)
3. tar xvzpf root.tgz -C
4. tar xvzpf home.tgz -C /home
5. reboot
-------------------------
B. Ubuntu Calisan CD'den:
-------------------------
I. Baslangic:
-------------
1. Alt+F2 >> gnome-terminal
2. sudo su
II. Yedek dizinini yuklemek/gormek icin:
----------------------------------------
1. ls /media
(USB ve CD'ler otomatik yuklenecektir.)
2. cd /media
3. mkdir yedek
4. mount /dev/sdX# yedek
5. ls yedek
6. cd yedek/yedek_dizini
III. Yardimci bilgiler:
-----------------------
1. Ctrl+Shift+T (yeni sekmeler icin)
2. sudo fdisk -l
3. Ctrl+Shift+T
4. less fstab.old
5. Ctrl+PgUp/PgDown
(sekmeler arasinda gezinmek icin)
IV. Kok bolum (/) icin:
-----------------------
1. cd /media
2. mkdir root
3. mount /dev/sdX# root
(sdX# yerine sda1, sbd3, vb.)
4. ls root
V. Kok bolumu formatlamak icin:
-------------------------------
1. umount root
2. mkfs.ext3 /dev/sdX#
3. mount /dev/sdX# root
4. ls root
VI. Varsa ev (/home) bolumu icin:
---------------------------------
1. cd /media
2. mkdir home
3. mount /dev/sdX# home
(sdX# yerine sda1, sbd3, vb.)
4. ls home
VII. Varsa ev bolumunu formatlamak icin:
----------------------------------------
1. umount home
2. mkfs.ext3 /dev/sdX#
3. mount /dev/sdX# home
4. ls home
VIII. Geri yukleme islemi:
--------------------------
1. cd /media/yedek/yedek_dizini
2. tar xvzpf root.tgz -C /media/root
3a.tar xvzpf home.tgz -C /media/home
(Ayri bir ev bolumu varsa [bkz. fstab.old])
3b.tar xvzpf home.tgz -C /media/root/home
(Ayri bir ev bolumu yoksa)
4. umount -a
5. reboot
*************************************
GRUB GERI YUKLEME (GRUB ACILMIYORSA):
*************************************
I. Baslangic:
-------------
1. Alt+F2 >> gnome-terminal
2. sudo su
II. GRUB ayarlari:
------------------
1. grub
2. grub> find /boot/grub/stage1
3. grub> root (hdx,y)
4. grub> setup (hdx)
5. grub> quit
III. GRUB geri yukleme:
-----------------------
1. fdisk -l
2. grub-install /dev/sdX
3. reboot
(Not: Dosyayı goruntulerken terminalde karakter sorunu cıkmaması icin, metinde Turkce karakter kullanılmamıştır.)
----------------------------------------------------------------
UBUNTU'DA SİSTEM YEDEĞİ ALMAK - Bolum: 5/5
VII. NOTLAR
1. Bakmayın yukarıda detaylarıyla uzun uzun yazdığıma. Aslında bu yontemle yedekleme ve geri yukleme hic de zor bir işlem değil; sakın gozunuz korkmasın, bir alışırsanız otomatiğe bağlarsınız. Bir tek bicemleme (formatlama) esnasında hangi bolumu formatladığınıza dikkat etmelisiniz.
2. Bir ara butun bu işlemleri Zenity Gtk+ diyalog komutları kullanarak betik haline getirmeyi duşundum. Nasıl yapacağımın planını bile kurdum. Ancak hem boyle bir şeye kalkışmak benim icin fazladan emek, efor, en onemlisi zaman demekti, hem de herkesin sistemi farklı olacağı, bazılarında Wubi, bazılarında birden fazla Linux sistemi yuklu olacağı icin, bu kadar bol bilinmeyenin havalarda ucuştuğu bir ortamda boyle iddialı bir gorsel betik denemesi yetersiz kalacaktı. Yetersiz kalmak bir yana, yanlış bolumu formatlamak gibi, geri donulmez hatalara sebebiyet verme riskini taşıyacaktı. Halbuki yukarıda anlattığım, sadece Ubuntu'da değil, tar ve gzip'in yuklu olduğu butun Linux sistemlerinde uygulanabilen, genelgecer bir yontemdir. Bu duşuncelerle, "armut piş ağzıma duş" turu gorsel bir betiktense, bunları konsolda kullanıcının kendisinin yapmasının ve bu şekilde ne yaptığının bilincinde olarak hareket etmesinin cok daha faydalı olduğuna karar verdim.
3. İnternet'te tar ve gzip icin azami dosya boyutu hakkında rastladığım ceşitli yazılardan anladığım kadarıyla, hem tar, hem de gzip icin eskiden 2 GB dosya boyutu sınırı varmış, ancak her iki programın şu an kullandığımız versiyonlarında (gormek icin konsolda "tar --version", "gzip --version"), bu sınır ortadan kaldırılmış. Artık tek sınır, dosyayı sakladığınız ortamın bicemiyle ilgili; orneğin dosyayı FAT32 bicemli bir sabit diske kaydederseniz maksimum dosya boyutunun 4 GB olduğunu bilmelisiniz. Arşivleme işlemi sonrasında oluşacak dosya boyutuna dair bir fikir vermesi acısından, 2.5 GB yer kaplayan sistemimi arşivlediğimde elde ettiğim dosya boyutu 750 MB civarında.
Kod:
2.5 GB >> 750 MB
4. Tar komutu ile birlikte gzip yerine daha iyi sıkıştırma oranı sağlayan bzip2 programını kullanabilirsiniz. Bu durumda arşivleme icin kullanacağınız komut "tar cvzpf *.tgz" yerine "tar cvjpf *.tar.bz2" olacaktır (z yerine j). Dosyayı acmak icinse; "tar xvjpf *.tar.bz2" komutu kullanılmalıdır. Ancak denemelerimde gorduğum kadarıyla, bzip2 ile sıkıştırma gzip ile sıkıştırmadan cok daha uzun suruyor. Oyle ki, normalde 1 saatte tamamlanan yedekleme işlemi, bzip2 kullanılırsa 2 saati bulabiliyor. Bence biraz daha kucuk bir arşiv dosyası elde etmek icin bu sureyi beklemeye hic gerek yok.
5. Tar-Gzip sisteminin belki de tek dezavantajı eklemeli (incremental) yedek alabilmesine rağmen, farka dayalı (differential) yedekleme yapamaması. Yani mevcut bir yedek uzerine eklenen dosyaları bulup kayıt altına alabilirken, yedek alındıktan sonra yeri değiştirilen (bir klasorden diğerine taşınan), ya da silinen dosyaları bulup mimleyememesi. Bu durum da yedek uzerine yedek alırken, tar'ı ideal arac olmaktan cıkarıyor.
Eklemeli arşiv oluşturmak icin "tar"a komut satırında "-g fark_kaydı" parametresini veriyoruz. Boylece, ilk seferinde "fark_kaydı" isimli (başka bir isim de kullanılabilir) dosya olmadığı icin oluşturuluyor ve butun dosya bilgileri icine yazılıyor. İkinci sefer, farklı bir *.tgz dosya ismi vererek ancak "-g fark_kaydı" ile aynı kayıt dosyasını gostererek ikinci yedeğinizi aldığınızda, yedeği alınan klasorler, "fark_kaydı" dosyasındaki bu bilgilerle karşılaştırılıyor, iceriği değişen ve yeni eklenen dosya ve klasorler arşivleniyor, son olarak "fark_kaydı" isimli dosya guncellenerek yeniden oluşturuluyor.
Tar'ın "incremental backup" ozelliğini ve nasıl kullanılacağını merak eden arkadaşlar şu makaleyi inceleyebilir:
http://www.gnu.org/software/automake...tal-Dumps.html
6. Ote yandan, yine konsolda cok başarılı bir yedekleme uygulaması olan "dar", farka dayalı yedekleme (differential backup) sistemiyle goz dolduruyor. Bu sayede, ilk yedeği aldıktan bir sure sonra, bu yedeği referans alarak, ikinci bir arşiv dosyası oluşturursanız, "dar" sadece yeni eklenen dosyaları ve silinen dosyaların bir listesini ekler. Geri yukleme esnasında once ana yedek, sonra ikinci oluşturulan fark yedeği geri yuklemelisiniz. İkinci yedeği yuklerken, eklenecek olan dosyalar eklenir, ikinci yedeği oluştururken silinmiş dosyalar ise "dar" tarafından tekrar silinir. Bu şekilde, butun bir sistem, istenilen tarihteki an'a geri dondurulmuş olur.
"dar" programının dezavantajı ise, Ubuntu ile birlikte yuklu gelmemesi. Dolayısıyla, "dar" ya da onyuzu olan "kdar" ile yedekleme yapmak isterseniz, once dar programını Synaptic'ten yuklemelisiniz. Bu noktada bahsedilmesi gereken bir de "dar-static" isminde bir paket ve bu paketle gelen "dar_static" uygulama dosyası var. Programı geliştiren yazılımcı, her turlu kutuphaneden bağımsız olan derlenen "dar_static" ikili dosyasını da biz penguenlerin kullanımına sunmuş. Boylece, "dar" ile sistem yedeği almak isteyen bir kullanıcı, yedek aldığı klasore dar_static programını da kopyalarsa, daha sonra olası bir geri yukleme sırasında "dar" paketi yuklu olmayan bir ortamda bile (orneğin Ubuntu Calışan CD'de) kolaylıkla geri yukleme yapabiliyor.
Dar'ın "differential backup" ozelliğini ve nasıl kullanılacağını merak eden arkadaşlar şu makaleyi inceleyebilir:
http://dar.linux.free.fr/doc/Tutorial.html
7. Konuyla doğrudan ortuşmese de; konsolda "dpkg --get-selections" komutu sisteminizde kurulu paketleri listeliyor. "dpkg --set-selections" komutu ise kurulması planlanan paket listesini alıyor. Bu listesi geri yuklemeden once bir dosyaya aktarırsak:
Kod:
dpkg --get-selections > yeni_programlar
ve geri yuklemeden sonra:
Kod:
sudo dpkg --set-selections < yeni_programlar sudo apt-get dselect-upgrade
komutu ile zahmetsizce, yedek aldıktan sonra yukleyip kullandığımız programları yeniden yukleyebiliriz. Lakin, sizi geri yukleme yapmaya zorunlu kılan ve sistemin işleyişini bozan şeyin, bu kurulu paketlerden birisi olması da olası. Dolayısıyla secim size kalmış.
Bu konu hakkında daha fazla bilgi icin:
http://www.ubuntugeek.com/clone-your...tallation.html
http://ubuntuforums.org/showthread.php?t=169062
8. Şu komut, sabit diskinizin ana yukleme kaydının (MBR) bir yedeğini alıyor:
Kod:
dd if=/dev/sda of=/mbr.bin count=1 bs=512
Şu komut ise bu kaydı, bolumleme tablosunu haric tutarak geri yukluyor:
Kod:
dd if=/mbr.bin of=/dev/sda count=1 bs=446
Bu yontem, MBR'ın bozulması, veya uzerine veri yazılması yurumunda geri yuklemek icin kağıt uzerinde guzel bir cozum gibi gorunse de, gercekte bolumleme tablosu (partition table) da aynı yerde bulunduğu icin, yazılan yanlış bir bilgi neticesinde bu tabloyu geri donulmez bicimde bozma riski cok yuksek. Bu nedenle tavsiyem; bu komuttan uzak durun ve yukarıda verdiğim Grub geri yukleme yonteminden şaşmayın.
Bu konu hakkında daha fazla bilgi icin:
http://searchenterpriselinux.techtar...244256,00.html
http://fixunix.com/slackware/508788-...-behavior.html
9. Evet, farkındayım; yukarıda verdiğim sdf8, sdg9 gibi aygıt isimleri pek mantıklı değil. Ancak sda1, sdb1 gibi bir şey yazsaydım tecrubesiz kullanıcılar komutu gorunce direkt kullanıp yanlış bolumu formatlayabilirdi. Onun yerine, "naptın hoca, boyle bolum yok" şeklinde hata uyarısı almaları daha iyi.
10. Ucuncu baskı olacak, ama geri yuklemede yanlışlıkla ev dizinini formatlamamaya dikkat edin. Ev dizini gibi /boot, vb. dizinleriniz ayrı disk bolumlerindeyse bunları da ayrı dosyalarda arşivleyin.
11. Konsolda benzer komutları yazarken (orneğin mount ile ilgili komutlar), otomatik tamamlamak icin Sekme (Tab) ve komut gecmişi icin Yukarı Ok tuşlarını kullanırsanız, işlemleri daha hızlı yapabilirsiniz. Ekranda cok fazla satır varsa, "clear" komutu ya da Ctrl+L ile ekranı temizleyebilirsiniz.
12. Hepsi bu kadar arkadaşlar. Cenem duştu, yazıyı fazla uzun tuttum. Ancak hem yedek alırken, hem de geri yuklerken, temelde uygulanması gereken topu topu birkac komut var. Yani aslında bu işlem, gorunduğu gibi uzun ve karmaşık değil. Umarım bu yedekleme yontemini benimser ve belirli aralıklarla uygularsınız. Hem bu sayede, "Ubuntu'yu kurcalarken bozar mıyım" endişeniz de olmaz, iciniz rahat eder (tıpkı şu an benim olduğum gibi).
/ Uzun soluklu oldu işinize yarayacağını umuyorum.
Kaynak : forum.ubuntu
__________________
Ubuntu'da Sistem Yedeği Almak
Linux0 Mesaj
●40 Görüntüleme
- ReadBull.net
- Donanım Forumları
- işletim Sistemleri
- Linux
- Ubuntu'da Sistem Yedeği Almak