[LinuxFocus-icon]
<--  | Ana Sayfa  | Erişimdüzeni  | İçindekiler  | Arama

Duyumlar | Belgelikler | Bağlantılar | LF Nedir
Bu makalenin farklı dillerde bulunduğu adresler: English  Deutsch  Francais  Italiano  Nederlands  Turkce  

[Photo of the Author]
Tjabo Kloppenburg (homepage)

Yazar hakkında:

Ben 1996 yılında bu hastalığa yakalandım. Slckware 3.1 :-) Python, Perl, Gawk vs betik programları yazmaktan hoşlanıyorum ve çeşitli aygıtları başlatmak ilgimi çekiyor.



Türkçe'ye çeviri:
Erdal Mutlu <erdal(at)linuxfocus.org>

İçerik:

 

Değiştirilmiş Knoppix Linux ile 8cm'lik çoklu açılışlı CD

[Illustration]

Özet:

LinuxFocus'daki bazı yazıları okuduktan ve İnternet'teki sayfalarda gezindikten sonra sistemi güvenilir şekilde başlatabilen CD'ler, virüssüz açılış diski başlatmak, tek dikli Linux diskleri veya uyarlanmış knoppix sistemi hazırlama yöntemi buldum.
Çeşitli durumlarda yararlı olabilecek, her cebe sığabilen, 8cm lik bir CD'ye yazılan 183MB'lik bir sistemdir.


_________________ _________________ _________________

 

Önkoşullar

Temel Linux bilgisine sahip olduğunuzu ve CD yazmanın nasıl yapıldığını bildiğinizi varsayıyorum. Okunup yazılabilen CD yazabilen bir CD sürücüsüne de sahip olmanız gerekir. Bu iyi olur, çünkü insanlar yaptıkları hatalardan daha iyi öğreniyorlar... Okunup yazılabilen CD'lere, 8cm'lik CD-R'ler ve birkaç yüz MB boş alana sahip çalışan bir Linux sisteme de sahip olmanız gerekir.
Sonraları, knoppix'i uyarlama sırasında, paketleri İnternet'ten indirebilmek için bir İnternet bağlantısına gereksinim duyacaksınız. Eğer, yerel bir Debian yansı yöresi sunacak nfs veya samba'nın nasıl yapılandırıldığını biliyorsanız, o zaman hızlı bir İnternet bağlantısına gerek duyacaksınız. Son olarak da, paket yükleme ve kaldırma gibi Debian bilgisine sahip olmanız veya yardım alabileceğiniz bir arkadaş yada IRC kanalına sahip olmanız gerekecektir. Bir de loopback (geri yönlendir) aygıtının nasıl kullanıldığını bilmeniz gerekir.

 

Temeller

CD'lerden sistem açmakla, disket sürücüsünden veya diskten sistemi açmak benzerlik göstermektedir. Diskten birşeyler belleğe yüklenmekte ve başlatılmaktadır. İlk zamanlarda CD'ler sistemleri başlatmak amacıyla düşünülmemişti ve donanım yazılımcıları çeşitli sihirler kullanarak bu işi yapmaktaydı: Bazı üreticilere özgü BIOS değişiklikleri yaptıktan sonra, "el torito" standardını tanımladılar.

Açılış disk imgesini (image) içeren CD'de bir veri yapısı tanımlamakta ve bellekteki disket sürücüsünü taklit edecek, BIOS'da bu veri yapısını belleğe yükleyebilecek bir kod tanımlamaktadır. Belleğe yükledikten sonra herhangi bir disk gibi sistemi açmaktadır.

Bir disket taklintlendirmesiyle, 1.44MB'lik veya siz her ne kadar görmediyseniz de BIOS kullanabildiği için 2.44MB'lik açılış disketi bile oluşturulabilir. CD'den sistemi açmak istediğimizde 2.88MB'lik yerle sınırlı değiliz, loopback aygıtı ve bazı araçlar kullanarak bir açılış imgesi oluşturmamız yeterlidir.

