Home Map Index Search News Archives Links About LF
[Top Bar]
[BottomBar]
Yararlı bir Linux sürümü yaratımı
[no author]
Mooneer Salem
<mooneer(at)earthlink.net>

Türkçeye çeviren :
Erdal Mutlu
<erdal(at)linuxfocus.org>


İçerik:

 

Yararlı bir Linux sürümü yaratımı

[Illustration]

Özet:

Eğer, Linux işletim sistemininde kendi açılış/kök (boot/root) disketlerinizi oluşturmak istiyorsanız bu yazıyı okumanızı öneririm. Ayrıca, Linux sisteminizin bakımını yapabilmek için gerekli araçlarla ana diskinizi yapılandırabilirsiniz!

_________________ _________________ _________________

 

Giriş

Bir veya iki disketlik Linux sürümleri sözünü veren sanaldoku sayfalarını hiç gördünüz mü? Bunlar genelde az sayıda program içermekte veya bazı özellikleri desteklemektedir. Ben size gerekli olacak veya kullanacağınız herşeyi içerecek açılış/kök (boot/root) disketinin nasıl oluşturabileceğinizi göstereceğim.

İlk önce, kendi Linux sürümünüze ne kadar yazılım yükleyeceğinize bağlı olarak bir veya iki adet boş diskete gereksinim duyacaksınız. Kısacası, sizin Linux sürümünüz, açılış/kök (boot/root) veya belkide bir ek uygulamalar disketinden oluşacaktır. Eğer, yukarıda sözü edilen terimleri bilmiyorsanız, ilk önce Bootdisk-HOWTO (Açılış diski NASIl belgesi) ikinci bölümüne başvurmanızı öneririm.

Şimdi isterseniz artık başlayabiliriz. Disket/disk sürümü Linux'unuzu oluşturmak için uygulamanız gereken adımlar aşağıda basitçe verilmektedir:

  1. Size özel sade bir çekirdeğin derlenmesi.
  2. Diskiniz için bir dosya sistemi yaratılması.
  3. Herşeyi disketinize veya disketlerinize kopyalanması.
 

Çekirdeğin derlenmesi

Disketinizin toplan 1.44 MB'lık (1440 KB) sığası olduğundan, asıl çekirdeğinizi diskete kopyalamak uygun olmamaktadır. Yapmanız gereken yeni bir çekirdek derlemektir. Bunun için çekirdek kaynak dosyalarını /usr/src/linuz dizini altına yerleştirmek ve bu dizin içerisindeyken aşağıdaki komutu çalıştırmaktır:

make config

Burada size sorulan sorulara, sadece gerçekten gereksinim duyduğunuz destekleri verecek şekilde cevaplayınız. Sözgelimi, ben sadece ext2, disket sürücüsü ve PPP desteğini seçmekteyim. Sizin seçtikleriniz, yapılandırmak istediğiniz sisteme göre farklılık gösterebilir. Sonra, aşağıdaki komutu çalıştırın:

make dep; make clean; make zImage

make zImage komutu çok önemlidir! Bu komut elde edilecek çekirdeği sıkıştırmaktadır. Komutun işlevi sona erdiğinde çekirdeğinizi, /usr/src/linux/arch/i386/boot dizininde zImage adı altında bulacaksınız.

 

Dosya sistemi: Sadece eski dosyalar değil

Şimdi diskimiz için bir dosya sistemi yaratmamız grekecektir. Tüm gerekli programları doğrudan diskete kopyalamak yerine, hepsini sıkıştırarak kopyalayacağız. Böylce, kalıcı olarak bir şeyleri değiştirmek göreceli olarak daha zor olacaktır. İlk önce aşağıdaki komutu çalıştırıyoruz:

dd if=/dev/zero of=DEVICE bs=1k count=3000

Buradaki DEVICE, dosya sisteminizi sıkıştırılmamış durumunda, diskte saklayacağınız yeri belirtmektedir. Daha sonra, aşağıdaki komutu çalıştırmanız gerekiyor. Yine buradaki DEVICE, bir önceki komutta verilen yer olmalıdır:

mke2fs -m 0 DEVICE

Eğer, make2fs komutu size, bu işi gerçekten yapmak isteyip istemediğinizi sorarsa, evet (yes) yazın.

Daha sonra yeni yaratılmış dosya sistemini sisteme bağlamanız gerekiyor. Yeni yaratılmış dosya sistemi sıradan bir dosya içerisinde olduğundan, sisteme bağlayabilmek için çekirdeğinizin "loopback device" aygıtı desteği ile derlenmiş olması gerekmektedir. Eğer, çekirdeğinizde (Sistemdeki çekirdek, sizin disketler için yarattığınız çekirdek değil.) bu destek yoksa, onu yeniden derlemeniz gerekecektir. Çekirdeği yapılandırma sırasında karşınıza gelecek aşağıdaki soruya Y(yes evet için) veya M(module için) cevabını vermeniz gerekecektir.

