Linux基础:操作系统的启动
Centos6:
# 1.加电自检(BIOS)
# 2.MBR引导(512k)dd </dev/zero >/dev/sda bs=1k count=400
# 3.GRUB菜单(选择系统)
# 4.运行init
- 检查/etc/inittab(id:3:initdefault)
- 找到/etc/rc3.d/目录下,所有以S开头的服务,并启动
# 5.建立终端
# 6.用户登录
## 运行级别:
- 0:关机
- 1:单用户模式
- 2:多用户模式(没有文件系统,没有网络)
- 3:多用户模式(命令行)
- 4:没有被使用
- 5:图形化界面
- 6:重启
Centos7:
# 1.加电自检(BIOS)
# 2.MBR引导(512k)dd </dev/zero >/dev/sda bs=1k count=400
# 3.GRUB2菜单(选择系统)
# 4.运行systemd
- 检查/etc/systemd/default.target -> /usr/lib/system/multi-user.target
- 检查/etc/systemd/system/multi-user.target.wants/所有服务,并启动
# 5.建立终端
# 6.用户登录
## 运行级别:
- 0:关机 poweroff.target
- 1:单用户模式 rescue.target
- 2:多用户模式(没有文件系统,没有网络) multi-user.target
- 3:多用户模式(命令行) multi-user.target
- 4:没有被使用 multi-user.target
- 5:图形化界面 graphical.target
- 6:重启 reboot.target
一、系统启动级别
Linux分为七个启动级别
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并启动,默认运行级别不能设为6,否则不能正常启动
现在很多Linux系统都默认启动级别为5.如果我们想切换操作系统,可使用init命令
这样就可以切换到多用户状态且带有网络文件系统了。这种方式对于CentOS7也适用。但想修改默认启动级别,CentOS7同其他Linux稍显不同了。
对于传统的设置方法,只要修改/etc/inittab文件即可,将默认的启动级别改为需要改动的级别
打开CentOS7的/etc/inittab,发现该文件与其他Linux不同:
按照该文件所说的,runlevels被target所取代,即CentOS7采用加载target的方式来替代之前的启动级别。其中有两个重要的target:multi-user.target与graphical.target。它们分别表示运行级别中的3与5级别
通过systemctl get-default可获得默认启动的target
•
通过systemctl set-default设置默认启动的target
那么,想修改为多用户状态只需执行:
systemctl set-default muti-user.target
修改为图形界面执行:
systemctl set-default graphical.target
二、单用户模式
1、开机时进入如下界面(按下方向键盘,阻止系统自动继续)

按e键出现下面界面

按方向键下,定位到最后,找到“ro”一行,ro的意思是read only,将“ro”替换成rw init=/sysroot/bin/sh,如下图

2、按ctrl x 进入单用户模式
3、执行 chroot /sysroot chroot:切换系统 /sysroot/:原始系统
4、如要修改root密码
passwd是修改root密码的命令,touch /.autorelabel 执行这行命令作用是让SELinux生效(或者干脆关闭SELinux),如果不行,密码不会生效。按CTRL D,执行reboot重启生效,如下图