Tek bir disk henüz çoklu açılış diski anlamına gelmemektedir. Diğer dosya sistemlerindeki açılış imgelerini yükleyebilecek ve başlatabilecek bir araca gereksinim vardır. Bunun için Boot-Scriptor bize yardımcı olacaktır. Boot-Scriptor ile CD'den bir yükleyici (loader) aracılığıyla (Evet, disk taklitlendiricisi (emulation) olmadan da bu olasıdır.) açılış yapılacak ve menüden istenilen disk imgesi seçilebilecektir. Boot-Scriptor biraz sihir yaparak, disket sürücüsündeki bir disket gibi, imgeyi bir disket taklitlendiricisine yükleyecektir.

Bunlar, Windows'un çeşitli sürümlerinin açılış imgeleri, NT geçişsözcüğü değiştiricisi, küçük Linux dağıtımları veya orta boyutlu bir knoppix sistemini açan bir knoppix açılış diski gibi, açılış diskleri olabilir.

 

Bu kadar konuşma yeter, şimdi başlayalım

CD'nin yapısını oluşturmamız için yeteri kadar boş yere sahip bir dizine gereksinimimiz vardır. "/data" dizininde yeterince boş yer olduğunu var sayıyorum. Projemizin temel dizini "/data/mboot" olabilir. Bu dizinin içinde CD'nin verilerinin yer aldığı "toolcd/" dizini ile virüs tarayıcıları gibi araçların asıllarının yer aldığı "/archive" dizinini yarattım.

 

Açılış betiği ile açılış menüzü

Arşif ve INI dosyalarını Boot-Scriptor (bootscriptor.org) adresinde elde edebilirsiniz. Belgeler arşivde yer almadığından, onlara saedece sanaldoku sayfasından ulaşabilirsiniz.

Boot-Scriptor CD'de, bir yükleyicinin yer aldığı kendi "bscript/" dizini, bir grafik dosyası (Bu dosya seçimliktir. Belgelere bakınız.) ile "bscript.ini" adında bir dosyaya gereksinim duymaktadır.
Dosyada, "print", bir tuşa basılınca "onkey" ve açılış disk imgesi "memdisk" gibi, basic programlama diline benzeyen komutlarla bir menü oluşturulmaktadır.

Aşağıdaki basit örneğe bir göz atın ve kendi ini dosyanızı yazın:

print "\ac\c0e--=> my multi boot cdrom with linux <=--"
print "F1 Bootdisk1"
print " w warm reboot"

MenuLoop:
onkey f1 goto bootDisk1
onkey w reboot warm
goto MenuLoop

bootDisk1:
memdisk \images\boot1.img

Daha birçok komut vardır. Boot-Scriptor'un belgelerini kopyalayın ve CD'nin dizin yapısı içerisinde bir yere yerleştirin. Temel komutları ilk örenirken bu belgelere gereksinim duyacaksınız.

 

Açılış diskleri nasıl yaratılır?

CD ile olan ilk denememiz için Windows açılış diski, lilo yaratılan Linux açılış diski veya HAL ya da TomsRtBt (2.88MB) gibi tek disklik Linux sistemlerinden biri gibi bir açılış diskine gereksinimimiz vardır. İnternet'te bir arama yapmanız yeterlidir.

Diskten bir disk imge dosyası oluşturmak için dd komutu kullanılmaktadır:

  ( disketi disket sürücüsüne takın )
  # cd /data/mboot/toolcd
  # mkdir images         (disk imgeleri için ayrılmış dizin)
  # dd if=/dev/fd0 of=images/boot1.img
 

Şimdi ISO dosyasını yaratalım ve CD'ye yazalım

"mkisofs" programının açılış yükleyicisinin düzgün yüklenmesini sağlayan "-b" seçeneği vardır. "-b" seçeneğine verilen yoltanımı, CD için olan taban dizine ("toolcd/") göre göreceli olarak verilmektedir:

