在阅读有关 ramdisk 的内核文档时 ramfs-rootfs-initramfs.txt我有一个疑问,就像 ramdisk 解释的那样,它与帖子中描述的 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 的呢?
答案1
ramdisk 是一组块,它们被复制到分配的内存块,然后被视为块设备。 ramdisk 上创建了一个普通的文件系统。 initrd(初始ramdisk)是在启动过程中安装的ramdisk。
initramfs 是不同的。它是启动期间加载的文件的 cpio 存档。内核将内容加载到称为 rootfs 的虚拟文件系统中。与 ramdisk 不同,删除文件直接释放内存,并且不涉及额外的文件系统和块层。
这两种方法都会导致文件在启动时在加载任何设备之前可供内核使用,因此实际上您可以使用这两种方法获得类似的结果。较旧的系统使用 initrd(它是在 initramfs 之前创建的),但现代系统应该都使用 initramfs。您可能仍然会看到 initrd 这个词指的是真正的 initramfs;这只是为了兼容性而命名。