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的基础部分有个清晰的了解,特对基础知识进行了总结 ...
随机推荐
- Dubbo服务 上传文件解决方案以及Hessian协议
协议支持 Dubbo支持多种协议,如下所示: Dubbo协议 Hessian协议 HTTP协议 RMI协议 WebService协议 Thrift协议 Memcached协议 Redis协议 在通 ...
- 更加高效的遍历 Map
https://stackoverflow.com/questions/46898/how-do-i-efficiently-iterate-over-each-entry-in-a-java-map ...
- 通过脚本升级PowerShell
Update Powershell through command line https://superuser.com/questions/1287032/update-powershell-thr ...
- Maven+ajax+SSM实现删除
转载自:https://www.cnblogs.com/kebibuluan/p/9020381.html 3.尚硅谷_SSM高级整合_使用ajax操作实现删除的功能 点击删除的时候,要删除联系人,这 ...
- 使用.NET 6开发TodoList应用(25)——实现RefreshToken
系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 在上一篇文章使用.NET 6开发TodoList应用(24)--实现基于JWT的Identity功能中,我们演示了如何使用.N ...
- mysql按照时间分组查询
mysql 按年.月.周.日分组查询 1.按照年份分组查询 SELECT DATE_FORMAT(t.bill_time,'%Y') month_time,sum(t.pay_price) total ...
- VScode远程连接服务器
VScode远程连接服务器 1.远程服务器安装rmate,在远程服务器上执行以下操作 wget https://raw.githubusercontent.com/sclukey/rmate-pyth ...
- Solon Web 开发,八、校验、及定制与扩展
Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...
- 5.14-HTTP间通信
1.社长社员通信WEBSOCKET WebSocket 是一种标准协议,用于在客户端和服务端之间进行双向数据传输.但它跟 HTTP 没什么关系,它是一种基于 TCP 的一种独立实现. 以前客户端想知道 ...
- Typecho 如何安装主题和插件
Typecho的主题和插件都安装在Typecho的usr目录下,这个不是主机根目录的usr,是Typecho本身文件夹根目录下的usr. 里面有两个文件夹,plugins存放插件,themes存放主题 ...