# cd /data/mboot
# mkisofs -r -o iso.01 -b bscript/loader.bin \
          -no-emul-boot -boot-load-size 4 toolcd

Şimdi, geriye kalan tek şey var: ISO dosyasını CD-RW'a yazmaktır. Dosyayı CD-R, tek bir defa yazılabilir CD'ye de yazabilirsiniz. Ancak, "bscript.ini" dosyasında yapacağınız tek bir karakter hatası bile, yeni yazılan CD'nizin çöpe atılması ile sonuçlanır. Bu yüzden siz siz olun defalarca yazılabilen CD-RW'lere yazın :-).

Kayıt işleminden önce CD yazıcısına verilecek dev, yani aygıt parametresini belirlemek gerekir. Var olan aygıtları görebilmek için"cdrecord -scanbus" komutu kullanılabilir. Eğer, hiç bir aygıt gözükmediyse, "modprobe ide-scsi" komutuyla sözgelimi "ide-scsi" aygıt sürücüsü modülünü yüklemeyip tekrar deneyebilirsiniz.

Aşağıdaki örnekte 0,0,0 aygıt numarasına sahip CD-RW sürücüsüne, oluşturduğumuz ISO dosyasını yazdırabiliriz:
# cdrecord -scanbus
Cdrecord 1.10 (i686-pc-linux-gnu) (C) 1995-2001 J. Schilling
Linux sg driver version: 3.1.22
Using libscg version 'schily-0.5'
scsibus0:
  0,0,0   0) 'LG   ' 'CD-RW CED-8083B ' '1.05' Removable CD-ROM
  ...

# cdrecord -v dev=0,0,0 speed=32 iso.01

Bazı CD-RW'lerin hızları (4 gibi) düşüktür. Ama bunun bir önemi yok, çünkü "cdrecord" CD-RW aygıtının özelliklerini okumakta ve olası en büyük değeri (32) kullanmaktadır.

CD yazım işlemi sona erdiğinde, CD'den sistemi açmayı deneyebilirsiniz.

 

Makefile dosyası kullanmak

"mkisofs" komutlunda parametre sayısı fazla olduğundan, hata yapma veya bir şeyi unutma olasılığı oldukça yüksektir. "cdrecord" da doğru parametrelere gereksinim duyduğu için, en iyisi bir betik veya Makefile kullanmaktadır. Biz Makefile kullanacağız. Bunun için eğer sisteminzide yüklü değil ise, her yazılımcının kullanabilmesi gerek "make" programını yükleyin.

Makefile dosyasını "mboot/" dizine bir bağlantı yaparak, CD dizin yapısında bir yerde oluşturacağız. CD oluşturmada kullanılan herşeyi CD'ye yerleştirmek, diskinizde dosyalar olmasa bile yeni ve hatta daha iyi bir CD oluşturmanızda ve bir yedekleme aracı olarak da kullanabilmenizde işe yarayabilir.

Makefile dosyanız basit olabilir. İşte bir örnek:

BASE = toolcd
DEV = 0,0,0
SPEED = 4
VERSION = 01
ISO = iso.$(BASE).$(VERSION)
OPTIONS= -b bscript/loader.bin -no-emul-boot -boot-load-size 4

blank:
    cdrecord -v dev=$(DEV) blank=fast

blankall:
    cdrecord -v dev=$(DEV) blank=all

iso:
    echo "deleting ~ files:"
    @find $(BASE) -name "*~" -exec rm {} \;
    echo "creating iso file:"
    @mkisofs -r -o $(ISO) $(OPTIONS) $(BASE)
    @echo
    ls -al $(ISO)

burn:
    cdrecord -v dev=$(DEV) speed=$(SPEED) $(ISO)

Dosyadaki içerleme TAB tuşuyla yapılmalıdır. Bunun için sakın boşluk kullanmayın!

