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的基础部分有个清晰的了解,特对基础知识进行了总结 ...
随机推荐
- JMeter_分布式压测配置
前置条件 电脑A,电脑B,电脑C均安装相同版本的JMeter 和JDK.其中电脑A作为控制机,电脑B和电脑C作为施压机 电脑A IP:172.16.0.114 电脑B IP:172.16.0.115 ...
- LINUX学习-PHP安装
一.安装环境 操作系统CentOS6.8 关闭SeLinux和iptables防火墙 二.网络yum源 将下面的软件下载到 /etc/yum.repos.d/ 的目录下 官方基础:http:// ...
- Jenkins Hackfest 用户体验文档报告
Jenkins 技术文档是我们项目的重要组成部分,因为它是正确使用 Jenkins 的关键.好的文档可以指导用户,并鼓励选择好的实现方式.这是用户体验的关键部分.在最近的 Jenkins UI/UX ...
- Easticsearch概述(ES、Lucene、Solr)一
ES是在Lucene的基础上实现的 1.Lucene全文检索 lucene是一个全文搜索框架,而不是应用产品.因此它并不像http://www.baidu.com/或goolge Destop 那么拿 ...
- linux base脚本编写-自动领取微信红包
bash脚本编写 语法 变量 定义: your_name = "ABC" 使用: echo $your_name 只读变量 a = "123" readonly ...
- uniapp如何生成自己的小程序码并且携带参数
生成小程序码需要用到的参数appId appSecret这两个参数可以再微信公众平台里面登录获取 也可以用测试号里面的获取小程序码步骤1.首先要请求官方的API`https://api.weixin ...
- 常用字符的ASCII码
字母 ASCII码 十进制数 0 00110000 48 9 00111001 57 A 01000001 ...
- atan2(y,x)和pow(x,y)
atan2(y,x): 函数atan2(y, x)是4象限反正切,求的是y/x的反正切,其返回值为[-π,+π]之间的一个数.它的取值不仅取决于正切值y/x,还取决于点 (x, y) 落入哪个象限: ...
- golang中math常见数据数学运算
package main import ( "fmt" "math" ) func main() { fmt.Println(math.Abs(-19)) // ...
- centos6下php53升级为php7
1.查看版本 [root@web-1 blog]# php -v No log handling enabled - turning on stderr logging Created directo ...