计算机启动后,BIOS会先进性POST自检(Power On Self Test ),自检通过后会将MBR主引导记录加载至内存,MBR会查找活动分区上的次引导加载程序GRUB至内存,GRUB根据用户选择,加载相应的内核映像,在内核引导的过程中,会加载必要的系统模块,用以挂载根文件系统,内核启动完成后,会启动init进程,并将引导控制权交由init进程,init进程会加载/etc/fstab中所设置的所有文件系统,并根据/etc/inittab来执行相应的脚本进行系统初始化,至此,linux启动完毕,用户可以登录。
、
MBR是一个512字节大小的扇区,位于硬盘第一个扇区,:
dd if=/dev/sda of=tmp bs=512 count=1
次引导加载程序也叫内核加载程序,一旦被加载到内存中,会显示GRUB图形界面,用户可以选择相应内核,如果不选择,5秒后会启动grub.conf中配置的默认操作系统。
GRUB配置文件:
/boot/grub/grub.conf
#boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS 6 (2.6.32-504.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-504.el6.x86_64 ro root=UUID=b62a7ae8-ed63-4f26-842a-37ef9efa96e4 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet initrd /initramfs-2.6.32-504.el6.x86_64.img
default:GRUB默认启动的操作系统,从0开始
timeout:默认等待时间
splashimage:背景图片
hiddenmenu 隐藏启动菜单,超过等待时间后,GRUB会自动启动默认系统,在此期间内,按下任意键可进入系统选择菜单
title:至下一个title选项前的内容都是用于设置同一操作系统,title设置GRUB中的名称,root内核所在磁盘分区,kernel内核文件名称,ro表示只读。
内核文件命名格式:
/boot/vmlinuz-2.6.32-504.el6.x86_64
内核取得控制权后会首先检测硬件设备,其次内核映像并不是一个可执行的内核,而是经过压缩的内核映像,药对自身解压,同时加载必要的驱动。3,初始化与文件系统相关的虚拟设备,如:LVM或软RAID。4,装在根文件系统,并挂载到根目录下,5,完成引导后,会在其进程空间加载init程序,并将控制权交由init进程,由init进程继续完成系统引导工作
init进程是linux所有进程的起点,内核完成引导后便会加载,进程号为1,init进程启动后,会初始化操作系统,并启动特定的运行级别下的自动运行程序。
init进程对应的执行文件:/sbin/init,是系统所有进程的发起者和控制者,所有进程都由它衍生,如果init出现问题,系统中其他进程也会随之受影响。
init进程作用:
1,作为所有进程的父进程参照对象
2,运行不同级别的程序
init进程取得控制权后,首先会执行/etc/rc.d/rc.sysinit脚本,接着会执行/etc/inittab脚本,该脚本定义了linux运行级别,及每个级别对应的引导步骤。
# Default runlevel. The runlevels used are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:3:initdefault:
0:关机,1:单用户模式,2:多用户但没有NFS服务,3:完整多用户模式,4:未使用,5:图形界面,6:重启
具体运行哪个级别是有id<>:initdefault定义的,每个级别运行的服务脚本文件都分别存放在7个名为/etc/rc.d/rcN.d的目录下。