Daha önce de söylediğim gibi Makefile dosyasının CD dizin yapısı içinde bir yere yerleştiriyoruz. "/data/mboot/toolcd/scripts" gibi bir dizin iyi olur. Bunu sembolik bağlantı ile "/data/mboot/Makefile" olarak bağlayacağız:
# cd /data/mboot
# ln -s toolcd/scripts/Makefile Makefile

Açılış diskleri ve virüs tarayıcıları gibi değişiklikler yapıldıktan sonra, yeni bir CD oluşturmak için, "mboot/" dizinindeyken sadece aşağıdaki basit üç komutu çalıştırmanız yeterlidi:
# make blank
# make iso
# make burn
Bu daha iyi, öyle değil mi?  

Daha fazla açılış diskleri

Daha fazla açılış disklerini kendi bilgisayarınızda veya İnternette bulabilirsiniz. Ancak, İnternet'ten indirdiğiniz diskte gerçekten nelerin olduğunu bilemeyeceksiniz. Bu yüzden, belli bir açılış diski kullanmak istediğinizde, bununla ilgili birilerininin sorun yaşayıp yaşamadığını google gibi İnternet arama motorlarından yararlanmakta yarar vardır. Ayrıca, bu diski bir virüs taramadan geçirmeniz de iyi olur.

Bazı açılış disklerini www.bootdisk.com sanaldoku yöresinden aldım. Diskler İngilizce olup, çoğunda CD desteği vardır. CD'den bir virüs taraması veya BIOS güncellemesi yapabilirsiniz. Küçük yer kaplayan ve böylece bir BIOS yükleyicisi için yeteri kadar yer sağlayan "drdflash" açılış imgesini gerçekten çok beğeniyorum. BIOS yükleyicisine sahip olmak için, Dos'ta "rawrite" Linux'ta da "dd" programını kullanarak birkaç dakika çerisinde bir açılış disk imgesi oluşturmanız yeterli olacaktır. Bir LAN (Yerel Ağ) kutlamasındaydım ve bir grup Linux uzmanının bir BIOS güncelleme açılış disketi oluşturmak için ne kadar zaman harcadıklarını gördüm :-)

Not: "rawrite.exe" programını birçok bilinen Linux dağıtımlarının CD'lerinde bulabilirsiniz.

 

Daha fazla içerik

Elinizdeki 8cm'lik küçük, ama kullanışlı CD ile heryerde kullanabileceğiniz temiz bir açılış disikine sahip oluyorsunuz. CD içerisine bir virüs tarayıcısı neden koymayasınız? Ben, F-Secure adresinden "F-Prot" virüs tarayıcısını seçtim. Hem Linux ve hem de Dos için indirebileceğiniz parasız sürümleri vardır.

Buradaki tek sorun, CD'de yer alan virüs tanımlamalarını güncellemektir. 8cm'lik CD-RW'lardakn söz edildiğini duymuştum, ama satıldığını hiç görmedim. Çok kötü. Başk bir çözüm, 8cm'lik CD'mizden küçük bir Linux sistemi çalıştırmak ve virüs tanımlamalarını İnternet üzerinde indirmektir.

F-Prot ile ilgili aşağıdaki iki sorunla karşı karşıya geldim:

Sorunlara hızlı çözümüm, ikili dosyayı 'fprot' adında kopyalamak oldu :).

Yazının bundan sonraki kısmı bir Linux dağıtımının CD'mize uyarlanması ile ilgili olacaktır. Böylece, her tür acil durumda kullanabileceğimiz sihirli bir araca sahip olacağız.

 

Knoppix'i uyarlamak

Eğer, henüz Knoppix'i bilmiyorsanız, ona bir göz atın derim! Bu 2-3 GB'lik yazılım içeren ve 650MB'lik tek bir CD'den doğrudan çalışan ve çeşitli donanım algılama araçlarıyla donatılmış bir Linux sistemidir. Ancak, bizim küçük CD'mize sığmamaktadır.
Ancak, hemen ağlamaya başlamayın, çünkü knoppix'i veya onun türevi olan başka bir sistemi yeniden oluşturmak olasıdır. Gereksinimleriniz, temel Debian bilgisi ile diskinizde daha fazla yerdir.

