Herşeyi biraraya getirelim
Önceki Linux Açılış Disketi NASIL Sonraki
Herşeyi biraraya getirelim
Disket(ler)in yapımı
Şu anda elimizde bir çekirdek ve sıkıştırılmış bir dosya sistemi mevcut. Eğer önyükleme ve kök disketi yapacaksanız, bunların boyutunun tek bir diskete sığacağından emin olun. Şayet iki disketlik önyükleme + kök disketlerini yapacaksanız, kök dosya sisteminin tek bir diskete sığacak kadar küçülmüş olduğunda emin olun.
Önyükleme disketindeki çekirdeği yüklemek için LILO kullanıp kullanmayacağınıza karar vermek durumundasınız. Ayrıca isterseniz; çekirdeği doğrudan diskete kopyalayabilir ve LILO olmaksızın açılış yapabilirsiniz. LILO kullanmanın faydası, açılış esnasında bazı donanımları ilklendirecek özel parametreleri çekirdeğe verebilmektir (sisteminizdeki /etc/lilo.conf dosyasını kontrol edin. Şayet içerisinde ``append=...'' gibi bir satır varsa, muhtemelen bu özeliğe ihtiyacımız olacak demektir). LILO kullanmanın bir götürüsü de daha karmaşık bir açılış disketi yapmak ve bunun biraz daha fazla bayta mal olmasıdır. Çekirdek dosya sistemi olarak adlandırabileceğimiz küçük bir dosya sistemi oluşturup buraya LILO'nun ihtiyaç duyacağı çekirdeği ve birkaç dosyayı koyacağız.
Şayet LILO kullanacaksanız, okumaya devem edin. Çekirdeği doğrudan diskete aktarcaksanız Çekirdeğin LILO'suz kullanımı bölümüne atlayın.
Çekirdeğin LILO ile kullanımı
İlk olarak, LILO'nun en son sürümüne sahip olduğunuzdan emin olun.
LILO için küçük bir yapılandırma dosyası oluşturmanız gerekiyor:
boot      =/dev/fd0
install   =/boot/boot.b
map       =/boot/map
read-write
backup    =/dev/null
compact
image     = KERNEL
label     = Bootdisk
root      =/dev/fd0
Buradaki parametrelerin açıklamaları için LILO kullanıcı belgelerine bakınız. Ayrıca append=... şeklinde bir satır da eklemek isteyebilirsiniz (sabit diskinizdeki /etc/lilo.conf dosyasındaki satırı).
Bu dosyayı bdlilo.conf ismiyle kaydedin.
Şimdi, kök dosya sisteminden ayırt edebilmek için çekirdek dosya sistemi olarak adlandıracağımız küçük bir dosya sistemi oluşturacağız.
İlk olarak, bu dosya sisteminin boyutuna karar verin. ``ls -s KERNEL'' komutu ile çekirdeğin boyutunu blok cinsinden öğrenin ve buna 50 ekleyin. Bu 50 blok, diğer dosyalar ve düğümler tarafından kullanılacak blok sayısıdır. Bu sayıyı tam olarak hesaplamak mümkündür ama biz burada 50'yi kullanacağız. Şayet iki disketlik bir set yapacaksanız, bu sayıyı abartmanızda bir mahsur yoktur. Nasıl olsa birinci disket sadece çekirdek tarafından kullanılacaktır. Bu sayıya çekirdek_blokları adını verelim.
Sürücüye bir disket koyun (buna /dev/fd0 diyeceğiz) ve bir ext2 çekirdek dosya sistemi oluşturun:
# mke2fs -N 24 -m 0 /dev/fd0 çekirdek_blokları
``-N 24'', bu dosya sistemi için ihtiyaç duyacağımız 24 tane dosya düğümünü belirtir. Daha sonra dosya sistemini bağlayın ve lost+found dizinini silin. Bunu ardından, LILO için dev ve boot dizinlerini oluşturun:
# mount -o dev /dev/fd0 /mnt
# rm -rf /mnt/lost+found
# mkdir /mnt/{boot,dev}
Daha sonra, /dev/null ve /dev/fd0 dosyalarını oluşurun. Aygıt numaralarını aramak yerine, sabit diskinizden bunları kopyalayabilirsiniz (-R seçeneği ile):
# cp -R /dev/{null,fd0} /mnt/dev
LILO, kendi önyükleyicisinin bir kopyasına ihtiyaç duyar: boot.b. Bunu da sabit diskinizden kopyalayabilirsiniz. Bu dosya genellikle /boot dizini içindedir.
# cp /boot/boot.b /mnt/boot
Son olarak, geçen bölümde oluşturduğunuz LILO yapılandırma dosyasını ve çekirdeği kopyalayın. Her ikisi de kök dizine konabilir:
# cp bdlilo.conf KERNEL /mnt
LILO'nun ihtiyaç duyduğu herşey, artık çekirdek dosya sisteminde. Artık onu çalıştırmaya hazırız. LILO'nun -r seçeneği, onu başka kök sistemlere yüklemek için kullanılır:
# lilo -v -C bdlilo.conf -r /mnt
LILO hatasız olarak çalışmalı ve daha sonra çekirdek dosya sistemi şuna benzemeli:
total 361
  1 -rw-r--r--   1 root     root          176 Jan 10 07:22 bdlilo.conf
  1 drwxr-xr-x   2 root     root         1024 Jan 10 07:23 boot/
  1 drwxr-xr-x   2 root     root         1024 Jan 10 07:22 dev/
