Linux系统引导与服务管理
目录
一、Linux引导过程
1、引导过程概述
1.1、BIOS开机自检
1.2、MBR读取
1.3、加载引导加载程序(GRUB)
1.4、内核加载
1.5、初始化进程(init)
二、服务
2.1、服务类型
2.2、服务管理工具
三、运行级别
四、systemd
4.1、systemd主要功能
4.2、systemd单元类型
4.3、systemctl命令
五、系统引导故障排除
5.1、修复MBR分区
5.1.1、备份MBR引导扇区到其他磁盘
5.1.2、模拟mbr故障
5.1.3、重启进入急救模式,进行备份恢复操作
5.2、修复GRUB分区
5.2.1、模拟GRUB故障
5.2.2、进入急救模式
5.2.3、重新安装grub配置文件
5.3重置用户密码
5.3.1重启并执行内核参数
5.3.2、重置密码
一、Linux引导过程
1、引导过程概述

1.1、BIOS开机自检
- 按下开机键后,BIOS进行硬件自检,检查硬件是否正常。
- 加载硬盘的MBR(主引导记录)。
1.2、MBR读取
- MBR存储在硬盘的第一个扇区(0扇区),包含引导程序(GRUB)和分区表。BIOS将控制权交给MBR中的引导程序(GRUB)。
1.3、加载引导加载程序(GRUB)
- GRUB通过读取配置文件/boot/grub2/grub.cfg,获取内核和镜像文件系统的设置与路径位置。
1.4、内核加载
- GRUB加载并启动操作系统的内核(Linux kernel)。内核是操作系统的核心,负责硬件管理、进程调度、文件系统管理等。
- 内核被加载到内存中并开始初始化系统。
1.5、初始化进程(init)
- 加载硬件驱动程序,内核将init进程加载到内存中运行
- 内核启动第一个用户空间进程init(PID=1),它负责启动和管理所有的系统服务和守护进程。
二、服务
服务(Service)是指后台运行的程序或进程,服务通常在系统启动时自动启动并运行,负责提供特定的功能或服务。
2.1、服务类型
- 系统服务:系统启动时启动,负责提供基础的系统功能,如网络、日志记录、硬件管理等。
- 应用服务:提供特定的应用功能,通常由应用程序启动和停止。如nginx、mysql等。
- 守护进程:后台运行的服务,不需要用户干预。通常在系统启动时启动,并持续运行直到系统关闭。如httpd、ntpd等。
- 网络服务:提供网络相关的功能。如dnsmasq、apache等。
2.2、服务管理工具
- init:Unix与Linux系统中传统的服务管理器,依赖于串行执行脚本来管理服务,导致效率低下,系统启动速度较慢。
- systemd:现代Linux系统中最常用的服务管理工具,它负责启动、停止和管理服务,并通过systemctl命令于服务进行交互。它能够将更多的服务进程并行启动,可按需启动服务,使得启动更少进程,从而提高系统启动速度。
三、运行级别
Linux系统中,运行级别(Runlevel)是指在系统启动过程中进入的不同状态。每个运行级别代表系统的不同工作状态,决定了哪些服务和进程会被启动。
| init 0 (关机) | 关闭所有服务并关机 |
| init 1 (单用户模式) | 用于修复文件系统、恢复丢失的密码或修复系统问题,仅限root用户登录,不启动网络服务 |
| init 3 (多用户模式) | 多用户模式,命令行界面的服务器,支持网络服务 |
| init 5 (多用户模式) | 支持图形界面的多用户模式 |
| init 6 (重启) | 执行完整的关机过程,然后重新启动 |
四、systemd
systemd是现代Linux系统中的初始化系统和系统管理守护进程,取代了传统的SysVinit和Upstart系统。它负责启动系统服务的同时,还管理系统的启动过程、进度调度、日志记录、设备管理等任务。
4.1、systemd主要功能
- 并行启动::并行启动系统服务,大幅提高系统启动速度。
- 服务管理:通过单独的服务单位(unit)管理服务和进程,可以启动、停止、重启、查询服务状态。
- 日志管理:包含journald日志系统,集成日志收集、查看和分析,简化了日志管理。所有系统日志、服务日志可通过journalctl工具查看。
- 目标(Target):通过目标代替传统的运行级别。
- 依赖关系管理:支持服务之间的依赖关系,确保服务按正确的顺序启动和关闭。
- 并发和资源控制:通过资源控制和调度器,优化系统资源的使用,提供更高效的服务管理。
4.2、systemd单元类型
systemd使用单元(unit)来表示管理的不同资源。每个单元都有一个配置文件,定义了该单元的属性和行为,常见的单元类型包括
- service:管理服务进程,例如 Web 服务器、数据库等。
- target:表示运行级别或目标状态。例如multi-user.target表示多用户模式,graphical.target表示图形界面模式。
- socket:管理套接字(Socket)服务,通常用于延迟启动服务。
- mount:管理挂载点,定义系统如何挂载文件系统。
- timer:用于管理定时任务,类似于cron。
- device:管理设备,表示系统中可用的设备。
4.3、systemctl命令
system control的缩写,功能是管理系统服务。
语法格式:systemctl 参数 动作 服务名
| start | 启动服务 | disable | 取消服务开机自启 |
| stop | 停止服务 | status | 查看服务状态 |
| restart | 重启服务 | list | 显示所有已启动服务 |
| enable | 设置服务开机自启 |
参考示例:
[root@localhost ~]# systemctl start sshd
[root@localhost ~]# systemctl status sshd
● sshd.service - OpenSSH server daemonLoaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)Active: active (running) since 一 2025-02-10 22:34:33 CST; 49min agoDocs: man:sshd(8)man:sshd_config(5)Main PID: 1167 (sshd)Tasks: 1CGroup: /system.slice/sshd.service└─1167 /usr/sbin/sshd -D2月 10 22:34:32 localhost.localdomain systemd[1]: Starting OpenSSH server daemon...
2月 10 22:34:33 localhost.localdomain sshd[1167]: Server listening on 0.0.0.0 port 22.
2月 10 22:34:33 localhost.localdomain sshd[1167]: Server listening on :: port 22.
2月 10 22:34:33 localhost.localdomain systemd[1]: Started OpenSSH server daemon.
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost ~]# systemctl restart sshd
[root@localhost ~]# systemctl stop sshd
[root@localhost ~]# systemctl status sshd
● sshd.service - OpenSSH server daemonLoaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)Active: inactive (dead) since 一 2025-02-10 23:24:54 CST; 3s agoDocs: man:sshd(8)man:sshd_config(5)Process: 3335 ExecStart=/usr/sbin/sshd -D $OPTIONS (code=exited, status=0/SUCCESS)Main PID: 3335 (code=exited, status=0/SUCCESS)2月 10 23:24:43 localhost.localdomain systemd[1]: Stopped OpenSSH server daemon.
2月 10 23:24:43 localhost.localdomain systemd[1]: Starting OpenSSH server daemon...
2月 10 23:24:43 localhost.localdomain sshd[3335]: Server listening on 0.0.0.0 port 22.
2月 10 23:24:43 localhost.localdomain sshd[3335]: Server listening on :: port 22.
2月 10 23:24:43 localhost.localdomain systemd[1]: Started OpenSSH server daemon.
2月 10 23:24:54 localhost.localdomain systemd[1]: Stopping OpenSSH server daemon...
2月 10 23:24:54 localhost.localdomain systemd[1]: Stopped OpenSSH server daemon.
Hint: Some lines were ellipsized, use -l to show in full.
五、系统引导故障排除
5.1、修复MBR分区
5.1.1、备份MBR引导扇区到其他磁盘
[root@localhost ~]# mount /dev/sdb1 /mnt //挂载备份用硬盘
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 14G 0 part ├─centos-root 253:0 0 10G 0 lvm /└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part /mnt //挂载成功
sr0 11:0 1 4.4G 0 rom /run/media/root/CentOS 7 x86_64
[root@localhost ~]# dd if=/dev/sda of=/mnt/mbr.bak count=1 bs=512 //备份mbr
记录了1+0 的读入 // 输入 输出 块个数 块大小
记录了1+0 的写出
512字节(512 B)已复制,0.000218308 秒,2.3 MB/秒
[root@localhost ~]# ls /mnt
mbr.bak
5.1.2、模拟mbr故障
[root@localhost ~]# dd if=/dev/zero of=/dev/sda count=1 bs=512 //用0覆盖mbr扇区数据
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000164001 秒,3.1 MB/秒
[root@localhost ~]# hexdump -C -n512 /dev/sda //破坏mbr扇区完成
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000200
[root@localhost ~]#reboot //重启
5.1.3、重启进入急救模式,进行备份恢复操作





