一、Linux启动流程
1、CentOS6启动流程
CentOS6启动过程可以分为5个阶段:
- 内核的引导
- 运行init
- 系统初始化
- 建立终端
-
用户登录系统。
2、CentOS7启动流程
二、运行级别
1、什么是运行级别
运行级别就是操作系统当前正在运行的功能级别
2、CentOS6
运行级别 | 作用 |
---|---|
0 | 关机 |
1 | 单用户模式 (超级权限 必须面对实体硬件) |
2 | 暂未使用 |
3 | 字符界面(黑框) |
4 | 暂未使用 |
5 | 图形界面 |
6 | 重启 |
#CentOS6调用运行级别
#临时性的操作
[root@oldboy ~]# runlevel #查看级别
N 3
#N 表示上一次是什么级别
#3 当前系统正在运行的级别
#永久操作 /etc/inittab
[root@oldboy ~]# init 3 #切换到3级别上
3、CentOS7
运行级别 | 作用 |
---|---|
0 | 关机 |
1 | 单用户模式 (超级权限 必须面对实体硬件) |
2 | 暂未使用 |
3 | 字符界面(黑框) |
4 | 暂未使用 |
5 | 图形界面 |
6 | 重启 |
#CentOS7调用运行级别的方法
System V init运行级别 | systemd目标名称 | 作用 |
---|---|---|
0 | runlevel0.target,poweroff.target | 关机 |
1 | runlevel1.target,rescue.target | 单用户模式 |
2 | runlevel2.target,multi-user.target | |
3 | runlevel3.target,multi-user.target | 多用户的文本界面 |
4 | runlevel4.target,multi-user.target | |
5 | runlevel5.target,graphical.target | 多用户的图界面 |
6 | runlevel6.target,reboot.target | 重启 |
#CentOS7调用运行级别
#systemd使用的是'target'而不是runlevels
# multi-user.target: analogous to runlevel 3 #类似于运行级别3
# graphical.target: analogous to runlevel 5 #类似于运行级别5
#查看当前的运行级别
[root@oldboy ~]# systemctl get-default
multi-user.target
#修改系统下次启动时候的运行级别
[root@oldboy ~]# systemctl set-default multiuser.target
三、Linux systemd
1、systemd的由来
Linux一直以来都是采用init进程作为祖宗进程,但是init有两个缺点:
- 启动时间长。init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。
- 启动脚本复杂,初始化完成后系统会加载很多脚本,脚本都会处理各自的清况,这会让脚本多而复杂。
2、什么是systemd
systemd即为system daemon 守护进程,systemd主要解决上文的问题而诞生。
systemd的目标是,为系统的启动和管理提供一套完整的解决方案。
3、systemd的优势
- 最新系统都采用systemd管理(RedHat7,CentOS7,Ubuntu15等)。
- CentOS7支持开机并行启动服务,显著提高开机启动效率。
- CentOS7关机只关闭正在运行的服务,而CentOS6全部都关闭一次。
- CentOS7服务的启动与停止不在使用脚本进行管理,也就是/etc/init.d下不在有脚本。
- CentOS7使用systemd解决原有模式缺陷,比如原有service不会关闭程序产生的子进程。
4、systemd管理服务相关命令
systemct/管理服务的启动、重启、停止、重载、查看状态等常用命令。
systemctl命令 | 作用 |
---|---|
systemctl start crond.service | 启动服务 |
systemctl stop crond.service | 停止服务 |
systemctl restart crond.service | 重启服务 |
systemctl reload crond.service | 重新加载配置 |
systemctl status crond.servre | 查看服务运行状态 |
systemctl is-active sshd.service | 查看服务是否在运行中 |
systemctl mask crond.servre | 禁止服务运行 |
systemctl unmask crond.servre | 取消禁止服务运行 |
当我们使用systemct/启动一个守护进程后,可以通i过sysytemctl status查看此守护进程的状态。
CentOS7系统,管理员可以使用systemctl命令来管理服务器启动与停止。
systemctl enable nginx #下一次开机启动nginx,于当前无关
systemctl disable nginx #下一次开机不启动nginx,于当前无关
systemctl poweroff #立即关机,常用
systemctl reboot #重启命令,常用
systemctl的journalctl日志
journalctl -n 20 #查看最后20行
journalctl -f #动态查看日志
journalctl -p err #查看日志的级别
journalctl -u crond #查看某个服务的单元的日志
四、Linux单用户模式
能正常引导进入系统
- 配置文件错误导致无法启动
- 忘记ROOT密码 ( 快照 | 单用户修改)
如何使用单用户模式进行变更系统密码?以CentOS7系统为例(CentOS6破解方式请自行百度)
第1步:重启Linux系统主机并出现引导界面时,按下建盘上的e键进入内核编辑界面
第2步:在Linux16这行的后面添加 enforcing=einit=/bin/bash ,然后按下 Ctrl+X 组合键来运行修改过的内核程序。
第3步:大约5秒过后,进入到系统的单用户模式,依次输入以下命令,等待系统重启操作完毕,然后就可以使用新密码来登录Linux系统了。
五、Linux救援模式
当系统坏了,无法登陆系统,但需要把里面的数据复制出来,怎么办?
步骤一、先桂载光盘,然后选择光盘引导为第一位
步聚二、进入故障排除模式->然后选择救援模式
步骤三:挂载真实系统后,发现数据都还存在