Şu aralar var olan Usb diskimde hiç yer kalmadığı için kendime bir Usb disk almak istiyordum. Bir mağazaya gidip taşınabilir disklerin arasından 2.5" Western Digital 500 Gbyte Usb(2.0 & 3.0) disk aldım. Disk aynı zamanda Usb 3 bağlantılarını da destekliyor. Geleceğe yatırım yapalım değil mi? Uzunca bir süreden bu yana taşınabilir harddiskler üzerinde çeşitli Linux dağıtımları kullanıyorum. Şu ana kadar bu konuda kullanıcı dostu olarak niteleyebileceğim tek dağıtım Ubuntuydu. Ancak bazı servislerle yaşadığım problemler nedeniyle Ubuntu, bana artık o kadar da kullanışlı gelmiyor. Denemesini yaptığım bir çok dağıtım arasında tabi ki Debian da var. Ama ne yazık ki Debian 5 Lenny'nin sahip olduğu eski paketler ve güncelliğini yitirmiş driver'lar nedeniyle testlerde pek de başarılı bir sonuç elde edememiştim. Hata bende ama yine de suçu Debian'a atacağım. :) Bkz: “it sevdiği deriyi yerden yere vururmuş.” Bu konuda BSD listesini de yoklamadım dersem ayıp olur. En başarılı sistem Grub ile birlikte çalıştıracağınız OpenBSD ama bu başka bir yazıya konu olacak türden bir haber. Bunu şimdilik es geçelim.
Taşınabilirlik de nedir? Bilgisayarınızı yanınızda taşımak istersiniz, çünkü her şey onun içindedir. Kullanmak istediğiniz tüm programlar, dökümanlar, muziğiniz, foroğraflarınız... Saymaya devam etmek mümkün ama sayılacak şeylerin bitmesini umud etmek yanlış. Bu liste uzar gider. Bir dizüstü bilgisayarı yanınızda taşımanın da iyi ve sıkıcı (hatta bezdirici) yanları vardır. Ayrıca neredeyse tüm dökümanlarınızı, internette bir yerde tutuyor da olabilirsiniz. Bazı zamanlarda ben de acaba bir dizüstü alsam mı diye düşünmüyor değilim ama yolculuklarda sırtımda taşımak için daha basit bir ve daha hafif bir şey istiyorum. Ne yazık ki performans noktasında hafiflik istemek makul değil. Hem hafif hem de performanslı bir şey ise "pahalı" sınıfına giriyor. Eee şimdi ne yapacağız? işte benim bu yazıda size bir önerim var. Taşınabilir bir disk -hızlı veri aktarımı yapabilen yeni usb stickler de olabilir- üzerine Debian Squeeze kuralım ve bunu herhengi bir yerde herhangi bir bilgisyara takıp çalıştıralım. Hayatımızı mecburiyetlerden kurtarmak adına bağımlılıklarımızdan birini daha azad edelim.
Taşınabilirlik de nedir? Bilgisayarınızı yanınızda taşımak istersiniz, çünkü her şey onun içindedir. Kullanmak istediğiniz tüm programlar, dökümanlar, muziğiniz, foroğraflarınız... Saymaya devam etmek mümkün ama sayılacak şeylerin bitmesini umud etmek yanlış. Bu liste uzar gider. Bir dizüstü bilgisayarı yanınızda taşımanın da iyi ve sıkıcı (hatta bezdirici) yanları vardır. Ayrıca neredeyse tüm dökümanlarınızı, internette bir yerde tutuyor da olabilirsiniz. Bazı zamanlarda ben de acaba bir dizüstü alsam mı diye düşünmüyor değilim ama yolculuklarda sırtımda taşımak için daha basit bir ve daha hafif bir şey istiyorum. Ne yazık ki performans noktasında hafiflik istemek makul değil. Hem hafif hem de performanslı bir şey ise "pahalı" sınıfına giriyor. Eee şimdi ne yapacağız? işte benim bu yazıda size bir önerim var. Taşınabilir bir disk -hızlı veri aktarımı yapabilen yeni usb stickler de olabilir- üzerine Debian Squeeze kuralım ve bunu herhengi bir yerde herhangi bir bilgisyara takıp çalıştıralım. Hayatımızı mecburiyetlerden kurtarmak adına bağımlılıklarımızdan birini daha azad edelim.
Şimdi Debian 6 Squezee deneme zamanı. Taşınabilirlik göz önüne alındığında dikkat edilmesi gereken bir iki önemli nokta var ki, sanırım bu yüzden saatlerimi harcamışlığım var. İlki ve size de tavsiyem asla 64 bitlik sürümleri yüklemeyin. Bu şekilde bir yükleme herzaman çok çekirdekli bir bilgisayar bulmak zorundasınız demek olur. Taşınabilirliğin önündeki en büyük engellerden ilki bu! İkincisi ise asla özelleştirmeler yapmamaktır. Mesela nasıl özelleştirmeler? Asla ekran artı driver'ı yüklememek, sisteminizi boot ettiğiniz makinada o makinaya özgü değişiklikler yapmamak gibi.
Artık neye ihtiyacımız var biliyorsak başlamaya da hazırız demektir. Debian 6.0 i386 DVD-1 'i indirelim ve bir DVD ye yazalım. (Not: Bu nokta da DVD 'yi yazdıracak yer bulamamıştım ama neyse ki Yonca var. "Teşekkürler Yonca" demek istiyorum. ) Normal bir kurulum ile bu kurulumu ayıran bir tek özelliği var. Kurulumun sonunda ki, sistemi yüklemek için kullanılacak olan grubun kurulum ve yapılandırma kısmı. Bildiğiniz gibi Debian 6 da ve Ubuntu'nun (9.10 ve sonrası) güncel sürümlerinde Grub2 default olarak geliyor ve kurulumu yapılıyor. Debootstrap ile yaptığınız kurulumlarda da durum aynı. Fakat bizim için bu pek de iyi bir haber değil zira, Grub2 taşınabilirliği pek de desteklemiyor. Belki de destekliyordur da, ben bu konuda yeterli araştırmayı yapmamışımdır. Taşınabilir sistemler olması için kurduğum Ubuntu ve Debian'ın grub 2 yüzünden boot esnasında kerneli yükleyemediklerini gördüm. Bunun grub2 'de bir çözümü var mı bilmiyorum ama bilen varsa lütfen beni de biligilendirsin. Kurulumun dahili bir harddiske yapılması ile bir Usb diske yapılması arasındaki fark tek Grub2'den Grub-legacy olarak anılan eski gruba geri dönmek ile ilgili. Kurulum esnasında sisteminiz size gurbun hangi harddiske yapılacağını sorarsa ona olması gereken diski göstermelisiniz. Olması gereken? Evet haklısınız, bu çok kapalı bir cümle oldu buna biraz açıklık getirelim. Siz bilgisyarınızı açmak için düğmeye bastığınız da sistem çeşitli testler yapar. Bios olarak bilinen sisteminizin çevresel aygıtlarını işlemci ile haberleştiren donanımları denetleyen ve açılış işlemlerini yürüten o güzide chip aslında işlemciye çalıştıracağı ilk kodları sunan ve hangi diskin açılacağını da söyleyen yapılandırmayı saklar. Her ne kadar bunun sıralamasını siz değiştirebiliyor olsanız da bunu işlevsel kılan aslında biosudur. 2005 yılından sonra çıkan tüm bios yazılımları Usb disklerden boot etmeyi de destekliyorlar. Daha başka boot seçenekleri de sunulduğunu belirtmeliyim. Olması gereken kısmına geri dönelim. Hangi disk? Evet bu nokta da kullandığımız diskin bios açısından sıralamadaki yerine bir bakmak gerek. Bunu yapmanın kolay yolu şu. Çalışan bir Cd-Dvd ile sistemi boot edip konsol üzerinden aşağıda ki komutu çalıştırmak.
# fdisk -l
Çıkan liste de sda sdb ve sdc gibi sıralamalar göreceksiniz. Her sıralama aslında o fiziksel diskteki partition'ları içeren bir listedir. Mesela benim sistemimdeki çıktı şöyle.
Disk /dev/sda: 80.0 GB, 80025280000 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x85f8b5d6
Device Boot Start End Blocks Id System
/dev/sda1 1 1571 12619026 7 HPFS/NTFS
/dev/sda2 * 1572 2876 10482412+ 83 Linux
/dev/sda3 2877 3137 2096482+ 82 Linux swap / Solaris
/dev/sda4 3138 9729 52950240 f W95 Ext'd (LBA)
/dev/sda5 3138 8945 46652728+ 7 HPFS/NTFS
/dev/sda6 8946 8951 48163+ b W95 FAT32
/dev/sda7 ? 84091 159235 603586563+ 7 HPFS/NTFS
Disk /dev/sdb: 500.1 GB, 500074283008 bytes
255 heads, 63 sectors/track, 60797 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000521ab
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 9792 78654208+ 83 Linux
/dev/sdb2 9793 9984 1542240 82 Linux swap / Solaris
/dev/sdb3 9985 23039 104864287+ 83 Linux
/dev/sdb4 23040 60797 303291104+ 5 Extended
/dev/sdb5 23040 36094 104864256 83 Linux
/dev/sdb6 49150 59593 83891398+ 83 Linux
/dev/sdb7 59594 60797 9671098+ 83 Linux
/dev/sdb8 36095 49149 104862720 83 Linux
Liste de aslında iki farlı disk ve o disklerin sahip olduğu partitionlar -parça da denilebilir- var. Benim kullandığım disk sdb olarak isimlendirilmiş. Bu diskin ilk parçası boot edelebilmesini sağlayacak şekilde işaretlenmiş. O halde ben sisteme grub kuracağım zaman /dev/sdb olarak göstermeliyim hedefi. Kurulum için diskin hangi kısmını da seçtğime göre devam edebilirim. Tabi bunu kuruluma başlamadan önce tespit etmek iyi olacaktır.
Linux kerneli, yukarıdaki listeyi oluştururken disklerin donanımsal olarak bağlı oldukları bağlantı noktasını ve buna göre konumlarını baz alır. Oluturulan listeye Bios dan gelen sıralama bilgisi girmez. Bios'un da elinde bir liste vardır. Ama o daha değişkendir. Bios da diskleri, bağlantı noktasına göre sıralayabilir ama bunu yerine boot edilecek olanı ilk disk olarak kabul ederek listeler.
Sistemde bir diskin boot edilebilmesi için boot sector içerisinde bir boot programı -mesela grub- yüklenmiş olmalı. Nerede mi? Bunu da açalım. Her diskin yazılabilir alanının dışında hatta bu alanın en başında boot sector olarak adlandırılan bir alan vardır ve toplam boyutu 512 byte'dır. Küçük mü? Evet küçük. IPv4'ün tüm dünyaya yüzyıllaca yeteceğini düşünmüş insanların bunu da yeterli görmesi aynı zamana denk geliyor sanırım. Ya da o zamanlar bu büyük bir sayıydı. 20 Mbyte'lık disklerin bitmek-tükenmek bilmeyen bir hafızaya sahip olduğu düşünüldüğü zamanlarda 512 Byte'ın da anlamı vardı. Şimdi ise bizi kısıtlayan başka bir standart. Her neyse... Bu 512 byte'lık alana, diskin hangi
bölümünün boot edileceği, disk üzerinde ki birincil -primary- parçaların adresleri ve boot programı sığıyor. Alan biraz küçük olduğu için “sığıyor” demeden önce sınırları belirtmek gerekli. En fazla 4 tane birincil disk bölümü adresi yazılabiliyor. Neden bir diskte, primary partition sayısının en çok 4 olabileceği sorusuna cevap olacak açıklamayı da yapmış olduk dolaylı olarak. Bu durum çözümsüz mü? Hayır! Uzatılmış disk bölümleri ile sayıyı artırmak mümkün.
Boot sector konusunu da açıklığa kavuşturduktan sonra, bazı önlemler almanız içi sizi bilgilendirmeliyim. Bir diskin boot sector'una her işletim sistemi kendi önyükleme programını yazar. Bu durumda kuracağınız işletim sisteminin, kurulumu yapmaya başlamadan önceki sistemleri de içine alacak olan bir program mı değil mi diye düşünmek gerekli. Grub, neredeyse her sistemi boot edebilir. (Neredeyse...) Ama Windows ve Mac sistemleri sadece kendi ürünlerini -kendi ürünlerinin hepsini de değil- boot edebilecek bir boot programına sahiptirler. Olası durumlarda bir B planına sahip olmak iyidir. profesyonellik açısından da önemlidir. Size tavsiyem kuruluma başlamadan önce var olan diskin boot sector kısmının bir yedeğini almanız yönünde. Nasıl mı? Daha önce fdisk ile hangi diskin sistemin yerel diski olduğuna bakmayı öğrendiğimize göre aşağıda ki komut içerisinde renkli kısmı kendi sisteminize göre değiştirebilir ve uygulayabilirsiniz. Benim kullandığım makinada ki yapılandırma için aşağıdaki komut yeterli.
sudo dd if=/dev/sda of=old.grub bs=512 count=1
Bu komut der ki;
/dev/sda -yerel disk- üzerinden başlangıçtan itibaren ilk 512 byte'lık kısmı oku ve bunu “old.grub” isimli dosyaya yaz. İşte yedeğimiz de hazır. Ama yanlışlıkla yerel diske kurulum yaparsanız bu durmu da yapacak fazla bir şey yok. Yine de aldığımız yedek güvenli bir yere alınmalı. Özellikle de live Cd-Dvd kullanıyorsanız bu yedeği kalıcı bir yere alın.
Yedeği geri yazdırmak gerekirse peki?
sudo dd if=old.grub of=/dev/sda bs=512 count=1
Yukarıda ki komutlar bana Debian 6 kurulumda lazım oldu çünkü ben daha sistemdeki yerel diski tespit etmeden Debian Grub2'yi kurup, kurulumu tamamlamıştı. Şanslıydım çünkü yanı başımda aynı donanıma ve yapılandırmaya sahip 15 tane daha bilgisayar vardı. Onlardan birisine bağlanıp diskin boot sector'ünün bir kopyasını yukarıdaki komutla alıp yerel diski eski aline getirdim. Ama kendi diskimde grub yoktu bu kez de. Yazıyı yazma sebebim de bu desem yalan olmaz herhalde. Grub2 yi kurdum ama akşam evde bilgisayara takıp boot etmediğini görünce -evet o da bir başkasının bilgisayarı- grub2 den grub-legacy' e geçmek gerektiğine karar verdim. Öncelikle ne olur ne olmaz diye bir yedeğini alalım var olan Grub2'nin.
mv /boot/grub/ /boot/grub.old
Not: Komutlara “sudo” eklemek gerekebilir.
Sonra da eski grubdan kurtulalım.
sudo apt-get purge grub grub-common
Yenisini sisteme kuralım.
sudo apt-get install grub-legacy
Bağımlılkları ile birlikte eski grub paketi kurulacaktır. Sonrasında /boot dizini altına grub/ dizinini oluşturalım.
sudo mkdir /boot/grub
sudo chmod 755 /boot/grub/
Not: “grub” dizini root'a ait olmalıdır.
Artık Grub'u diskin başına yazdırma zamanı geldi.
sudo grub-install /dev/sdb
/dev/sdb yerine /dev/sdb1 ya da /dev/sdb2 yazmanız gerekebilir. Bunu yapabilmek için diski biçimlendirirken boot edilecek partitionu değiştirmiş olmanız gerekir. Ama default olarak boot edilecek olan kısım diskin başlangıcı olan yerdir. Yani /dev/sdb. Kurulum tamamlanınca sorun olup olmadığını anlamak için çıkan ileti de aşağıda ki satırı görmelisiniz.
“No error were reported”
sudo update-grub
komutuyla da menu.lst dosyasının oluşturulmasını sağlayalım.
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... found: /boot/grub/default
Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
Searching for splash image ... none found, skipping ...
Found kernel: /boot/vmlinuz-2.6.32-5-686
Updating /boot/grub/menu.lst ... done
Sizde bu çıktıya benzer bir çıktı aldıysanız ve kernelin yerini bulup, menu.lst dosyasını oluşturduğunu söylüyorsa olmuş demektir. Sonra da herhangi bir metin editörü ile bu dosyayı açıp bir göz atalım.
Bir iki nokta var bu dosyada. Birlikte inceleyelim. Benim dosyamda aşağıdaki işletim sistemleri listesinde sadece aşağıda ki bölüm var.
title Debian GNU/Linux, kernel 2.6.32-5-686
root (hd1,0)
kernel /boot/vmlinuz-2.6.32-5-686 root=UUID=dc3a58f9-6aad-45bf-9c14-96b0676bb49e ro
initrd /boot/initrd.img-2.6.32-5-686
Sistem kerneli bulup dosyaya yerini işlemiş. Ama ikinci satır da bulunan root kısmı bu diskin bios tarafından algılanan 2. sırada ki disk olduğunu söylüyor. Bu diskin bağlandığı nokta ve sistemde takılı durumda ki disklerin sayısı ile ilgili. Şu ahliyle bırakırsam sistem bu diski boot edemeyecektir. Çünkü bu dosya da boot edilecek diskin sistemin 2. diski ve onun üzerinde bulunan ilk partition olduğu yazılı. Ama biz zaten bios kısmına girerek diskimizi listenin başına alıyoruz ve o zamanda diskimiz, biosa göre sistemin ilk diski ünvanını alıyor. O halde bu dosya aslında olmayan bir diski boot etmeye çalışıyor.
Bunu da şöyle düzeltelim. İkinci satıra gidip onu silelim. Onun yerine diskin o partitionuna ait UUID numarasını ekleyelim. Sonunda şöyle görünecek yani.
title Debian GNU/Linux, kernel 2.6.32-5-686
uuid dc3a58f9-6aad-45bf-9c14-96b0676bb49e
kernel /boot/vmlinuz-2.6.32-5-686 root=UUID=dc3a58f9-6aad-45bf-9c14-96b0676bb49e ro
initrd /boot/initrd.img-2.6.32-5-686
Artık diskin ilk bölümünü sisteme UUID -benzeri olmayan bir numara- ile gösterdik. Elindeki listee bakıp hangisini kastettiğimiz anlaması zor olmaz. UUID linux da kullanılan bir sistem. Diskler biçimlendirilirken her parçaya benzersiz bir kod üeritilip üzerine eklenir. Disklerinize ait olan UUID leri görmek için
sudo blkid
komutunu kullanabilirsiniz. Artık herşey hazır.
En baştan belirtmeliydim ama şimdi de söylesem olur sanırım. Eğer burada okuduklarınızdan bir şey anlamadıysanız lütfen uygulamaya kalkışmayın. Doğabilecek sıkıntılardan dolayı sorumluluk almayı reddediyorum. Disleksi krizinin içerisinde yazdığım bu yazıyı başıma gelen bir olay üzerine hazırladım. Şu an için yazım hatası var mı diye kontrol etme lüksüne sahip değilim ama normale dönünce ilk iş olarak bunu yapacağım. İşinize yaraması dileklerimle...






