Ramdisk ve initrd aynı mı?


10

Ramfs-rootfs-initramfs.txt dosyasında ramdisk ile ilgili çekirdek belgelerini okurken , ramdisk'in açıklamasında initrd -initrd-ve-initramfs arasındaki farkta açıklanan initrd özellikleri ile aynı olduğunu düşünüyordum .

Birisi bu konuda bana açıklık getirebilir mi ??

Ve eğer aynıysa, bunun için birçok dezavantaj olduğunu okudum, ama yine de fedora bilgisayarımda görüyorum

initrd'yi-2.6.29.4-167.fc11.i686.PAE.img

önyükleme klasörümde. Yukarıda belirtilen initrd farklı mı ??

UPDATE_EDIT:
İn makaleleri Hatta böyle bir komut gördü
# update-initramfs -u all
update-initramfs: Generating /boot/initrd.img-2.6.18-5-amd64

Peki bu initramfs initrd.img ile nasıl bağlantılıdır?

Yanıtlar:


13

Ramdisk, ayrılan bir bellek yığınına kopyalanan ve daha sonra bir blok cihazı olarak işlem gören bir blok kümesidir. Ramdiskte normal bir dosya sistemi oluşturulur. İnitrd (ilk ramdisk), önyükleme sırasında monte edilen bir ramdisktir.

Initramfs farklı bir şeydir. Önyükleme sırasında yüklenen dosyaların bir cpio arşivi. Çekirdek, içeriği rootfs olarak adlandırdığı sanal bir dosya sistemine yükler. Ramdisk'ten farklı olarak, dosyaları silmek doğrudan belleği serbest bırakır ve fazladan bir dosya sistemi ve blok katmanı yoktur.

Her iki yöntem de, herhangi bir aygıt yüklenmeden önce dosyaların açılışta çekirdeğe erişmesine neden olur ve böylece pratikte her ikisiyle de benzer sonuçlar elde edebilirsiniz. Eski sistemler initrd kullanır (initramfs'den önce oluşturulmuştur) ancak modern sistemlerin hepsi initramfs kullanmalıdır. Gerçekten initramfs olan bir şeye referans olarak initrd kelimesini görebilirsiniz; sadece uyumluluk uğruna adlandırmak.


Teşekkür ephemient, "Rammisk bir dizi bloktur" ile ne demek istediğinizi bilmek istiyorum. Kopyalandıktan sonra bu nasıl bir blok cihaz olarak ele alınır?
Sen

@Sen: Bir grup belleği ayıran, bir blok cihazı oluşturan ve blok cihazından / cihazdan gelen istekleri bellekte okuma / yazma işlemlerine eşleyen bir rdmodül (daha sonra yeniden adlandırılmış brdve çekirdek içine yerleştirilmiş olabilir) vardır.
ephemient

Bu rd / brd modülü hakkında biraz daha fikir verebilir misiniz?
Sen

ben de bu adımları izleyerek bir ramdisk görüntü oluşturduysanız bilmek istiyorum: mke2fs -vm0 / dev / ram 4096; mount -t ext2 / dev / ram / mnt; cd / mnt; cp / bin, / sbin, / etc, / dev ... dosyaları mnt; cd ../; umount / mnt; dd = = dev / ram bs = 1k sayısı = = ext2ramdisk'in 4096'sı; Bu ext2ramdisk'i cihazımda nasıl önyükleyeceğim? Sadece koça yüklemek, işe yarayacak mı?
Sen

@Sen: Önyükleyici hem çekirdeği hem de init'i (rd | ramfs) RAM'e yüklemekten sorumludur; önyükleyicinizin belgelerine bakın. Ama elle inşa etseniz bile (neden ??) find /bin /sbin /etc /dev ... | cpio -o | gzip -c > initramfsinitrd yerine kullanmalısınız .
ephemient
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.