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ıÖ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!
|
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:
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.
Ş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 /mntEğ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.
Ş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 :)
Görselyöre sayfalarının bakımı, LinuxFocus Editörleri tarafından yapılmaktadır.
© Mooneer Salem, FDL LinuxFocus.org |
Çeviri bilgisi:
|
2002-11-02, generated by lfparser version 2.34