5、如果因为启动x-windows或者显卡驱动更新,无法进入桌面,可以修改默认启动级别(开机进入命令行模式)
systemctl set-default multi-user.target # 设置成命令模式
init = 3 # 切换到字符模式,有时只使用上面的语句没效果
按ctrl d 后,执行reboot
三、grub加密
centos7.2 + 中引入了新的实用程序“grub2 -setpassword“
1) 执行 grub2-setpassword 命令
# grub2-setpassword
Enter password:
Confirm password:
2)如果现在重新启动系统并尝试修改引导条目,系统将要求提供凭据,但是可以在没有凭据的情况下修改引导条目。为了阻止未经授权的修改和未经授权的启动,我们需要对 /boot/grub2/grub.cfg 文件进行更改
•
打开文件并使用密码搜索需要保护的启动条目,它以menuentry开头。找到条目后,从中删除 --unrestricted 参数
•
3) reboot 重启验证,只有当输入正确的用户名和密码时,才能进入 grub 菜单或者修改引导条目。
四、光盘修复模式
#1、进入bios、从光盘启动
#2、点击Troubleshooting
#3、进入到Troubleshooting界面
选择:Rescue a CentOS Linux system
•
#4、三:进入到Rescue选项 按 ENTER键 选1 ,其他选项意思如下
1)continue:救援模式程序会自动查找系统中已有的文件系统,并可读写挂载到/mnt/sysimage目录下。
2)Read-Only:会以只读的方式挂载已有的文件系统。
3)Skip to shell: 手动挂载
#5、sh切换bash模式
chroot /mnt/sysimage/
•
#6、执行命令(破解密码)
passwd root
•
防止光盘修复模式破解密码:bios加密
如何破解bios加密:扣掉CMOS主板电池
Linux基础:操作系统的启动的更多相关文章
- 通过从代码层面分析Linux内核启动来探知操作系统的启动过程
通过从代码层面分析Linux内核启动来探知操作系统的启动过程 前言说明 本篇为网易云课堂Linux内核分析课程的第三周作业,我将围绕Linux 3.18的内核中的start_kernel到init进程 ...
- Linux基础-6.系统的启动过程
Linux启动时我们会看到许多启动信息 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导 运行init 系统初始化 建立终端 用户登录系统 init程序的类型: ...
- 2021年3月-第01阶段-Linux基础-Linux系统的启动流程
Linux系统的启动流程 理解Linux操作系统启动流程,能有助于后期在企业中更好的维护Linux服务器,能快速定位系统问题,进而解决问题. 上图为Linux操作系统启动流程 1.加载BIOS 计算机 ...
- Linux基础入门
第一节,linux系统简介 一.实验内容 了解 Linux 的历史,Linux 与 Windows 的区别等入门知识. 二.实验要求 阅读linux简介与历史 三.实验步骤 (一).Linux 为何物 ...
- 全栈必备Linux 基础
Linux 几乎无处不在,不论是服务器构建,还是客户端开发,操作系统的基础技能对全栈来说都是必备的.系统的选择Linux发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行 ...
- 走进Linux之systemd启动过程
Linux系统的启动方式有点复杂,而且总是有需要优化的地方.传统的Linux系统启动过程主要由著名的init进程(也被称为SysV init启动系统)处理,而基于init的启动系统被认为有效率不足的问 ...
- Linux基础操作二
编程语言的作用及与操作系统和硬件的关系 编程语言的作用:用来定义计算机程序的形式,程序员用它来编写程序,进而控制其向计算机发出指令,使计算机完成人类布置的任务. 编程语言的作用及与操作系统和硬件的关系 ...
- OracleOCP认证 之 Linux基础
Linux 基础 一.SHELL 1: Shell 简介 shell 是用户和Linux 操作系统之间的接口.Linux 中有多种shell, 其中缺省使用的是bash. Linux 系统的shell ...
- 第一天 Linux基础篇
课程介绍 1.认识Linux的不同版本 2.以及应用领域 3.文件和目录 4.Linux命令概述 5.Linux命令-文件 6.Linux命令-系统管理-磁盘管理 认识Linux 什么是操作系统 生 ...
- linux基础知识的总结
例如以下内容是我对linux基础知识的总结,由于本人在初期学习linux的时候走了不少的弯路,对于基础的掌握耗费了不少的时间,所以为了后来者对linux的基础部分有个清晰的了解,特对基础知识进行了总结 ...
随机推荐
- java 使用 ArrayList 排序【包括数字和字符串】
1.数字排序 /** * 数字排序 */ @Test public void t2() { List<Integer> list = new ArrayList<>(); li ...
- vert.x框架与tomcat的关系
1.前言 大学4年,老师唯一让我们学习的web服务器是tomcat,配置方式是先从官网下载阿帕奇的tomcat文件,然后在开发平台导入,然后再配置web.xml等文件, 是一个可同步可异步请求的服务器 ...
- 第10组 Alpha冲刺 (1/6)
1.1基本情况 ·队名:今晚不睡觉 ·组长博客:https://www.cnblogs.com/cpandbb/ ·作业博客:https://edu.cnblogs.com/campus/fzu/FZ ...
- POJ2891Strange Way to Express Integers
http://poj.org/problem?id=2891 实际上就是一个一元线性同余方程组.按照合并的方式来解即可. 有一个注意点,调用函数是会慢的. #include<iostream&g ...
- BarTender调用示例
安装BarTender 软件后,会注册一个COM 然后在项目中添加BarTender COM 引用 BarTender模板中的条码右键属性-数据源类型-嵌入的数据-名称(比如设置为 barcode p ...
- gin中从reader读取数据数据
package main import ( "fmt" "github.com/gin-gonic/gin" "net/http" &quo ...
- Android Native -- Message/Handler/Looper机制(应用篇)
⌈Android Native消息队列处理系列文章⌋ Android Native -- Message/Handler/Looper机制(原理篇) Android Native -- Message ...
- 怎么重载网卡?ip修改 HHS服务器
目录 一:目录结构知识详述 1.网卡配置文件 2,ip修改 3.重载网卡信息 4.关闭网络管理器(因为已经有了network)所有要关闭NetworkManager不然会发生冲突 5.判断SSH服务是 ...
- linux系统——Redis集群搭建(主从+哨兵模式)
趁着这几天刚好有点空,就来写一下redis的集群搭建,我跟大家先说明,本文的redis集群因为linux服务器只是阿里云一台服务器,所以集群是redis启动不同端口,但是也能达到集群的要求.其实不同服 ...
- 学习Java第5天
今天所做的工作: 1.包装类 2.数字处理类 3.ArrayList数组 4.学生信息管理系统样卷(部分) 明天工作安排: 1.完成学生信息管理系统样卷 2.核心技术接口继承,多态 所遇到的问题及解决 ...