20、linux启动流程和救援模式
1.Linux启动流程

2.Linux运行级别
1.什么是运行级别,运行级别就是操作系统当前正在运行的功能级别
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
重启
2、如何调整系统启动的运行级别?systemd使用targets而不是runlevels。默认情况下,有两个主要目标:
| 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 | 重启 |
multi-user.target:类似于运行级别3
graphical.target:类似于运行级别5
1.查看系统默认运行级别
[root@student ~]# systemctl get-default
#2.要设置默认目标,请运行
[root@student ~]# systemctl set-default TARGET.target
3.Linux systemd
1.systemd的由来
Linux一直以来都是采用init进程作为祖宗进程,但是init有两个缺点:
1.启动时间长。init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。
2.启动脚本复杂,初始化完成后系统会加载很多脚本,脚本都会处理各自的情况,这会让脚本多而复杂。
Centos5是启动速度最慢的,串行启动过程,无论进程相互之间有无互相依赖关系。
Centos6相对启动速度有所改进。有依赖的进程之间依次启动而其他与之没有依赖关系的则并行同步启动。
Centos7所有进程无论有无依赖关系则都是并行启动(当然很多时候进程没有真正启动而是只有一个信号或者说是标记而已,在真正利用的时候才会真正启动。)

2.什么是systemd
systemd即为system daemon守护进程,systemd主要解决上文的问题而诞生的,systemd的目标是,未系统的启动和管理提供一套完整的解决方案。
3.systemd的优势
1.最新系统都是采用systemd管理(RedHat7,Centos7,Ubuntu15等)
2、Centos7支持开机并行启动服务,显著提高开机启动效率。
3、Centos7关机只关闭正在运行的服务,而Centos6全部都关闭一次。
4、Centos7服务的启动与停止不在使用脚本进行管理,也就是/etc/init.d下不在有脚本。
5、Centos7使用systemd解决原有模式缺陷,比如原有service不会关闭程序产生的子进程。
4.systemd相关配置文件(了解)
/usr/lib/systemd/system/ #类似Centos6系统的启动脚本/etc/init.d/
/etc/systemd/system/ #类似Centos6系统的/etc/rc.d/rcN.d/
/etc/systemd/system/multi-user.target.wants/
5.systemd管理服务相关命令
systemd管理服务的启动、重启、停止、重载、查看状态等常用命令
| 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 | 取消禁止服务运行 |
当我们使用systemctl启动一个守护进程后,可以通过systemctl status查看此守护进程的状态
| 状态 | 描述 |
|---|---|
| loaded | 服务单元的配置文件已经被处理 |
| active(running) | 服务持续运行 |
| active(exited) | 服务成功完成一次的配置 |
| active(waiting) | 服务已经运行但在等待某个事件 |
| inactive | 服务没有在运行 |
| enable | 服务设定为开机运行 |
| disable | 服务设定为开机不运行 |
| static | 服务开机不启动,但可以被其他服务调用启动 |
systemctl设置服务开机启动、不启动、查看各级别下服务启动状态等常用命令
| systemctl命令(7系统) | 作用 |
|---|---|
| systemctl enable crond.service | 开机自动启动 |
| systemctl disable crond.service | 开机不自动启动 |
| systemctl list-unit-files | 查看各个级别下服务的启动与禁用 |
| systemctl is-enabled crond.service | 查看特定服务是否为开机自启动 |
| systemctl daemon-reload | 创建新服务文件需要重载变更 |
Centos7系统,管理员可以使用systemctl命令来管理服务启动与停止
关机:
systemctl poweroff
重启
systemctl reboot
systemctl的journactl日志
journalctl -n 20 查看最后20行
journalctl -f 动态的查看日志
journalctl -p err 查看日志的级别
journalctl -u crond 查看某个服务的单元的日志
4.Linux单用户模式
如何使用单用户模式进行变更系统密码?以centos7系统为例:
第一步:重启Linux系统主机并出现引导界面时,按下键盘上的e键进入内核编辑界面
第二步:在linux16这行的后面添加enforcing=0 init=/sbin/bash,然后按下ctrl+x组合键来运行修改过的内核程序
第三步:大约5秒后,进入系统的单用户模式,依次输入以下命令,等待系统重启操作完毕,然后就可以使用新密码来登录Linux系统了

5.Linux下救援模式
场景一:当系统坏了,无法登陆系统,但需要把里面的数据复制出来。
步骤一:先挂载光盘,然后选择光盘引导为第一位

步骤二:进入故障排除模式-->然后选择救援模式

步骤三:挂载真实系统后,发现数据都还在

场景二:修复MBR,主要出现安装双系统时,后安装的系统吧原来的MBR删除了,需要修复。
步骤一:破坏硬盘的前446字节,模拟MBR引导损坏,会发现重启无法启动系统
[root@m01 ~]# dd if=/dev/zero of=/dev/sda bs=1 count=446

步骤二:重启系统,然后按照之前的操作进入救援模式,然后分配一个shell终端,挂载真实的操作系统进行修复。

步骤三:修复MBR引导,然后重启连接服务器
1.使用grup修复
grub2-install /dev/sda
2.然后退出
exit
3.最后重启进入系统
reboot
场景三:Centos7误删除grup文件如何进行修复
步骤一:模拟误删除故障
1.删除grup2
[root@m01 ~]# rm -rf /boot/grub2
2.重启计算机
[root@m01 ~]# reboot