358 -rw-r--r--   1 root     root       362707 Jan 10 07:23 vmlinuz
boot:
total 8
  4 -rw-r--r--   1 root     root         3708 Jan 10 07:22 boot.b
  4 -rw-------   1 root     root         3584 Jan 10 07:23 map
dev:
total 0
  0 brw-r-----   1 root     root       2,   0 Jan 10 07:22 fd0
  0 crw-r--r--   1 root     root       1,   3 Jan 10 07:22 null
Dosya boyutları biraz farklı ise, bunu dert etmeyin.
Şimdi, disketi sürücüde bırakın ve ramdisk sözcüğünün yapılandırılması bölümüne geçin.
Çekirdeğin LILO'suz kullanımı
Şayet LILO kullanmayacaksanız, çekirdeği önyükleme disketine dd kullanarak gönderin:
# dd if=KERNEL of=/dev/fd0 bs=1k
353+1 records in
353+1 records out
Bu örnekte dd, 353 tam kayıt + 1 kısmi kayıt yazdı. Bu nedenle, çekirdek disketin ilk 354 bloğu üzerine kurulmuş oldu. Bu sayıyı çekirdek_blokları diye adlandıracağız.
Son olarak, kök aygıtı disket olarak ayarlayın ve burayı okunur/yazılır kipte yüklenecek şekilde düzenleyin:
# rdev /dev/fd0 /dev/fd0
# rdev -R /dev/fd0 0
İkinci rdev komutunda -R seçeneğini kullanırken dikkatli olun. Büyük harf ile yazdığınızdan emin olun.
ramdisk sözcüğünün yapılandırılması
Çekirdek biteşlemi içindeki ramdisk kelimesi[12] diğer seçeneklerin yanısıra kök dosya sisteminin nerede bulunacağını belirtir. Bu kelime rdev komutu ile ayarlanabilir. İçeriği aşağıda açıklandığı gibidir:
Bit alanıAçıklama
0-101024 baytlık bloklar halindeki ramdisk'in başlangıç konumu
11-13kullanılmadı
14ramdiskin yükleneceğini gösteren bayrak
15rootfs yüklenmeden önce bir istem geleceğini gösteren bayrak
Şayet 15 numaralı bit ayarlanmış ise, açılışta sürücüye yeni bir disket koymanızı söyleyen bir ekran çıkar. Bu iki disketlik setlerde gereklidir.
Tek veya çift disketlik bir set oluşturmanıza bağlı olarak iki ayrı durum söz konusudur:
  1. Şayet tek bir disket oluşturmuşsanız, sıkıştırılmış dosya sistemi çekirdeğin ardı sıra yüklenir. Bu nedenle başlangıcı ilk boş blokta olacaktır (çekirdek_blokları ile aynı olmalıdır). 14. bit 1, 15. bit ise 0 olacaktır.
    Örneğin; diyelim ki tek disketlik bir sistem yaptınız ve kök dosya sistemi 253. bloktan (onluk olarak) başlıyor. Ramdiskin kelime değeri 14. bit 1, 15. bit 0 olmak üzere 253 olmalıdır. Değeri hesaplamak için ondalık değerleri toplamak yeterlidir: 253 + (2^14) = 253 + 16384 = 16637. Şayet bu sayının nereden geldiğini anlmadıysanız, bilimsel bir hesap makinasına bunu yazın ve ikilik düzene çevirin.
  2. Şayet iki disketlik bir set yaptıysanız, kök dosya sistemi 0. bloktan başlar, bu nedenle başlangıç konumu sıfır olacaktır. 14. ve 15. bit 1 olacaktır. Bu durumda ondalık değer ise 2^14 + 2^15 = 49152 olur.
