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。默认情况下,有两个主要目标:

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启动流程和救援模式的更多相关文章

  1. 鸟哥的linux私房菜——第20章 启动流程、模块管理与loader

    20.1 Linux启动流程分析 Linux启动过程: 按下开机电源后计算机硬件主动读取BIOS来加载硬件信息以及硬件系统的自我测试,之后系统会主动读取第一个可启动的设备(由BIOS设置),此时就可以 ...

  2. Linux启动流程CentOS6和7的区别

    目 录 Linux启动流程    I 第1章 CentOS6启动流程    1 1.1 BIOS    1 1.2 MBR    1 1.3 GRUB    1 1.4 kernel(加载内核)    ...

  3. Linux启动流程和服务管理(init和systemd)

    目录 一:Linux启动流程 init和Systemd的区别 二:Linux服务管理(service,systemctl) 一:Linux启动流程 Rhel6启动过程: Rhel7启动过程: GRUB ...

  4. linux启动流程及自定义gurb

    linux 启动流程 POST BIOS(boot sequence) 所选择的启动设备次序的MBR中是否有引导程序, ----> MBR(bootloader) 提供内核列表 -------& ...

  5. Linux启动流程详解

    在BIOS阶段,计算机的行为基本上被写死了,可以做的事情并不多:一般就是通电.BIOS.主引导记录.操作系统这四步.所以我们一般认为加载内核是linux启动流程的第一步. 第一步.加载内核 操作系统接 ...

  6. Linux启动流程详解【转载】

    在BIOS阶段,计算机的行为基本上被写死了,可以做的事情并不多:一般就是通电.BIOS.主引导记录.操作系统这四步.所以我们一般认为加载内核是linux启动流程的第一步. 第一步.加载内核 操作系统接 ...

  7. Linux课程---8、Linux启动流程

    Linux课程---8.Linux启动流程 一.总结 一句话总结: grub启动引导界面(比如装了多系统,选择系统),找到linux内核 启动init程序,加载各种驱动 1.进入grub界面选择相应的 ...

  8. 浅析Linux启动流程

    Linux系统启动流程 Linux 系统的启动,从计算机开机通电自检开始,一直到登陆系统,需要经历多个过程.了解 Linux 的启动过程,有助于了解 Linux 系统的结构,也对系统的排错有很大的帮助 ...

  9. linux启动流程

    看了深入理解linux内核一书的最后对linux启动流程的介绍,下面就把我能理解的写一下吧: bios(硬件加电自检POST,寻找第一个启动设备) the boot loader(可以从硬盘启动也可以 ...

随机推荐

  1. 九十二:CMS系统之cms后台登录界面

    html <!DOCTYPE html><html lang="zh-CN"> <head> <meta charset="ut ...

  2. MySQL数据库同步工具的设计与实现

    一.背景 在测试过程中,对于不同的测试团队,出于不同的测试目的,我们可能会有多套测试环境.在产品版本迭代过程中,根据业务需求,会对数据库的结构进行一些修改,如:新增表.字段.索引,修改表.字段索引等操 ...

  3. 三分钟读懂TT猫分布式、微服务和集群之路 (转)

    http://www.cnblogs.com/smallSevens/p/7501932.html 针对新手入门的普及,有过大型网站技术架构牛人路过,别耽误浪费了时间,阅读之前,请确保有一定的网络基础 ...

  4. 用R语言求置信区间

    用R语言求置信区间 用R语言求置信区间是很方便的,而且很灵活,至少我觉得比spss好多了. 如果你要求的只是95%的置信度的话,那么用一个很简单的命令就可以实现了 首先,输入da=c(你的数据,用英文 ...

  5. 手写web框架之加载Controller,初始化框架

    1,加载Controller     我们需要创建 一个ControllerHelper类,让它来处理下面的逻辑:      通过ClassHelper我们可以获取所有定义了Controller注解的 ...

  6. 第一个React Native项目

    1>下图操作创建第一个React Native项目: 用Xcode运行界面如下: 记住: 在使用项目文件期间,终端记住不要关闭的哟!!! 改变了程序代码,需要刷新运行,使用快捷键: Comman ...

  7. 二、Linux用户身份

    0.介绍: 管理员UID为0:系统的管理员用户. 系统用户UID为1-999: Linux系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控 ...

  8. Oracle- 数据库知识回顾

    数据库知识回顾: sql语句的语法规范: sql语句不区分大小写,习惯上系统的保留字.关键字.函数名称大写,表名和列名小写 使用空格和换行分隔单词效果一样,一般情况下独立的整句不换行,不同的子句需要换 ...

  9. Oracle如何创建索引、删除索引、查询索引

    1.创建单一索引 create index 索引名称 on 表名(列名); 2.创建复合索引 create index 索引名称 on 表名(列名1,列名2); 3.删除索引 drop index 索 ...

  10. FFmpeg4.0笔记:封装ffmpeg的解封装功能类CDemux

    Github https://github.com/gongluck/FFmpeg4.0-study/tree/master/Cff CDemux.h /*********************** ...