目录
引言
当我们按下开机键的时候,其实已经有很多内部文件在运行了,先自我检查做引导,进行系统初始化。但往往系统出现一些故障,本章就是讲解我们遇到故障的时候怎么处理。
一、linux操作系统引导过程
1、开机自检
服务器主机开机以后,将根据主板BIOS中的设置对CPU、内存、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘。
2、MBR引导
当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR(主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据MBR记录中的引导信息调用启动菜单(如GRUB)
3、GRUB菜单
对于linux操作系统来说,GRUB(统一启动加载器)是使用最广泛的多系统引导程序。系统控制权传递给GRUB以后,将会显示启动菜单给用户选择,并根据所选项加载linux内核文件,然后将系统控制权转交给内核。
4、加载linux内核
linux内核是一个编译好的特殊二进制文件,介于各种硬件资源与系统之间,负责资源分配与调度。内核结果系统控制权以后,将完全掌控整个linux操作系统的运行过程。
5、init进程初始化
为了完成进一步的系统引导过程,linux内核首先将系统中的“/sbin/init”程序加载到内存中运行(
域进行中的程序称为进程),init进程负责完成整个系统的初始化,最后等待用户进行登录。
传统sysvinit依赖于串行执行 Shell 脚本启动服务,导致效率低下,系统启动速度较慢,systemd能够将更多的服务进程并行启动,并且具有提供按需启动服务的能力,使得启动更少进程,从而提高系统启动速度。
二、系统初始化进程
int进程
1、由LINUX内核加载运行/sbin/init程序
2、init进程是系统第一进程
3、init进程的PID(进程标记)号永远为1
Systemd
Systemd是Linux操作系统的一种init软件
Systemd单元类型
Centos7中采用全新的Systemd启动方式,取代传统的SysVinit
Centos7中运行的第一个init进程是/lib/systemd/systemd
2、GRUB2与GRUB的区别
1、支持多种文件系统同格式
2、在grub2中stage1 stage1-5 stage2已经被取消
3、在GRUB2使用模块机制,通过动态加载需要的模块来扩展功能,这样做的好处允许core镜像更小
4、支持自动解压
5、配置文件的不同最明显的。/boot/grub/grub.conf已经被/boot/grub2/grub.cfg代替,即使你用Roor用户也不要编辑,该文件会在每次执行grub2-mkconfig后自动执行/etc/default/grub是改变引导菜单外观的主要配置文件/etc/grub.d/*各种用于生成grub.cfg的脚本文件,每次执行grub2-mkconfig时会执行里面的文件
三、systemctl命令及示例
systemctl status network #查看服务的运行状态
systemctl cat network #查看服务的路径
systemctl start network #启动
systemctl restart network #重启
systemctl reload network #重新加载
systemctl is-active network #查看服务的运行状态
init 0/poweroff 关机
init 6/reboot 重启