Ramdiskとinitrdは同じですか?


10

RAMディスク上のカーネルのドキュメントを介して読み出しながら ramfs-rootfsの-initramfs.txt iはRAMディスクのような疑問を持ったのinitrdがで後に記載されている機能と同じある説明差-間-たinitrdアンドのinitramfs

誰かがこれについて私を明確にできますか?

それが同じである場合、多くの欠点があることを読みましたが、それでも私のfedora PCには、

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

私のブートフォルダ。上記のinitrdとは違いますか?

UPDATE_EDIT:
の中 の記事、私ものようなコマンドを見ました
# update-initramfs -u all
update-initramfs: Generating /boot/initrd.img-2.6.18-5-amd64

では、このinitramfsはどのようにinitrd.imgにリンクされていますか?

回答:


13

RAMディスクは、割り当てられたメモリのチャンクにコピーされ、ブロックデバイスとして扱われる一連のブロックです。通常のファイルシステムがramdiskに作成されます。initrd(初期ramdisk)は、起動時にマウントされるramdiskです。

initramfsは別のものです。これは、起動時に読み込まれるファイルのcpioアーカイブです。カーネルは、rootfsを呼び出す仮想ファイルシステムにコンテンツをロードします。ramdiskとは異なり、ファイルを削除すると直接メモリが解放され、余分なファイルシステムやブロックレイヤーが関与することはありません。

どちらの方法でも、デバイスがロードされる前のブート時にファイルをカーネルで使用できるため、実際には両方で同様の結果を得ることができます。古いシステムはinitrd(ini​​tramfsの前に作成された)を使用しますが、最新のシステムはすべてinitramfsを使用する必要があります。それでも、本当にinitramfsであるものを参照してinitrdという単語が表示される場合があります。互換性のために名前を付けているだけです。


ephemientに感謝します。「ramdiskは一連のブロック」という意味を教えてください。コピーされた後、これはどのようにブロックデバイスとして扱われますか?
2010

@Sen:大量のメモリを割り当て、ブロックデバイスを作成し、ブロックデバイスとの間の要求をメモリ内の読み取り/書き込みにマップするrdモジュール(後でに名前が変更brdされ、カーネルに組み込まれる場合があります)があります。
ephemient

このrd / brdモジュールについてもう少し教えていただけますか?
2010

また、次の手順に従ってRAMディスクイメージを作成した場合は、mke2fs -vm0 / dev / ram 4096; mount -t ext2 / dev / ram / mnt; cd / mnt; cp / bin、/ sbin、/ etc、/ dev ... mnt内のファイル。cd ../; umount / mnt; dd if = / dev / ram bs = 1k count = 4096 of = ext2ramdisk; デバイスでこのext2ramdiskをどのように起動しますか?ラムにロードするだけでうまくいきますか?
セン

@Sen:ブートローダーは、カーネルとinit(rd | ramfs)の両方をRAMにロードします。ブートローダーのドキュメントを参照してください。しかし、手動でビルドしている場合でも(なぜ??)find /bin /sbin /etc /dev ... | cpio -o | gzip -c > initramfs、initrdの代わりに使用する必要があります。
ephemient
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.