开机启动流程
CentOS 6 启动流程
内核引导
BIOS
加电自检,检测主板上的硬件设备,根据BIOS
设置启动系统- 读取
/boot
分区下,所有内核文件
运行
init
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25sysV:CentOS5之前使用的pid为1的进程
Upstart:CentOS6使用的init进程
Systemd:CentOS7
#加载init,涉及到Linux系统中7个运行级别
0:关机运行级别
1:单用户运行级别(修改root密码)
2:多用户运行级别,没有文件系统
3:多用户运行级别,有文件系统(命令行模式)
4:CentOS6和7 保留,未使用
5:多用户,图形化运行级别
6:重启运行级别(reboot)
#查看Linux系统当前的运行级别
[root@localhost ~]# runlevel
N 3
#运行init,会读取 /etc/inittab配置文件
#读取配置文件中的默认运行级别
#获取当前系统的运行级别
#启动init进程
[root@localhost ~]# systemctl get-default
C6id:3:initdefault:
C7multi-user.target
[root@localhost ~]# systemctl set-default graphical.target系统初始化
1
2
3
4
5
6
7#根据运行级别中设置了开机自启动服务来启动对应服务
C6
[root@localhost ~]# chkconfig --list
C7
[root@localhost ~]# systemctl list-unit-files
[root@localhost ~]# ll /etc/systemd/system/multi-user.target.wants/建立终端
用户登录系统
CentOS 7启动流程
BIOS
(开机自检)
BIOS
加电自检,检测主板上的硬件设备,根据BIOS
设置启动系统读取
/boot
分区下,所有内核文件
MBR
(Master Boot Record
主引导记录)
- 主引导记录放在
linux
引导硬盘的第一个扇区中,此信息通过BIOS
预加载到ROM
中
GRUB2 Bootloader
(引导菜单)
- 加载
grub2
菜单,选择要进入的系统 - 可以选择多系统
Kernel
(内核引导)
- 读取
/boot
目录下所有内核文件
- .
Systemd
(不再使用init
,改成了systemd
)
1 | runlevel0.target -> poweroff.target |
Runlevel-Target
(运行级别)
CentOS7进入单用户模式
忘记root密码
关机
1
2
3
4halt
poweroff
shutdown -h now
init 0开机
进入
gurb2
菜单1
2
3
4
5
6#修改内核参数
selinux
vim /etc/sysconfig/selinux selinux=enforcing ==> selinux=disabled
在linux16行末,写入:enforcing=0 init=/bin/bash
按Ctrl + x修改密码
1
2
3
4
5
6
7
8
9
10
11无法直接修改密码,因为当前/目录是只读状态
#重新挂载/目录
mount -o rw,remount /
#修改密码
passwd root
echo 111 | passwd --stdin root
#重新加载init
exec /sbin/init
修改默认运行级别
关机
进入
grub2
菜单按
e
编辑grub2
菜单的内核参数
1 | Linux16行中 ro改成rw |
- 修改运行级别
1 | #1.重新挂载root权限目录 |
救援模式
进入救援模式
需要有系统盘,才能进入救援模式
要进入安装系统的界面,才能进入救援模式
关机
1
2
3
4init 0
halt
poweroff
shutdown -h now将系统盘放入光驱中
进入BIOS
1
2
3将系统启动的顺序,改为从光盘启动
方法一:开机时,不断按f2
方法二:在电源里面点击,进入固件把CD-ROM启动顺序排到第一个
按F10保存并退出 ->选择yes
进入安装系统的界面
进入救援模式
输入:1
1
2
3#1.先输入回车
#2.获取root的环境(root权限)
chroot /mnt/sysimage重启
1
2bash-4.2# exit
bash-4.2# reboot进入BIOS从硬盘启动
生产案例
- 生产场景1: 当系统坏了,无法登陆系统,但是需要把里面的数据拷贝出来,怎么办?
1 | bash-4.2# mkfs.xfs -f /dev/sdc |
- 生产场景2: 修复MBR,主要出现在安装双系统的时候,后安装的系统把原来的MBR删除了,需要修复
1.破坏硬盘的钱446字节,模拟MBR引导损坏,会发现重启无法启动系统
1 | [root@localhost ~]# dd < /dev/zero >/dev/sda bs=1 count=446 |
扇区损坏,需要进入救援模式修复扇区
1 | #1.修复扇区 |
- 生产场景3:
CentOS7
误删除grub文件,进行修复
1.模拟故障
1 | #删除grub2 |
2.进入救援模式
1 | #1.修复扇区(恢复磁盘) |
systemd管理进程
systemd的优势
最新系统都采用systemd管理(RedHat7,CentOS7,Ubuntu15…)
CentOS7 支持开机并行启动服务,显著提高开机启动效率
CentOS7关机只关闭正在运行的服务,而CentOS6,全部都关闭一次。
CentOS7服务的启动与停止不在使用脚本进行管理,也就是/etc/init.d下不在有脚本。
CentOS7使用systemd解决原有模式缺陷,比如原有service不会关闭程序产生的子进程。
systemd相关配置文件
1 | #系统中所有服务启动的脚本存放路径 |
systemd管理服务的命令
1 | #1.启动服务 |
开机自启服务管理
1 | #1.查看开机自启的服务有哪些 |