Bu ramdisk sözcüğünün değerini dikkatlice hesapladıktan sonra, rdev -r ile bunu çekirdek biteşlemine yazın. Ondalık değerleri kullandığınızdan emin olun. Şayet LILO kullandıysanız, rdev'e verilecek argüman bağlanana çekirdeğin dosya yolu olmalıdır. Örneğin; /mnt/vmlinuz; şayet çekirdeği dd bunun yerine disket aygıtının ismi (örn, /dev/fd0) gelecektir.
# rdev -r çekirdek_yolu_veya_disket_aygıtı değer
Şayet LILO kullandıysanız, şimdi disketi ayırın.
Önemli
rdev veya ramsize man sayfasının ramdisk boyutu hakkında söylediklerine inanmayın. Bu kılavuz sayfası oldukça eski. Çekirdek 2.0 veya o civardakilerde, ramdisk kelimesi ramdisk boyutunu belirtmez, ramdisk sözcüğünün yapılandırılması bölümünün başlangıcındaki tabloyu ifade eder. Ayrıntılı bilgi için, ramdisk.txt dosyasına veya http://www.linuxhq.com/kernel/v2.4/doc/ramdisk.txt.html adresine bakınız.
Kök dosya sistemini aktarılması
Son adımımız kök dosya sistemini aktarmaktır.
  • Şayet kök dosya sistemi çekirdek ile aynı diskete konacaksa, dd komutunu seek seçeneği ile kullanarak aktarın. seek seçeneği kaç tane bloğun atlanacağını belirtir:
    # dd if=rootfs.gz of=/dev/fd0 bs=1k seek=çekirdek_blokları
    
  • Şayet kök dosya sistemi ikinci bir diskete konacaksa; birinci disketi çıkarın, ikinci disketi sürücüye takın ve daha sonra kök dosya sistemini aktarın:
    # dd if=rootfs.gz of=/dev/fd0 bs=1k
    
Tebrikler, başardınız!
Önemli
Yapmış olduğunu açılış disketlerini, acil durumlar için kenara koymadan önce mutlaka sınayın. Şayet disket ile sistemi açamazsanız, okumaya devem edin.


[12] Ç.N: Burada kelime ya da sözcük ile ifade edilen 16 bitlik bir alandır (8 bit = bayt, 16 bit = kelime [word]).
Önceki Üst Ana Başlık Sonraki
Çekirdek Seçimi Başlangıç Sorun çözmek ya da Yenilginin Acısı
Bir Linux Kitaplığı Sayfası