红联Linux门户
Linux帮助

使用initrd启动顺序与启动命令选项

发布时间:2007-02-03 10:35:02来源:红联作者:Eulogize
当使用initrd,典型的系统启动顺序如下:

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= (e.g. LOADLIN)

加载特定的文件作为初始的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。
文章评论

共有 0 条评论