5.2、修复GRUB分区
5.2.1、模拟GRUB故障
[root@localhost ~]# ls /boot/grub2/
device.map fonts grub.cfg grubenv i386-pc locale
[root@localhost ~]# rm -rf /boot/grub2/grub.cfg //删除grub配置文件
[root@localhost ~]# ls /boot/grub2/
device.map fonts grubenv i386-pc locale
[root@localhost ~]# reboot //重启

5.2.2、进入急救模式




5.2.3、重新安装grub配置文件



5.3重置用户密码
5.3.1重启并执行内核参数


5.3.2、重置密码



相关文章:
Linux系统引导与服务管理
目录 一、Linux引导过程 1、引导过程概述 1.1、BIOS开机自检 1.2、MBR读取 1.3、加载引导加载程序(GRUB) 1.4、内核加载 1.5、初始化进程(init) 二、服务 2.1、服务类型 2.2、服务管理工具 三、运行级别 四、systemd …...
网络工程师 (30)以太网技术
一、起源与发展 以太网技术起源于20世纪70年代,最初由Xerox公司的帕洛阿尔托研究中心(PARC)开发。最初的以太网采用同轴电缆作为传输介质,数据传输速率为2.94Mbps(后发展为10Mbps),主要用于解决…...
react项目引入tailwindcss不生效解决方案
根据tailwindcss官网的操作步骤下来,样式未生效,且未报错,看了挺多的资料,还是并未解决。 后面在另一个项目尝试时,报了下面的问题: Error: PostCSS plugin tailwindcss requires PostCSS 8 根据这个链接…...
【C#】条件运算符
1.逻辑与(&&) Console.WriteLine(true && true);//true Console.WriteLine(true && false);//false Console.WriteLine(false && false);//false2.逻辑或(||) Console.WriteLine(true || true);//true Console.WriteLine(true || false);//t…...
Windows11+PyCharm利用MMSegmentation训练自己的数据集保姆级教程
系统版本:Windows 11 依赖环境:Anaconda3 运行软件:PyCharm 一.环境配置 通过Anaconda Prompt(anaconda)打开终端创建一个虚拟环境 conda create --name mmseg python3.93.激活虚拟环境 conda activate mmseg 4.安装pytorch和cuda tor…...
WPS计算机二级•文档的文本样式与编号
听说这是目录哦 标题级别❤️新建文本样式 快速套用格式🩷设置标题样式 自定义设置多级编号🧡使用自动编号💛取消自动编号💚设置 页面边框💙添加水印🩵排版技巧怎么分栏💜添加空白下划线&#x…...
Word中Ctrl+V粘贴报错问题
Word中CtrlV粘贴时显示“文件未找到:MathPage.WLL”的问题 Word的功能栏中有MathType,但无法使用,显示灰色。 解决方法如下: 首先找到MathType安装目录下MathPage.wll文件以及MathType Commands 2016.dotm文件,分别复…...
python-leetcode 24.回文链表
题目: 给定单链表的头节点head,判断该链表是否为回文链表,如果是,返回True,否则,返回False 输入:head[1,2,2,1] 输出:true 方法一:将值复制到数组中后用双指针法 有两种常用的列表实现&#…...
数据治理双证通关经验分享 | CDGA/CDGP备考全指南
历经1个月多的系统准备,本人于2024年顺利通过DAMA China的CDGA(数据治理工程师)和CDGP(数据治理专家)双认证。现将备考经验与资源体系化整理,助力从业者高效通关。 🌟 认证价值与政策背景 根据…...
3.4 学习UVM中的uvm_monitor类分为几步?
文章目录 前言1. 定义2. 核心功能3. 适用场景4. 使用方法5. 完整代码示例5.1 事务类定义5.2 Monitor 类定义5.3 Scoreboard 类定义5.4 测试平台 6. 代码说明7. 总结 前言 以下是关于 UVM 中 uvm_monitor 的详细解释、核心功能、适用场景、使用方法以及一个完整的代码示例&…...
Java在大数据处理中的应用:从MapReduce到Spark
Java在大数据处理中的应用:从MapReduce到Spark 大数据时代的到来让数据的存储、处理和分析变得前所未有的重要。随着数据量的剧增,传统的单机计算方式已经无法满足处理需求。为了解决这个问题,许多分布式计算框架应运而生,其中Ma…...
日常吐槽。
一、写在前面 stereopy日常出bug(github issue里得有一半的问题是我提的,当然也有可能是因为我菜),stereopy自己生成的anndata自己不能计算空间共现关系,还是靠squidpy才能计算。另外还要一些函数一开并行计算就报错,这里留一些s…...
2025最新版Node.js下载安装~保姆级教程
1. node中文官网地址:http://nodejs.cn/download/ 2.打开node官网下载压缩包: 根据操作系统不同选择不同版本(win7系统建议安装v12.x) 我这里选择最新版win 64位 3.安装node ①点击对话框中的“Next”,勾选同意后点…...
机器学习:学习记录(二)
1. 机器学习中的常用函数 logistic函数(sigmoid函数):非线性激活函数,将R区间映射到(0,1)区间 ReLU函数:非线性激活函数,简单可以写作max(0,x),在0处不可导,但是可以人为定义其导数…...
迁移学习 Transfer Learning
迁移学习(Transfer Learning)是什么? 迁移学习是一种机器学习方法,它的核心思想是利用已有模型的知识来帮助新的任务或数据集进行学习,从而减少训练数据的需求、加快训练速度,并提升模型性能。 …...
实现:多活的基础中间件
APIRouter : 路由分发服务 API Router 是一个 HTTP 反向代理和负载均衡器,部署在公有云中作为 HTTP API 流量的入口,它能识别 出流量的归属 shard ,并根据 shard 将流量转发到对应的 ezone 。 API Router 支持多种路由键&am…...
Mybatis源码01 - 总体框架设计
Mybatis总体框架设计 文章目录 Mybatis总体框架设计一:MyBatis架构概览1:接口层1.1:使用传统的MyBatis提供的API1.2:使用Mapper接口 2:数据处理层【核心】2.1:参数映射和动态SQL语句生成2.2:SQL…...
在大型语言模型(LLM)框架内Transformer架构与混合专家(MoE)策略的概念整合
文章目录 传统的神经网络框架存在的问题一. Transformer架构综述1.1 transformer的输入1.1.1 词向量1.1.2 位置编码(Positional Encoding)1.1.3 编码器与解码器结构1.1.4 多头自注意力机制 二.Transformer分步详解2.1 传统词向量存在的问题2.2 详解编解码…...
Selenium WebDriver自动化测试(扩展篇)--Jenkins持续集成
文章目录 一、引言二、Jenkins简介三、安装部署Jenkins安装部署 四、集成Git与Maven安装必要的插件配置Git配置Maven 五、创建Job创建自由风格的项目配置源码管理配置构建触发器配置构建环境配置构建步骤配置Post-build Actions 六、触发构建示例:GitHub Webhook触发…...
Wiki文档转换为Word技术
一、技术背景与目标 Wiki系统导出的文档通常以HTML格式存在,且内容分散在多个文件中,每个页面对应一个HTML文件。然而,Microsoft Word(Word)在处理HTML文件时,仅支持单个HTML文件的导入。因此,为了将Wiki导出的内容转换为Word可识别的格式,必须将分散的HTML文件整合为一…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
小木的算法日记-多叉树的递归/层序遍历
🌲 从二叉树到森林:一文彻底搞懂多叉树遍历的艺术 🚀 引言 你好,未来的算法大神! 在数据结构的世界里,“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的,它…...
【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?
FTP(File Transfer Protocol)本身是一个基于 TCP 的协议,理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况,主要原因包括: ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...
Visual Studio Code 扩展
Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后,命令 changeCase.commands 可预览转换效果 EmmyLua…...
网页端 js 读取发票里的二维码信息(图片和PDF格式)
起因 为了实现在报销流程中,发票不能重用的限制,发票上传后,希望能读出发票号,并记录发票号已用,下次不再可用于报销。 基于上面的需求,研究了OCR 的方式和读PDF的方式,实际是可行的ÿ…...
CppCon 2015 学习:Reactive Stream Processing in Industrial IoT using DDS and Rx
“Reactive Stream Processing in Industrial IoT using DDS and Rx” 是指在工业物联网(IIoT)场景中,结合 DDS(Data Distribution Service) 和 Rx(Reactive Extensions) 技术,实现 …...
ubuntu中安装conda的后遗症
缘由: 在编译rk3588的sdk时,遇到编译buildroot失败,提示如下: 提示缺失expect,但是实测相关工具是在的,如下显示: 然后查找借助各个ai工具,重新安装相关的工具,依然无解。 解决&am…...
Element-Plus:popconfirm与tooltip一起使用不生效?
你们好,我是金金金。 场景 我正在使用Element-plus组件库当中的el-popconfirm和el-tooltip,产品要求是两个需要结合一起使用,也就是鼠标悬浮上去有提示文字,并且点击之后需要出现气泡确认框 代码 <el-popconfirm title"是…...