Loopback device support (CONFIG_BLK_DEV_LOOP) [M/n/y/?]

Önemle üzerinde durmanız gereken konu, derlemekte olduğunuz çekirdeğin, sizin sistem çekirdeği olduğudur. Yani disketler için hazırladığınız çekirdek değil. Dolayısıyla, sisteminiz için gerekli tüm aygıt ve aygıt sürücülerini seçmeniz gerekecektir. Eğer, loopback aygıtını modül olarak derlediyseniz, onu modprobe loop komutuyla etkin duruma getirmeyi unutmayınız.

mount -t ext2 DEVICE /mnt
Eğer, mount komutu hata verirse, aşağıdaki komutu deneyin:
mount -o loop -t ext2 DEVICE /mnt

Şimdi gereksinim duyacağınız tüm dosyaları yeni yaratılan dosya sistemine kopyalamanız gerekecektir. İlk önce /mnt dizinine geçerek aşağıdaki dizinleri yaratın:

/dev
/proc
/etc
/bin
/lib
/mnt
/usr

/dev dizinindeki dosyaları aşağıdaki komutla kopyalayabilirsiniz:

cp -dpR /dev /mnt/dev

Eğer, inode sayısı yeterli olmazsa, /mnt/dev dizininde yer alan ve gereksinim duymayacağınız aygıt dosyalarını silebilirsiniz. /dev dizini için gerekli dosyaları kopyaladıktan sonra, /etc dizinine geçelim. Eğer, kendinizi sağlama almak istiyorsanız, /etc dizinindeki tüm dosyaları, /mnt/etc altına kopyalayınız:

cp -dpR /etc /mnt/etc

Daha sonra /lib dizinini /mnt altına kopyalayınız:

cp -dpR /lib /mnt/lib

/bin dizinine gelince, sadece gerekli gördüğünüz dosyları /mnt dizinine kopyalamınızda yarar vardır.

 

Herşeyi disketinize kopyalamak

Şimdi, herşeyi disketinize veya disketlerinize kopyalamanız gerekmektedir. Kopyalama işleminden önce, tüm dosya sistemini sıkıştıracağız:

cd /
umount /mnt
dd if=DEVICE bs=1k | gzip -9 > rootfs.gz

Bu aşamada önemli olan çekirdeğinizin büyüklüğünü denetlemektir. /usr/src/linux/arch/i386/boot dizinine geçin ve ls -l komutunu çalıştırın. Dosya büyüklüğü olarak gördüğünüz değeri 1024'e bölmeniz gerekecektir. Sözgelimi, çekirdeğinizin büyüklüğü 250000 byte ise, yukarıdaki hesaba göre KB cinsinden bu 245 olur. Daha önceleri, ROOTBEGIN diye bir iletiden önce verilen KB cinsinden olan sayıyı kullanın. Şimdi, çekirdeğinizi diskete aşağıdaki komutu kullanarak kopyalayabilirsiniz:

dd if=zImage of=/dev/fd0

Yukarıdaki komut, çekirdeğinizi diskete yerleştirecektir. Daha sonra, çekirdeğinizin kök dosya sistemini diskette bulması için aşağıdaki komutu çalıştırınız:

rdev /dev/fd0 /dev/fd0

Şimdi onaltılık taban (hex) aritmetiği yapmanız gerekecek. ROOTBEGIN'de elde ettiğiniz sayıya onaltılık tabana çevirdikten sonra 4000 ekleyin (Örneğimizde bu F5 dir.). Sonucu, onluk tabana çevirin ve aşağıdaki komutu 16629 sayısı yerine elde ettiğiniz sayıyı yazarak çalıştırın:

rdev -r /dev/fd0 16629

Son olarak aşağıdaki komutu çalıştırarak, dosya sisteminizi disketenize kopyalayın:

dd if=rootfs.gz of=/dev/fd0 bs=1k seek=ROOTBEGIN

Root dosya sisteminiz disketinize, çekirdekten hemen sonra kopyalanmış olacaktır. İşte bu kadar! İkinci disket için olan süreç daha basittir. Diskette yer almasını istediğiniz dosyaları kopyalamak yeterli olacaktır. Ancak, ikinci disketteki dosyaları kullanabilmek için, birinci disketle sistemi açarken, aşağıdaki komutu vermeniz gerekecektir:

mount /dev/fd0 /usr

Son bir açıklama: Eğer, biraz daha uğraşırsanız, oluşturduğunuz Linux sürümünü yeni bir "Linux dağıtımı" olarak topluluğa sunabilirsiniz. Sadece bir düşünceydi :)


Daha fazla bilgi için:

Görselyöre sayfalarının bakımı, LinuxFocus Editörleri tarafından yapılmaktadır.
© Mooneer Salem, FDL
LinuxFocus.org
Çeviri bilgisi:
en --> -- : Mooneer Salem <mooneer(at)earthlink.net>
en --> tr : Erdal Mutlu <erdal(at)linuxfocus.org>

2002-11-02, generated by lfparser version 2.34