目录
2.2 MBR 引导:运行放在MBR扇区里的启动GRUB引导程序。
2.3 GRUB 菜单:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置以及路径位置。
2.4 加载Linux内核:把内核和镜像文件系统加载到内存中。
2.5 init 进程初始化:加载硬件驱动程序,内核把init进程加载到内存中运行。
4.2 备份MBR扇区数据到其它磁盘( /dev/sdb1)
4.4 引导界面进入急救模式,从备份文件中恢复MBR扇区数据先加载好光盘镜像
4.5 进入shell界面,挂载带有备份的分区,静备份的数据恢复到损坏的硬盘中,并重启
4.1 重新启动客户机,按ESC进入急救模式,点击CD-ROM Drive,进入光驱模式
5.2 将光标移动linux 开始的行,添加内核参数 rd.break
5.3 按ctrl-x启动,输入代码,如果SELinux是启用的,需要在执行exit操作前执行touch /.autorelabel,如查没有启动,不需要执行touch /.autorelabel
1、service unit file文件通常由三部分组成:
2、runlevel命令 只能查看切换运行级别与当前运行级别
一、Linux操作系统引导过程
1、引导过程总览
2、引导过程详解
2.1 开机自检:硬件设置检查,移交系统控制权
服务器主机开机以后,将根据主板BIOS中的设置对CPU、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘,因为操作系统一般都是装在硬盘内
总结:检测出第一个能够引导系统的设备,比如硬盘或光驱
2.2 MBR 引导:运行放在MBR扇区里的启动GRUB引导程序。
当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR(主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据MBR记录中的引导信息调用启动菜单。例如:GRUB等
总结:运行放在MBR扇区里的启动GRUB引导程序
2.3 GRUB 菜单:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置以及路径位置。
对于Linux操作系统来说,GRUB(统一启动加载器)是使用最为广泛的多系统引导器程序,系统控制权传递给FRUB以后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载Linux内核文件,然后将系统控制权转交给内核。
GRUB启动阶段
- primary boot loader :
1st stage.…MBR的前446个字节引导硬件去找内核
5 stage:..MBR 之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统
- secondary boot loader : 2nd stage,分区文件/boot/grub2/grub.cfg
(CentOS 7采用的是GRUB2启动引导器)
总结:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置
2.4 加载Linux内核:把内核和镜像文件系统加载到内存中。
Linux内核是一个预先编译好的特殊二进制文件,介于各自硬件资源与系统程序之间,复制资源分配与调度,内核接过系统控制权以后,将完全掌控整个Linux操作系统的运行过程。
(在CentOS系统中,默认的内核文件位于“/boot/vmlinuz-3.10.0-514.e17.x86_64”)
总结:把内核和镜像文件加载到内存中
2.5 init 进程初始化:加载硬件驱动程序,内核把init进程加载到内存中运行。
为了完成进一步的系统引导过程,Linux内核首先将系统中的“/sbin/init”程序加载到内存中运行(运行中的程序称为进程),init进程负责完成整个系统的初始化,最后等待用户进行登录。
总结:加载硬件驱动程序,内核把init进程加载到内存中运行
3、系统初始化进程
3.1 init 进程 (串行启动)
- 由Linux内核加载运行/sbin/init程序;
- init进程是系统中第一个进程,是所有进程的父进程;
- init进程的PID(进程号)号永远为1.
3.2 Systemd 可以代替服务监听 (并行启动)
- Systemd是Linux操作系统的一种init软件;(centos7的第一个进程是systemd,centos6以及之前的第一个进程是init)
- CentOS 7中采用权限的Systemd(并行启动服务进程)启动方式,取代传统的SysVinit(串行执行shell脚本启动服务);
- CentOS 7中运行的第一个 init进程是/lib/systemd/systemd
- 传统sysVinit依赖于串行执行Shell 脚本启动服务,导致效率低下,系统启动速度较慢
- systemd能够将更多的服务进程并行启动,并且具有提供按需启动服务的能力,使得启动更少进程,从而提高系统启动速度
4 Systemd 单元类型
单元类型 |
扩展名 |
说明 |
---|---|---|
Service |
.service |
描述一个系统服务(给他人提供服务) |
Socket |
.socket |
描述一个进程间通信的套接字(双向的,ip地址,端口号) |
Device |
.device |
描述一个内核识别的设备文件(硬件设备) |
Mount |
.mount |
描述一个文件系统的挂载点 |
utomount |
.automount |
描述一个文件系统的自动挂载点 |
Swap |
.swap |
描述一个内存交换设备或交换文件(交换分区文件) |
Path |
.path |
描述一个文件系统中文件或目录(描述一个文件的路径) |
Timer |
.timer |
描述一个定时器(用于实现类似cron的调度任务) |
Snapshot |
.snapshot |
用于保存一个systemd的状态 |
Scope |
.scope |
使用systemd的总线接口以编程的方式创建外部进程 |
Slice |
.slice |
描述居于Cgroup的一-组通过层次组织的管理系统进程 |
Target |
.target |