码迷,mamicode.com
首页 > 系统相关 > 详细

linux启动

时间:2017-08-21 00:12:04      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:linux   启动   grub   内核   

    计算机启动后,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的目录下。


linux启动

标签:linux   启动   grub   内核   

原文地址:http://applezl168.blog.51cto.com/1160321/1957899

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!