Linux启动过程

本文发布时间: 2019-Mar-22
Linux系统引导过程简图 开机自检:服务器开机后,将根据主板的BIOS中的设置对CPU、内存、显卡、键盘等设备进行初步探测,探测成功后将控制权交由硬盘控制。MBR引导(446):当硬盘接到控制权后,将系统根据MBR分区表,查找系统引导文件所在的分区,或者直接根据MBR记录中的引导信息调用启动菜单。GRUB菜单:GRUB是一个多系统的引导菜单,如果安装了双系统可以在这里选择进入那个操作系统,然后加载内核文件,将控制权转交给内核。加载Linux内核:内核接过控制权以后,将进行驱动的初始化,并且以只读方式挂载根文件系统,装载第一个进程init(PID:1)INIT进程的初始化:INIT进程负责完成一系列的系统初始化过程:配置文件/etc/inittab,根据配置内容首先执行初始化脚本文件/etc/rc.d/rc.sysinit,并通过脚本文件/etc/rc.d/rc控制应该启动那些程序和服务,最后运行终端程序/sbin/mingetty,等待用户登录。GRUB介绍GRUB分为三个阶段 阶段一:装在MBR中,为了引导第二阶段 阶段1.5:引导常见的文件系统 阶段二:引导操作系统GRUB配置文件位于/etc/grubdefault=0//设置默认启动的title的编号timeout=5//等待用户选择的超时时常splashimage=(hd0,0)/boot/grub/splash.xpm.gz//指定grub背景图片的hiddenmenu//隐藏菜单password密码//添加密码password--md5$1$la77x1$Tdm1FD2adjRf7VdufZqlS0//设置加密密码titleRedHatEnterpriseLinuxServer(2.6.18-92.el5)//内核标题或操作系统标题,可自由修改root(hd0,0)//内核文件所在的设备:对grub而言,所有类型的硬盘一律hd;第一个0表示第几个磁盘;最后一个0表示对应磁盘的分区kernel/boot/vmlinuz-2.6.18-92.el5roroot=LABEL=/rhgbquiet//内核文件路径,及传递给内核的参数initrd/boot/initrd-2.6.18-92.el5.img//ramdisk文件路径生成grub加密的密码串,将密码串放入grub文件中可以访问其他人查看grub密码[root@localhostsbin]#grub-md5-cryptPassword:Retypepassword:$1$la77x1$Tdm1FD2adjRf7VdufZqlS0如果GRUB损坏,或被误删除,那么就需要重新安装GRUB安装grub第一阶段grub命令打开grubroot (hd0,0) 指定内核磁盘setup (hd0) 指定安装磁盘安装grub的第二种方式grub-install --root-directory=/内核所在路径的父目录(不需要输入boot目录,会自动寻找) 指定硬盘比如需要将grub安装到/test/boot下grub-install --root-directory=/test/ /dev/sdb如果GRUB被删除后无法进入操作系统grub> find //如果有多块磁盘可以使用find探测根在那里grub>root (hd#,N) //指定根所在的磁盘grub>kernet /PATH/TO/KERNEL_FILE //指定内核文件路径grub>initrd /PATH/TO/INITRD_FILE //指定initrd文件路径grub>boot //启动系统启动系统后创建一个grub文件,下次在启动系统就不需要手动输了INIT介绍init定义的运行级别 0:关机 1:单用户模式,直接登录管理员,不用输入密码 2:多用户模式,网络功能,禁用nfs文件系统 3:字符界面的多用户模式,大多数服务器主机运行在此级别 4:保留,级别 5:图形多用户,终端模式 6:关机当init程序运行后,将按照/etc/inittab文件指定的配置依次启动系统中对应的脚本和程序。在/etc/inittab文件中,除了以#号开头的注释信息和空行外,没一行都视为一条有效配置记录。每条配置记录中的四个字段之间使用“:”进行分割。格式如下:id:runlevels:action:processid: 标识符,需唯一runlevels: 在哪个级别运行此行;action: 在什么情况下执行此行;process: 要运行程序; 可以是具体的命令、脚本程序等action字段可用参数说明initdefault:设置初始化后系统默认进入的运行级别sysinit:设置系统初始化的操作脚本wait:init进程将等待该行配置所对应的脚本操作完成后,在继续执行其他操作ctrlaltdel:设置当用户按下Ctrl+Alt+Delete组合键后的操作powerfail:设置当系统收到断电信号(使用不间断电源)时采取何种操作powerokwait:设置当系统收到恢复供电信号时采取何种动作respawn:一旦该行配置所对应的进程被终止,则重新启动该进程rc.sysinit脚本文件rc.sysinit是init进程所调用的系统初始化脚本,位于/etc/rc.d/目录下,通过次脚本可以完成以下操作/etc/rc.d/rc.sysinit完成的任务:1、激活udev和selinux;2、根据/etc/sysctl.conf文件,来设定内核参数;3、设定时钟时钟;4、装载键盘映射;5、启用交换分区;6、设置主机名;7、根文件系统检测,并以读写方式重新挂载;8、激活RAID和LVM设备;9、启用磁盘配额;10、根据/etc/fstab,检查并挂载其它文件系统;11、清理过期的锁和PID文件;rc脚本文件rc脚本同样由init进程调用,文件位于/etc/rc.d/rc。rc脚本通过使用不同的级别参数,分别加载及终止不同的系统服务,进入相应的系统级别中。[root@localhost~]#cat/etc/inittab|grep'rc.d/rc'si::sysinit:/etc/rc.d/rc.sysinitl0:0:wait:/etc/rc.d/rc0l1:1:wait:/etc/rc.d/rc1l2:2:wait:/etc/rc.d/rc2l3:3:wait:/etc/rc.d/rc3l4:4:wait:/etc/rc.d/rc4l5:5:wait:/etc/rc.d/rc5l6:6:wait:/etc/rc.d/rc6/etc/rc.d/rc 0到/etc/rc.d/rc 6目录中,保存了一些特殊的符号链接文件,rc脚本根据这些链接文件调用对应的服务控制程序,进行启动或终止相关服务程序的操作。/etc/rc.d/rcX.d目录下的文件具有以下规律。文件名以K或S开头,中间是数字序号,最后是系统中的服务脚本名;对与rc脚本来说,当链接文件的名称以S开头时,表示启动对应服务,而以K开头时表示终止对应的服务,中间的数字表示在启动或终止时执行的顺序。


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:10pm
栏目列表