1. boot loader加载内核并初始化ram disk
2. 内核把initrd转化成正常的ram disk 并释放initrd使用的内存
3. initrd作为root被挂载,赋予读写权限。
4. /linuxrc被执行(这可以是任何可执行文件,如脚本,运行在uid 0,可以做任何初始化)。
5. linuxrc挂载真正的根文件系统
6. linuxrc使用pivot_root系统调用把根文件系统放在根目录。
7. 正常的启动序列(/sbin/init)在根文件系统上执行。
8. initrd文件系统被移去。
注意,改变根目录不牵扯卸载他。
挂载在initrd的文件系统仍然可以被访问。
启动命令选项
initrd添加了如下新的选项:
initrd=
加载特定的文件作为初始的ram disk。当使用lilo,你应该在/etc/lilo.conf中指定
ram disk镜像文件位置,使用INITRD变量。
noinitrd
initrd数据被保留却不转化成ram disk,正常的根文件系统被加载。initrd的数据可以 从/dev/initrd中读取。注意,在initrd中的数据可以是任意结构的,不一定要是文件系统镜像。该选项多用于调试。
注意:/dev/initrd是只读的,而且只能被使用一次。只要最后一个进程关闭它,所有的数据将会释放掉,而/dev/initrd将不再被打开。
root=/dev/ram0 (without devfs)
root=/dev/rd/0 (with devfs)
initrd作为根文件系统被挂载,随后正常的启动顺序中,ram disk 仍然作为root。

