Random Tech Thoughts

The title above is not random

Linux Initial Ramdisk 以及启动过程

推荐一篇 IBM developerworks 上的文章,Linux initial RAM disk (initrd) overview,很详细一篇介绍,包括了内核里哪些函数涉及到启动过程。另外 man initrd 也有相关的介绍。

不过文章的内容已经有点过时,内核启动过程调用的函数发生变化,默认执行的 initrd 里的程序也从 /linuxrc 变成 /init。另外现在 Linux 发行版大多用 cpio 格式的 initrd),这篇文章介绍的是 ext2 格式的。如何提取和创建 cpio 格式的 initrd 可以参考下面这篇文章 Debian Lenny 5.0.1 PXE initrd update,主要的命令如下:

# 提取
zcat ../initrd.gz | cpio -iv
# 创建
find . -print0 | cpio -0 -H newc -ov | gzip -c > ../initrd.gz

如果有 Linux 内核源码的话还可以参考 Documentation/initrd.txt,里面有启动过程的介绍和创建和提取 initrd 的说明,内容比 man initrd 更详细,不过也有一点过时。

Comments