İlk ramdisk (initrd'yi) tipik olarak bu önyükleme kapalı yatan temel dosya sistemi ve el monte etmek için gerekli olan sadece ihtiva eden bir kök dosya sisteminin sadeleştirilmiş bir versiyonudur.
İnitrd var çünkü modern sistemlerde, önyükleme yükleyicisi kök dosya sistemini güvenilir bir şekilde bulmak için yeterince akıllı hale getirilemez. Önyükleme yükleyicisi gibi küçük bir program için çok fazla olasılık vardır. NFS kökü, standart olmayan RAID kartları vb. Göz önünde bulundurun. Önyükleme yükleyicisinin işini yalnızca BIOS artı önyükleme sektörüne sıkıştırabilecek her türlü kodu kullanarak yapması gerekir.
İnitrd önyükleyici bir yere depolanır olabilir bulmak ve onu alır alanı ekstra bit genellikle kimseyi rahatsız etmediğini küçük yeter. (Küçük gömülü sistemlerde genellikle "gerçek" bir kök yoktur, sadece initrd.)
İnitrd değerlidir: içeriği her koşulda korunmalıdır, çünkü initrd bozulursa sistem önyükleme yapamaz. Tasarımcılarının bunu sağlamak için yaptıkları bir tasarım seçeneği, önyükleyicinin initrd'i salt okunur yüklemesini sağlamaktır. Bu doğru iş de böyle hayır "gerçek" kök yoktur küçük sistemlerde durumunda olduğu gibi yine ayrı monte diğer ilkeler vardır /tmp
, /var/cache
bir şeyler saklamak için ve bu tür. Initrd'ın değiştirilmesi sadece nadiren yapılır ve daha sonra çok dikkatli bir şekilde yapılmalıdır.
Oradaki normal duruma geri alınıyor olan gerçek bir kök dosya sistemi, başlangıçta salt okunur olarak eklendi olduğu initrd'yi çünkü. Daha sonra, aynı nedenlerle mümkün olduğu kadar salt okunur tutulur. Gerçek kök için yapılması gereken herhangi bir yazı, sistem önyükleninceye kadar, tercihe göre veya en azından bu tercih tatmin edilemediğinde önyükleme işleminin sonlarına kadar ertelenir.
Bu salt okunur aşamada gerçekleşen en önemli şey, kök dosya sisteminin temiz bir şekilde kaldırılıp kaldırılmadığını görmek için kontrol edilmesidir. Bu önyükleyici kesinlikle yerine initrd'ye bunu bırakmanın yapabileceği bir şeydir, ancak kök dosya sistemi ise o zaman ne olur değildi ayrılınca temiz? Sonra fsck
kontrol ve muhtemelen düzeltmek için çağırmak gerekir. Peki, nerede olacağını initrd
olsun fsck
yerine "gerçek" köküne atlatma kadar bekleyen bu adımı için sorumlu olsaydı? Sen kopyalamak gerektiğini söyleyebiliriz fsck
içine initrd
bunu oluştururken, ama şimdi daha büyük. Üstelik hangisini fsck
kopyalayacaksınız? Linux sistemleri düzenli olarak bir düzine kadar farklı dosya sistemi kullanır. Sadece gerçek kök için gerekli olanı kopyalar mısınız?initrd
yaratıldı? Kök dosya sisteminin daha sonra başka bir dosya sistemi türüne taşınması ve birisinin initrd'i yeniden oluşturmayı unutması durumunda, initrd
mevcut tüm fsck.foo
programları kopyalayarak boyutunu balonluyor musunuz?
Linux önyükleme sistemi mimarları, initrd'e bu sorunlara yük getirmemeyi akıllıca seçti. Bunu yapmak için initrd'den daha iyi bir konumda olduğundan, gerçek kök dosya sisteminin kontrolünü gerçek kök dosya sistemine devretti.
Önyükleme işlemi güvenli olacağı kadar ilerlediğinde, initrd ile gerçek kökün altından pivot_root(8)
çıkarılır ve dosya sistemi okuma-yazma modunda yeniden monte edilir.