2-3GB'lik yazılımları 650MB'lik bir CD'ye yerleştirebilmek için, Knoppix biraz sihirden yararlanmaktadır: Dosya sistemi "/KNOPPIX/KNOPPIX" adındaki bir dosya olarak sıkıştırılmış biçimde saklanmakta ve açılış disketi diski ( Aslında bu, "mkisofs" programını "-b" seçeneği ile çalıştırıldığında kullanılan açılış disk imgesi içeriğinin bulunduğu dosyadır.) ile sistemin açılışında init süreci tarafından sisteme bağlanmaktadır.

Knoppix CD'sinde "/KNOPPIX" dizininde bulunan ve Knoppix CD'si yaratılmasında kullanılan açılış diski imgesi "boot.img" dosyasıdır.

Knoppix'in veya Linux'un açılış sürecinin çalıştığını anlayabilmek için, Knoppix açılış diski imgesini loop aygıtı aracılığı ile sisteme bağlamanızı öneririm. Daha fazla bilgi edinebilmek için, İnternet'te "bootdisk howto" (açılış diski nasıl belgesi) araması yapın. Disk imgesinde bulabileceğiniz dosyalardan biri ".gz" uzantılı olan ve içinde dosya sistemi imgesi olan sıkıştırılmış bir dosyadır. Bu, sistemin açılış sürecinin başlarındaki ilk ramdisk (Geçici bellekteki disk) olan ramdisk dosya sistemidir.

Knoppix açılışı sırasında olanlar şunlardır: ISO dosyasına yazılmış olan "boot.img" dosyası, ilk ramdiski yükleyecek olan Linux çekirdeğini taklitlendirilmiş disket diskinden yüklemektedir. linuxrc süreci "cloop.o" sürücü modülünü yüklemekte ve bağlı tüm sistemlerde "/KNOPPIX/KNOPPIX" dosyasını aramaktadır. Evet, buna göre sıkıştırılmış Knoppix'i diskinizden yüklemek olası olmalıdır. Ama ben bunu hiç denemedim.
Sıkıştırılmış dosya sisteminin olduğu aygıtı bulur bulmaz, sisteme bağlamakta ve donanım algılamalar gibi diğer şeyler başlamaktadır.

Disket diski "boot.img" için nereden (aygıttan, taklitlendirmeden vs) açıldığının önemi yoktur. Dolayısıyla onu çoklu açılış CD'mize uyarlamamamız kolay sayılır: "boot.img" dosyasını "images/" dizinine kopyalayın ve "bscript.ini" dosyasına bir tuş (hot key) ekleyin.

 

Knoppix'i ayarlamak

Knoppix asıl CD'sinin sığası bizim 8cm'likten CD'den çok fazladır. Unutmayın ki bizim sığamız sadece 183MB'dir. Bir sürü şeyi silmemiz gerekir, bu da çok iş demektir. Başkasının yaptığı bir çalışmadan neden yararlanmayalım? Knoppix uyarlamaları sayfasında, asıl Knoppix'in değiştirilmiş sürümleri vardır. Bunlardan bazılarının boyutları sıkıştırılmış olarak 50 ila 60 MB'ye kadar olmaktadır. Ben, "Model_k" seçtim. Bundan kullanıcı grafik arayüzü yok ve İngilizce dışındaki dil desteği yoktur. Belkide "Damn Small Linux" daha iyidir...

Ben, yeniden uyarlama sürecini çok ayrıntılı olarak açıklayan Sunil Thomas Thonikuzhiyil tarafından yazılmış kılavuzdan yararlandım. Açılış çekirdeği ve ramdisk'i değiştirmek istiyorsanız, kılavuzu okumanızı öneririm. Ama bizim küçük CD'miz için, "Model_k" veya benzer küçük sistemler için bütün bu işlemlere genelde pek gerek kalmaz.