步骤二:重启系统,然后按照之前的操作进入救援模式,然后分配一个shell终端,挂载真实的操作系统进行修复。

步骤三:使用grup2-install、grup2-mkconfig恢复配置文件

20、linux启动流程和救援模式的更多相关文章
- 鸟哥的linux私房菜——第20章 启动流程、模块管理与loader
20.1 Linux启动流程分析 Linux启动过程: 按下开机电源后计算机硬件主动读取BIOS来加载硬件信息以及硬件系统的自我测试,之后系统会主动读取第一个可启动的设备(由BIOS设置),此时就可以 ...
- Linux启动流程CentOS6和7的区别
目 录 Linux启动流程 I 第1章 CentOS6启动流程 1 1.1 BIOS 1 1.2 MBR 1 1.3 GRUB 1 1.4 kernel(加载内核) ...
- Linux启动流程和服务管理(init和systemd)
目录 一:Linux启动流程 init和Systemd的区别 二:Linux服务管理(service,systemctl) 一:Linux启动流程 Rhel6启动过程: Rhel7启动过程: GRUB ...
- linux启动流程及自定义gurb
linux 启动流程 POST BIOS(boot sequence) 所选择的启动设备次序的MBR中是否有引导程序, ----> MBR(bootloader) 提供内核列表 -------& ...
- Linux启动流程详解
在BIOS阶段,计算机的行为基本上被写死了,可以做的事情并不多:一般就是通电.BIOS.主引导记录.操作系统这四步.所以我们一般认为加载内核是linux启动流程的第一步. 第一步.加载内核 操作系统接 ...
- Linux启动流程详解【转载】
在BIOS阶段,计算机的行为基本上被写死了,可以做的事情并不多:一般就是通电.BIOS.主引导记录.操作系统这四步.所以我们一般认为加载内核是linux启动流程的第一步. 第一步.加载内核 操作系统接 ...
- Linux课程---8、Linux启动流程
Linux课程---8.Linux启动流程 一.总结 一句话总结: grub启动引导界面(比如装了多系统,选择系统),找到linux内核 启动init程序,加载各种驱动 1.进入grub界面选择相应的 ...
- 浅析Linux启动流程
Linux系统启动流程 Linux 系统的启动,从计算机开机通电自检开始,一直到登陆系统,需要经历多个过程.了解 Linux 的启动过程,有助于了解 Linux 系统的结构,也对系统的排错有很大的帮助 ...
- linux启动流程
看了深入理解linux内核一书的最后对linux启动流程的介绍,下面就把我能理解的写一下吧: bios(硬件加电自检POST,寻找第一个启动设备) the boot loader(可以从硬盘启动也可以 ...
随机推荐
- JAVA 基础编程练习题11 【程序 11 求不重复数字】
11 [程序 11 求不重复数字] 题目:有 1.2.3.4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位.十位.个位的数字都是 1.2.3.4.组成所有的排列后 ...
- react-native-scrollable-tab-view第一次加载下划线不显示解决
今天在使用react-native-scrollable-tab-view的时候出现下划线第一次显示的时候不显示,需要点击切换才可以显示. 通过各种实践发现是0.6.7版本问题. 解决实现: reac ...
- CentOS下Hive搭建
目录 1. 前言 2. MySQL安装 2.1 更换yum下载源 2.2 开启MySQL远程登录 3. Hive安装 3.1 下载Hive 3.2 安装Hive和更改配置文件 4. MySQL驱动包的 ...
- ASP.NET Core 入门笔记4,ASP.NET Core MVC路由入门
敲了一部分,懒得全部敲完,直接复制大佬的博客了,如有侵权,请通知我尽快删除修改 摘抄自https://www.cnblogs.com/ken-io/p/aspnet-core-tutorial-mvc ...
- babel-plugin-equire - 一个按需加载 echarts 模块的 babel 插件
参考链接:https://juejin.im/entry/5a1c1bc9f265da430d57bd3f?utm_medium=hao.caibaojian.com&utm_source=h ...
- PTA(Advanced Level)1025.PAT Ranking
To evaluate the performance of our first year CS majored students, we consider their grades of three ...
- Java判断指定日期是否为工作日
Java判断指定日期是否为工作日 转自:https://www.jianshu.com/p/966659492f2f 转:https://www.jianshu.com/p/05ccb5783f65转 ...
- 小菜鸟之HTML第二课
JavaScript 运行在浏览器上的一种基于对象和事件的驱动的脚本语言 基于对象(windows – document location histroy 便于调用对象属性和方法 事件驱动 键盘和鼠标 ...
- Servlet中获取POST请求的参数
在servlet.filter等中获取POST请求的参数 form表单形式提交post方式,可以直接从 request 的 getParameterMap 方法中获取到参数 JSON形式提交post方 ...
- H5传奇源码,附带微信支付,商城系统,新增了元宝交易商城系统源码
源码说明:传奇游戏是80年底的经典游戏,传奇源码,H5游戏源码下载,附带微信支付,商城系统,新增了元宝交易商城系统源码,内置很多任务,比如首冲任务,修复了很多BUG.[架设要求]游戏名称:H5传奇世界 ...