linux 启动流程详解

linux 启动流程详解

ID:40749623

大小:37.50 KB

页数:5页

时间:2019-08-07

linux 启动流程详解_第1页
linux 启动流程详解_第2页
linux 启动流程详解_第3页
linux 启动流程详解_第4页
linux 启动流程详解_第5页
资源描述:

《linux 启动流程详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一、从哪里到哪里本文旨在描述linux中内核如何调用启动,然后如何从img的文件系统切换到硬盘的过程。描述起于:linux-2.6.11/init/main.c中函数staticintinit(void*unused)描述止于:/etc/rc.d/rc.sysinit文件的被调用二、描写流程在linux代码linux-2.6.11/init/main.c中init这个函数被调用时,初始启动的文件系统镜像:/boot/initrd-2.6.11.12.img(以2.6.11.12内核为例)已被grub加载到内存中,并已挂载到根目录上("/")。1、我们先来看

2、看initrd-2.6.11.12.img到底是个什么东西:[root@wj-server1tmp]#cd/tmp[root@wj-server1tmp]#cp/boot/initrd-2.6.11.12.img/tmp/initrd-2.6.11.12.gz[root@wj-server1tmp]#gunzipinitrd-2.6.11.12.gz解压缩后的文件为:[root@wj-server1tmp]#ls-linitrd-2.6.11.12-rw-r--r--  1rootroot846848  7月3117:01initrd-2.6.11.12是

3、一个CPIO格式的文件,该文件格式是种文件镜像让我们将它解开到一个目录中看看其中的具体内容:[root@wj-server1tmp]#mkdirinitrd[root@wj-server1tmp]#cdinitrd[root@wj-server1initrd]#cpio-i  ../initrd-2.6.11.121654blocks[root@wj-server1initrd]#gzip../initrd-2.6.11.12[root@wj-server1initrd]#mv../initrd-2.6.11.12.gz../initrd-2.6.11.1

4、2.img2、回到内核init函数中,看看如何调用/boot/initrd-2.6.11.12.img中/init脚本的  ....//这里判断在grub装载的/boot/initrd-2.6.11.12.img中是否有"/init"这个文件?if(sys_access((constchar__user*)"/init",0)==0)  execute_command="/init"else  ....//如果有"/init"这个文件就先运行它。if(execute_command)  run_init_process(execute_command);r

5、un_init_process("/sbin/init");run_init_process("/etc/init");run_init_process("/bin/init");run_init_process("/bin/sh");panic("Noinitfound.Trypassinginit=optiontokernel");由代码我们看到kernel会先判断并运行/boot/initrd-2.6.11.12.img中的/init文件,我们来看看该/boot/initrd-2.6.11.12.img/init文件的内容,我们上面已将该文件展开到目

6、录/tmp/initrd中:[root@wj-server1initrd]#cat./init#!/bin/nash    #该文件是个nash的脚本文件#挂接proc文件系统mount-tproc/proc/proc#不输出nash调试信息,由/proc/cmdline决定,cat/proc/cmdline我的启动参数#输出roroot=/dev/hda3vga=791splash=silent,如果该命令行中带了quiet参#数,则不输出nash提示信息。setquiet#提示信息(这里提示因该放到上面去,mkinitrd-4.2.17-2mgc.rp

7、m包中原来如是,#笔误?为什么这里牵涉到mkinitrd这个包类?因为:/boot/initrd-2.6.11.12.img#文件由下面命令生成:mkinitrd/boot/initrd-2.6.11.12.img2.6.11.12)echoMounted/procfilesystem#挂接sys文件系统echoMountingsysfsmount-tsysfs/sys/sys#创建/dev临时目录echoCreating/devmount-omode=0755-ttmpfs/dev/dev#创建设备文件(这些设备文件在切换到硬盘后,由/etc/rc.sy

8、sinit中start_udev#重新创建)mknod/dev/c

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。