Knoppix'in uyarlamasını gerektiren şey, onun tam çalışan bir Debian sistemi olduğu için yazılabilir bir dosya sistemine gerek duymasıdır, ama bizim CD'miz sadece okunabilirdir:) Uyarlama sırasında en çok yapılan işlem paket yüklemek ve kaldırmaktır. Çok fazla bir sihir yok.

Knoppix sistemini değiştirebilmek için önce onu açmak veya çalıştırmak gerekir. Ondan sonra aşağıdaki adımların yapılması gerekir:

Yeni sıkıştırılmış dosya sistemi "/KNOPPIX/KNOPPIX" olarak CD'mizin dizin yapısı içerisine kopyalanması gerekir. Knoppix'in açılış süreci bu dosyayı burada bulması gerekir.

Şimdi Knoppix'i çalıştırın ve...:

Bir veri alanını sisteme bağla ve dosyaları kopyala:
# mkdir /1
# mount -t ext2 /dev/hda<n> /1
# cp -Rp /KNOPPIX /1

Sıkıştırılmamış ve yazılabilir ortamına geçin:
# chroot /1/KNOPPIX
# mount -t proc /proc proc

Ağ'ınızı yapılandırın:
# (Ağ'da DHCP sunucusu yoksa, ifconfig komutunu kullanarak ağ
# yapılandırılması yapın.)
# (DHCP yoksa, ad sunucusunu (nameserver) belirleyin.
# "/etc/resolv.conf" bağlantısını kaldırın ve kendi dosyanızı oluşturun.)

Paketleri yükleyin veya kaldırın:
# apt-get install joe   (Model_k 1.2 comes without editor :) )
# ...

Hazır olunduğunda, sistemden çıkın:
# (Eğer, /etc/resolv.conf dosyasını değiştirdiyseniz, onu silin ve
# sembolik bağlantıyı ekleyin.)
#
# umount /proc
# exit


Şimdi bu dosya sistemini sıkıştırmalıyız. Açılış süreci "/KNOPPIX/KNOPPIX" dosyasını "cloop" ile bağlamaktadır. "loop" komutunun dosya sistemi bağlamada kullanıldığını biliyoruz. "cloop" ise, "loop" un sıkıştırma ve açma özelliğine sahiptir. Dolayısıyla, "mkisofs" ile bir dosya sistemi yaratmalı ve knoppix'in aşağıdaki özel programla onu sıkıştırmalıdır:
"create_compressed_fs":

# mkisofs -R /1/KNOPPIX | create_compressed_fs - 65536 > /1/KNOPPIX.2
Görüldüğü gibi "mkisofs" komutunun çıktısını doğrudan sıkıştırma aracına yönenlidiyoruz. Asıl KNOPPIX dosyanızın bkopyasını almayı unutmayın ve oluşan "KNOPPIX.2" dosyasını CD dizin yapısındaki "KNOPPIX/KNOPPIX" dosyası olarak kopyalayın. Şimdi yeni bir CD'ye yazın ve "yeni" knoppix türevi sisteminizi bir deneyin.

 

Sonuç

Çeşitli durumlarda bize yardımcı olacak çoklu açılışlı CD yaratmanın uygun araçlar kullanıldığında çok da zor olmadığını gördük. Biz tekerleyi yeniden keşif etmedik, tersine başkalarının keşif ettiği tekerlekleri kullandık ve biraz da sihir kattık.

Herşeyi CD'ye yerleştirdik. Böylece, gerektiğinde sadece CD'deki verileri kullanarak CD yeniden uyarlanabilir.

Umarım küçük yazım hoşunuza gitmiştir.

Görüşmek üzere!

 

Bu yazı için görüş bildiriminde bulunabilirsiniz

Her yazı kendi görüş bildirim sayfasına sahiptir. Bu sayfaya yorumlarınızı yazabilir ve diğer okuyucuların yorumlarına bakabilirsiniz.
 talkback page 

<--, Bu sayının ana sayfasına gider

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

2004-07-18, generated by lfparser version 2.43