Provided by:
manpages-tr_1.0.5.1-1.1_all 
İSİM
initrd - önyükleyici ilklendirmeli RAM disk
AÇIKLAMA
/dev/initrd özel dosyası bir salt-okunur blok aygıtıdır. /dev/initrd
aygıtı çekirdek başlatılmadan önce ön yükleyici tarafından
ilklendirilen (yüklenen) bir RAM disktir. Çekirdek iki dönemden oluşan
açılış süreci için /dev/initrd blok aygıtının içeriğini kullanabilir.
Açılış işleminin ilk döneminde çekirdek çalışır ve /dev/initrd
(önyükleyici tarafından ilklendirilmiş RAM disk) içeriğinden başlangıç
kök dosya sistemini bağlar. İkinci dönemde ise bu başlangıç kök dosya
sisteminin içeriğinden ek sürücüler veya diğer modüller yüklenir. Ek
modüller yüklendikten sonra yeni bir kök dosya sistemi (yani, normal
kök dosya sistemi) farklı bir aygıttan bağlanır.
AÇILIŞ İŞLEMİ
initrd ile açılış sırasında açılış süreci şöyle gelişir:
1. Önyükleyici çekirdeği ve /dev/initrd'nin içeriğini belleğe yükler.
2. Çekirdek çalışmaya başlayınca, çekirdek kendinin sıkıştırmasını
çözüp /dev/initrd aygıtının içeriğini /dev/ram0 aygıtına
kopyaladıktan sonra /dev/initrd tarafından kullanılan belleği
serbest bırakır.
3. Çekirdek, başlangıç kök dosya sistemi olarak /dev/ram0'ı
okunabilir-yazılabilir bağlar.
4. İstenen normal kök dosya sistemi zaten başlangıç kök dosya sistemi
ise (yani /dev/ram0) çekirdek son açılış adımına atlar.
5. Başlangıç kök dosya sisteminde /linuxrc çalıştırılabilir dosyası
varsa, /linuxrc 0 kullanıcı kimliği ile çalıştırılır. (/linuxrc
dosyası çalıştırılabilirlik iznine sahip olmalıdır. /linuxrc
dosyası bir betik ya da geçerli çalıştırılabilir bir dosya
olabilir.)
6. /linuxrc çalıştırılmazsa ya da /linuxrc sonlandığı zaman normal kök
dosya sistemi bağlanır. (Başlangıç kök dosya sistemine bağlanmış
dosya sistemleriyle /linuxrc çıkış yaparsa çekirdeğin davranışı
BELİRSİZDİR. (Çekirdeğin mevcut davranışı için NOTLAR bölümüne
bakınız.)
7. Normal kök dosya sisteminde /initrd dizini varsa, /dev/ram0, / den
/initrd'ye taşınır. Aksi takdirde, /initrd dizini yoksa, /dev/ram0
sistemden ayrılır. (/dev/ram0, / den /initrd'ye taşındığı zaman
sistemden ayrılmaz ve böylece /dev/ram0 üzerinde çalışmakta olan
süreçler çalışmaya devam edebilir.) Normal kök dosya sisteminde
/initrd dizini yoksa ve /dev/ram0 üzerinde hala çalışan süreçler
varsa çekirdeğin davranışı BELİRSİZDİR. (Çekirdeğin mevcut
davranışı için NOTLAR bölümüne bakınız.)
8. Normal kök dosya sistemi üzerinde olağan açılış işlemi (yani
/sbin/init çağrısı) uygulanır.
SEÇENEKLER
Aşağıdaki önyükleyici seçenekleri initrd ile kullanıldığı zaman
çekirdeğin açılış işlemi etkilenir:
initrd=dosya-ismi
/dev/initrd'nin içeriği olarak yüklenecek dosyayı belirtmek
içindir. LOADLIN için bu bir komut satırı seçeneğidir. LILO için
bunu /etc/lilo.conf dosyasında kullanabilirsiniz. Bu seçenekle
belirtilen dosya ismi genellikle gzip'li dosya sistemi eÅŸlemi
olacaktır.
noinitrd
Bu önyükleme seçeneği açılış işleminin iki dönemini iptal eder.
Çekirdek, /dev/initrd ilklendirilmemiş gibi olağan açılışı
gerçekleştirir. Bu seçenekle, önyükleyici tarafından belleğe
yüklenen /dev/initrd'nin içeriği korunur. Bu seçenek
/dev/initrd'nin içeriğinin herhangi bir veri olmasına izin
verir, dosya sistemi eşlemi olması gerekmez. Bu durumda
/dev/initrd aygıtı salt okunurdur ve sistem açıldıktan sonra da
salt okunur olarak kalabilir.
root=aygıt-ismi
Normal kök dosya sistemi olarak kullanılacak aygıt ismi
belirtilir. LOADLIN için bu bir komut satırı seçeneğidir. LILO
için bunu /etc/lilo.conf dosyasında kullanabilirsiniz. Bu
seçenekle belirtilecek aygıt, kök dosya sistemi olarak elverişli
ve bağlanabilir bir aygıt olmalıdır.
NORMAL KÖK DOSYA SİSTEMİNİN DEĞİŞTİRİLMESİ
Öntanımlı olarak, normal kök dosya sistemi için, çekirdeğin ayarları
(rdev ile çekirdek dosyasında yapılan ayarlar ya da çekirdek dosyası
içinde derlenmiş ayarlar) ya da önyükleyici seçenekleri ile yapılan
ayarlar kullanılır. Bir NFS üzerinden bağlı normal kök dosya sistemi
için, nfs_root_name ve nfs_root_addrs önyükleyici seçenekleri NFS
ayarları olarak kullanılır. Bir NFS üzerinden bağlı normal kök dosya
sistemi ile ilgili daha fazla bilgi edinmek için çekirdek belgeleri
arasında bulunan nfs-root.txt dosyasına bakınız. Kök dosya sistemi
ayarları ile ilgili daha fazla bilgi edinmek için ise LILO ve LOADLIN
belgelerine bakınız.
Ayrıca normal kök dosya sisteminin değiştirilmesi /linuxrc
çalıştırılabiliri ile de mümkündür. Bunun için /proc bağlanmış
olmalıdır. /proc bağlandıktan sonra /linuxrc,
/proc/sys/kernel/real-root-dev, /proc/sys/kernel/nfs-root-name ve
/proc/sys/kernel/nfs-root-addrs proc dosyalarına yazarak normal kök
aygıtını değiştirir. Bir fiziksel kök aygıtı, /linuxrc tarafından yeni
kök dosya sisteminin aygıt numarası /proc/sys/kernel/real-root-dev
içine yazılarak değiştirilir. Bir NFS kök dosya sistemi ise, /linuxrc
tarafından yeni kök dosya sisteminin NFS ayarları
/proc/sys/kernel/nfs-root-name ve /proc/sys/kernel/nfs-root-addrs
dosyalarına yazıldıktan sonra /proc/sys/kernel/real-root-dev dosyasına
0xff (sanal NFS aygıt numarası) yazılarak değiştirilir. Örneğin
aşağıdaki kabuk komutu normal kök aygıtını /dev/hdb1 olarak
deÄŸiÅŸtirecektir:
echo 0x365 >/proc/sys/kernel/real-root-dev
Bir NFS örneği olarak, IP numarası 193.8.232.7 ve ismi `idefix' olan
bir sistem için 193.8.232.7 IP numarasıyla bir yerel ağlı NFS sunucusu
üzerindeki /var/nfsroot NFS dizinini normal kök dosya sistemi olarak
deÄŸiÅŸtirecek kabuk komutu:
echo /var/nfsroot >/proc/sys/kernel/nfs-root-name
echo 193.8.232.2:193.8.232.7::255.255.255.0:idefix \
>/proc/sys/kernel/nfs-root-addrs
echo 255 >/proc/sys/kernel/real-root-dev
KULLANIM
initrd'nin esas oluşturulma sebebi sistem kurulumunda modüler çekirdek
yapılandırmasını mümkün kılmaktı.
Olası bir sistem kurulum senaryosu şöyle olabilir:
1. Önyükleyici uygulaması disketten ya da başka bir ortamdan mümkün en
küçük çekirdekle (yani sadece /dev/ram, /dev/initrd ve ext2 dosya
sistemi desteğiyle) başlar ve başlangıç dosya sisteminin gzipli
sürümü ile /dev/initrd'yi yükler.
2. /linuxrc çalıştırılabiliri normal kök dosya sistemini (1) ve
dağıtım ortamını (2) (CD-ROM, ağ, teyp, vs.) bağlamak için
gerekenleri (aygıt türü, aygıt sürücüsü, dosya sistemi gibi)
saptar.
3. /linuxrc çalıştırılabiliri başlangıç dosya sisteminden gerekli
çekirdek modüllerini yükler.
4. /linuxrc çalıştırılabiliri kök dosya sistemini oluşturur ve
kullanıma sokar (Bu adımda normal kök dosya sistemi henüz eksiksiz
bir sistem deÄŸildir).
5. /linuxrc çalıştırılabiliri /proc/sys/kernel/real-root-dev dosyasına
gerekli değeri yazar ve /proc sistemden ayrılır, normal kök dosya
sistemi ve diğer dosya sistemleri bağlı kalır ve /linuxrc
çalışmasını sonlandırır.
6. Bundan sonra çekirdek normal kök dosya sistemini bağlar.
7. Artık normal kök dosya sistemi kullanıma hazırdır, yani önyükleyici
kurulabilir.
8. Sistemi açmak için kullanılacak modüllerle birlikte bir dosya
sistemini /dev/initrd'ye yükleyecek önyükleyici yapılandırılır
(Yani, /dev/ram0 aygıtı değiştirilebilir, sonra sistemden ayrılıp
son olarak /dev/ram0 içindeki eşlem bir dosyaya yazılabilir).
9. Sistem artık açılabilir hale gelmiştir ve ek kurulum işlemlerine
devam edilebilir.
Yukarıdaki senaryoda /dev/initrd'ye düşen anahtar rol, çekirdeği
yeniden derlemeden, büyük bir çekirdek kullanmak zorunda kalmadan hatta
bir başlangıç çekirdeği seçilmesi bile gerekmeden normal sistem
işlemleri sırasında kullanılan yapılandırma verilerinin yeniden
kullanılabilirliğini sağlamaktır.
Bir ikinci senaryo da tek bir yönetim ağında farklı donanım
yapılandırmalı sistemler üzerinde çalışan Linux kurulumları içindir.
Böyle durumlarda, küçük bir çekirdek ailesi (ideal olarak bir çekirdek)
kullanılması ve yapılandırmaya ilişkin sisteme özel yapılandırmaların
mümkün olduğu kadar küçük tutulması istenebilir. Bu durumda, ihtiyaç
duyulan tüm modülleri içeren bir dosya oluşturulur. Bundan sonra sadece
/linuxrc dosyası veya /linuxrc tarafından çalıştırılan bir dosya farklı
olabilirdi.
Bir üçüncü senaryo kurtarma diskleri için daha elverişlidir. Kök dosya
sisteminin disk bölümünün yeri gibi bilgiler önyükleme sırasında
gerekli olmadığından bunun için, /dev/initrd'de yüklü sistem bir olası
sağlamlık sınamasından sonra özdevimli algılama ya da bir diyalog
kullanabilir.
Son ama en az kullanılanlardan biri olmayan bir senaryo da CD-ROM'dan
kolay kurulum için initrd kullanan CD-ROM'lu Linux dağıtımlarının
kullandığı senaryodur. Dağıtım, herhangi bir disket kullanmadan
/dev/initrd'yi doğrudan yüklemek için LOADLIN'i kullanabilir. Dağıtım
ayrıca, bir açılış disketinden LILO kullanıp, /dev/initrd üzerinden
CD-ROM'daki daha büyük bir ram disk'i yükleyebilir.
YAPILANDIRMA
/dev/initrd ana numarası 1, alt numarası 250 olan bir salt okunur blok
aygıtıdır. /dev/initrd genellikle 0400 izinleriyle (sadece root için
okuma izni) root.disk sahipliğindeki bir dosyadır. Linux sisteminde
oluşturulmuş bir /dev/initrd yoksa, aşağıdaki komutlarla
oluÅŸturulabilir:
mknod -m 400 /dev/initrd b 1 250
chown root:disk /dev/initrd
Ayrıca, "RAM disk" ve "başlangıç RAM diski" desteği için destek,
/dev/initrd kullanacak çekirdeğe gömülü olarak (CONFIG_BLK_DEV_RAM=y
ve CONFIG_BLK_DEV_INITRD=y) derlenmiş olmalıdır. /dev/initrd
kullanılırken RAM disk bir modül olarak yüklenemez.
İLGİLİ DOSYALAR
/dev/initrd
/dev/ram0
/linuxrc
/initrd
İLGİLİ BELGELER
chown(1), mknod(1), ram(4), freeramdisk(8), rdev(8), çekirdek
paketindeki initrd.txt dosyası, LILO belgeleri, LOADLIN belgeleri,
SYSLINUX belgeleri.
NOTLAR
1. /dev/ram0, / dan /initrd ye taşınırken bağlı kalan dosya sistemleri
kullanılmakta olan çekirdekle erişilebilir olmaya devam eder. Buna
rağmen /proc/mounts girdileri güncellenmez.
2. /initrd dizini yoksa, kullanılmakta olan çekirdekle, /dev/ram0 hala
bir süreç tarafından kullanılıyorsa ya da üzerinde bağlı bir dosya
sistemi varsa, /dev/ram0 sistemden tamamen ayrılmaz. /dev/ram0
sistemden tamamen ayrılamamışsa bellekte kalacaktır.
3. /dev/initrd kullanıcıları yukarıdaki notlarda belirtilen davranışa
bağımlı olmamalıdır. Bu davranış çekirdeğin gelecekteki
sürümlerinde değişebilir.
YAZAN
initrd aygıtının çekirdek kodu Werner Almesberger <almesber (at)
lrc.epfl.ch> ve Hans Lermen <lermen (at) elserv.ffm.fgan.de>
tarafından yazılmıştır. initrd kodu Linux çekirdeğinin geliştirme
sürümlerinden 1.3.73 sürümünde çekirdek kaynak koduna dahil edilmiştir.
ÇEVİREN
Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>, Kasım 2003