linux启动过程

开机的启动流程:

  1. Bios加载:

开机之后系统加载bios(bios是写入到主板的一个韧体即软件,他是计算机开机启动的第一个程序),通过bios加载cmos(CMOS是记录各项硬件参数且嵌入到主板上面的存储器)信息,然后通过cmos设置取得主机的各项硬件配置,cpu信息,系统时间等。之后在进行开机自检,配置PnP(PnP的任务是把物理设备和软件设备驱动程序相配合,并操作设备,在每个设备和它的驱动程序之间建立通信信道)设备,在接下来就进行启动设备的数据读取,即MBR。

  1. 读取MBR:

MBR(masterboot record主引导分区)是可开机设备的第一个扇区内的主引导分区块内含引导加载程序Boot Loader,它是一个可以读取内核文件来执行的软件,他有三个功能:提供菜单,载入内核文件,转交其他loader。第三个就是有趣的就是双系统了,MBR只有一个怎么安装两个系统呢,前面的文件系统就有讲到,每个文件系统或者分区都保留了一块引导扇区(boot sector),这时MBR的引导程序就可以转交给这里的引导扇区,这时就有了引导装载程序grub弹出菜单,然后在进入系统。

grub配置文件: 目录/boot/grub/grub.conf。

四个主要内容: default设置默认第几个内核启动,如果有多个内核0代表第一个以此类推.  timeout在菜单栏等待多久.

Kernel (hd0,0)/vmlinuz-...  ro  root=/dev/vg/lv  

Hd0,0:是指第一块硬盘第一个分区  后面接内核版本

ro s等等参数    root的挂载点

Initrd (hd0,0)/initramfs-..   后面直接跟伴侣文件。

  1. 加载选内核以及伴侣文件:

内核文件(vmlinuz)和伴侣文件(initrd)存储在/boot下面,这时内核被解压缩到内存中,利用内核的功能测试驱动和设备,包括类似于前面bios的检查,但是内核已经取代了bios的位置,接管后面的工作了。内核的功能通过模块来实现,模块可以动态加载(类似与驱动程序)内核选取的模块全部放置在/lib/modules目录中。

伴侣文件本身就是一个系统(解压缩的伴侣文件有根和配置文件各种目录),内核中有些模块没有加载无法开机时,伴侣文件会解压缩成为根目录,然后加载在/lib/modules中的模块。

uname -r 可以查看内核版本呢

modprobe -l 可以查看模块(通过/lib/modules)包括了开机没有加载和加载了的,是内核编译中加入了的。   modprobe直接加模块名可以临时加载模块,但是重启后失效 -r参数是卸载,想要永久加载需要吧模块编译进伴侣文件需要下列命令:

mkinitrd --with=module_name /boot/initrd..(新伴侣文件名) 后面再接内核版本号   创建完成之后要到grub.conf中去添加这个伴侣文件然后重启选择这个启动。                 

lsmod 是查询已经装载的模块

 

  1. 启动init 设置runlevel

Init程序是系统的第一个进程,他的进程号就是1,他的最主要的功能就是准备软件执行的环境,包括系统主机名,网络设置,文件系统     

运行级别: 0-关机  1-单用户模式   2-无nfs的3模式   3-完整功能的命令行模式 4-保留  5-图形界面   6-重启

运行级别存储在/etc/inittab中,该文件rhel56后只用来设置运行级别。  

  1. rc.sysinit系统初始化

它会设置好整个系统环境,通过shell script,包括网络设置,系统时间,内存设备,quota等等很多功能。

  1. 开启rcx.d的服务

它会根据系统设置的runlevel来进入不同的目录夹来启动各种服务,目录夹的文件有几个特点。全是以KS开头,而且全是链接文件,链接的位置是/etc/init.d开启服务的目录夹。S是打开服务K是不打开服务,数字是启动的流程顺序,因为一些服务需要依赖另一些服务,所以会存在先后关系。

可以通过chkconfig命令来操作和查看开机启动服务

Chkconfig --list 可以列举所有的服务开启状态

Chkconfig sshd on 可以开启除016之外所有级别

Chkconfig --levle 2 sshd on 可以自定义级别开启

可以在这里设置自己想开机启动的脚本,写一个脚本放在自己家目录中,然后在这个目录夹中加入一个软连接到脚本,然后设置K可以在开机的时候运行这个程序。数字需要设置大一点,防止影响服务的开启。在服务开启之后就会执行脚本。

  1. 自定义init进程rc.local

可以根据自己的需求在最后环节启动自己的脚本。

他本身就是前面rcx.d中的每个目录夹都存在一个S99local的软连接指向的rc.local所以前面将的自定义服务和放在local类似

直接使用shell即可,不需要什么格式。

  1. 启动X图形界面

如果runlevel是5,则启动图形界面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值