与Linux操作系统相关的引导和服务

news2025/4/9 2:25:45

目录

一.Linux操作系统引导过程

1.1引导过程总览

 1.2系统初始化进程

1.2.1init进程 

1.2.2sysmted

1.3systemd单元类型

二.排除启动类故障 

2.1MBR扇区故障 

2.1.1故障原因

2.1.2故障现象

 2.1.3解决办法

2.1.4模拟修复MBR扇区故障

1)添加新的硬盘

2)进行分区,格式化和挂载操作

3)备份 MBR扇区数据 到其他磁盘 

4)破坏MBR扇区,模拟MBR扇区故障 

5)reboot

6)进入急救模式,用备份文件恢复MBR扇区数据,解决故障 

7)恢复正常

2.2grub引导故障

2.2.1故障原因 

2.2.2故障现象

2.2.3解决办法

2.2.4模拟修复grub故障

         1)删除grub配置文件,重启观察故障情况

2)重启快速按ESC键进入BOOT目录

3)改用光盘启动,引导界面进入急救模式

切换到系统根环境

 重新将GRUB引导程序安装到第一块硬盘(/dev/sda)的MBR扇区

 重新构建GRUB菜单的配置文件

退出并重启

​编辑

重启成功

 2.3遗忘用户密码

2.3.1步骤

2.3.2模拟遗忘密码

1)关闭selinux安全机制

2)重启系统按esc键,进入BOOT菜单

3)进入shell的sh环境

 4)进入系统根环境bash,passwd改密码

 5)退出并重启

 6)使用新密码登录,登陆成功

三.linux运行级别

四.系统服务控制 

4.1系统服务的定义

4.2systemctl命令

4.2.1systemctl命令的定义

4.2.2命令格式

4.2.3例子

 4.3 Systemd Service Unit 文件

 4.3.1定义

4.3.2组成 

unit部分 

service部分

install部分 


一.Linux操作系统引导过程

1.1引导过程总览

 1.开机自检(bios)

  • 在计算机通电后,主板BIOS执行硬件检测(CPU、内存、磁盘等),查看硬件是否有问题。

  • 检测成功后,根据BIOS配置的启动顺序,定位包含引导程序的存储设备(如硬盘、USB、光盘)。

总结:检测出第一个能够引导系统的设备,比如硬盘或者光驱 

2.MBR引导

若从本机硬盘中启动系统,就读取磁盘的第一个扇区(512字节)中的引导代码(加载并执行下一阶段的引导程序,如GRUB ),来启动完整的GRUB程序  

总结:运行放在MBR扇区里的启动GRUB引导程序(该阶段的引导程序不是完整的)

3.GRUB菜单

GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg找到操作系统 。

4.加载内核(kernel)

内核是操作系统的核心组件,负责直接管理计算机的硬件资源(如CPU、内存、磁盘、网络等),并为应用程序提供基础服务。它是操作系统最底层的部分,充当硬件与软件之间的桥梁

 总结:把内核和镜像文件系统加载到内存中

5.init进程初始化

  • 加载硬件驱动程序,以及初始化进程,内核把init进程加载到内存中运行。 

  • init 进程(PID=1)是 Linux 系统启动后由内核启动的第一个用户进程,负责初始化系统环境、启动服务和管理运行级别(Runlevel)或目标(Target)。

总结:加载硬件驱动程序,内核把init进程加载到内存中运行

 1.2系统初始化进程

1.2.1init进程 

init进程是系统中第一个进程,是所有进程的父进程

init进程的PID (进程标记)号永远为1

1.2.2sysmted

sysmted是Linux 系统中最主流的 初始化系统(init) 和服务管理器,取代了传统的 SysVinit 和 Upstart。它不仅仅是一个 init进程,而是一个完整的生态系统 。

与传统的 SysVinit 和 Upstart这种串行启动相比,systemd最大的特点是采用并行启动,大幅缩短启动时间。

1.3systemd单元类型

systemd使用单元(Unit)来管理系统中的所有资源,每种单元类型对应不同的系统功能(如服务、设备、挂载点等)。单元通过 单元文件(Unit Files) 定义,文件扩展名标明其类型。以下是所有主要的systemd单元类型及其作用:

单元类型扩展名用途典型示例
Service.service管理系统服务(如 Nginx、MySQL)nginx.service
Target.target逻辑分组(类似运行级别)multi-user.target
Socket.socket按需启动服务(socket 激活)sshd.socket
Device.device管理硬件设备(如 /dev/sda1dev-sda1.device
Mount.mount挂载文件系统home.mount
Automount.automount自动挂载(类似 autofsmnt-data.automount
Timer.timer定时任务(替代 crondaily-backup.timer
Swap.swap管理交换分区swapfile.swap
Path.path文件/目录变化触发服务启动monitor-dir.path
Slice.slice资源控制(cgroups 层级)user-1000.slice
Scope.scope外部进程组管理(通常由程序自动创建)session-1.scope
Snapshot.snapshot保存当前单元状态(用于临时恢复)rescue.snapshot

二.排除启动类故障 

2.1MBR扇区故障 

2.1.1故障原因

  • 病毒、木马的等造成的破坏
  • 不正确的分区操作、磁盘读写误操作等

2.1.2故障现象

  • 找不到引导代码,启动中断

  • 无法加载操作系统,开机后黑屏

 2.1.3解决办法

应提前做好备份文件

以安装光盘引导进入急救模式

从备份文件中回复

2.1.4模拟修复MBR扇区故障

1)添加新的硬盘

用lsblk命令查看是否添加成功

2)进行分区,格式化和挂载操作

用lsblk命令查看是否分区成功 

 格式化,挂载

3)备份 MBR扇区数据 到其他磁盘 

4)破坏MBR扇区,模拟MBR扇区故障 

5)reboot

6)进入急救模式,用备份文件恢复MBR扇区数据,解决故障 

 
7)恢复正常

2.2grub引导故障

2.2.1故障原因 

  • MBR中的GRUB引导程序遭到破坏
  • grub.cfg 文件丢失、引导配置有

2.2.2故障现象

 系统引导停滞,显示 grub> 提示符

2.2.3解决办法

尝试手动输入引导命令

进入急救模式,重写或者从备份中恢复grub.conf

向MBR扇区中重建grub程序

2.2.4模拟修复grub故障

1)删除grub配置文件,重启观察故障情况

 

2)重启快速按ESC键进入BOOT目录

 3)改用光盘启动,引导界面进入急救模式

 

4)重建GRUB菜单配置文件 

切换到系统根环境

 chroot /mnt/sysimage  

 重新将GRUB引导程序安装到第一块硬盘(/dev/sda)的MBR扇区

grub2-install /dev/sda

 重新构建GRUB菜单的配置文件

grub2-mkconfig -o /boot/grub2/grub.cfg 

退出并重启
重启成功

 

 2.3遗忘用户密码

2.3.1步骤

  1. 先关闭selinux安全机制setenforce 0

  2. 进入急救模式,加载系统镜像,切换到系统根环境chroot /mnt/sysimage

  3. 重设root用户密码

2.3.2模拟遗忘密码

1)关闭selinux安全机制

2)重启系统按esc键,进入BOOT菜单

 

  3)进入shell的sh环境

 4)进入系统根环境bash,passwd改密码

 5)退出并重启

 6)使用新密码登录,登陆成功

三.linux运行级别

Linux 运行级别是系统启动时定义的不同操作模式,每个级别对应一组特定的服务和应用。传统上,运行级别用于确定系统启动后进入何种状态。

运行级别描述
0停机(halt),关闭系统
1单用户模式(救援模式),仅root可登录,用于系统维护
2多用户模式,不带网络功能(Debian系)
3完整的多用户模式,带网络,文本界面
4保留未使用(可自定义)
5多用户图形界面模式
6重启
systemctl get-default        //获得当前的运行级别

systemctl isolate xxx.target //不重启切换运行级别

四.系统服务控制 

4.1系统服务的定义

系统服务(daemon)是在后台运行的程序,提供各种系统功能。

4.2systemctl命令

4.2.1systemctl命令的定义

systemctl是 systemd 系统和服务管理器的控制命令,用于管理 Linux 系统的服务、挂载点、设备等系统资源。它是现代 Linux 发行版中最主要的服务管理工具。

4.2.2命令格式

systemctl 选项 服务名称        //systemctl命令格式


[选项]

start       开启

stop        关闭

status      查看程序状态

reload      重新加载配置文件而不重启

restart     重启

enale       开机自启

disable     开机不自启

 
systemctl enable --now 程序名    //开机自启并立即启动


4.2.3例子

查看防火墙状态

 4.3 Systemd Service Unit 文件

 4.3.1定义

Systemd 的 .service 文件是定义系统服务的主要配置文件。

/usr/lib/systemd/system/ - 软件包安装的默认服务文件

/etc/systemd/system/ - 系统管理员自定义或覆盖的服务文件

4.3.2组成 

[Unit]
# 通用信息和依赖关系

[Service]
# 服务特定的配置

[Install]
# 安装信息(用于enable/disable)
unit部分 

这部分定义服务的元数据和与其他单元的依赖关系:

 常用选项       作用                                                                                  

Description   描述信息                                                            
After          定义unit的启动次序,表示当前unit应该晚于哪些unit启动,其功能与Before相反             
Before         定义unit的启动次序,表示当前unit应该晚于哪些unit启动,其功能与After相反            
Requires       依赖到的其它units,强依赖,被依赖的units无法激活时,当前unit也无法激活         
Wants          依赖到的其它units,弱依赖                                           
Conflicts      定义units间的冲突关系                                               
Documentation  指定与服务相关的文档位置,例如手册、在线文档、帮助链接等。可以包含URL或
               文件路径。
Alias          为服务定义别名,系统可以通过别名来引用该服务。常用于创建快捷方式或简化服务 
service部分

这部分定义服务的具体行为

[Service]
Type=simple                  # 服务类型
ExecStart=/usr/bin/myapp     # 启动命令
ExecReload=/bin/kill -HUP $MAINPID  # 重载命令
ExecStop=/usr/bin/myapp stop # 停止命令
Restart=on-failure           # 重启策略
User=myuser                  # 运行用户
Group=mygroup                # 运行组
WorkingDirectory=/path/to    # 工作目录
Environment="KEY=value"      # 环境变量
EnvironmentFile=/etc/sysconfig/myapp  # 环境变量文件
PrivateTmp=true              # 使用私有/tmp
ProtectSystem=full           # 文件系统保护
install部分 

这部分定义服务的安装信息:

[Install]
WantedBy=multi-user.target  # 启用时链接到哪个target
Alias=myapp.service        # 别名
Also=other-unit.service    # 同时安装的其他单元

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2329558.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32单片机入门学习——第16节: [6-4] PWM驱动LED呼吸灯PWM驱动舵机PWM驱动直流电机

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做! 本文写于:2025.04.05 STM32开发板学习——第16节: [6-4] PWM驱动LED呼吸灯&PWM驱动舵机&PWM驱…

基础框架系列分享:一个通用的Excel报表生成管理框架

由于我们系统经常要生成大量的Excel报表(Word,PDF报表也有,另行分享),最初始他们的方案是,设计一个表,和Excel完全对应,然后读表,把数据填进去,这显然是非常不…

Ansible(4)—— Playbook

目录 一、Ansible Playbook : 1、Play : 2、Playbook: 二、Ansible Playbook 格式: 1、空格: 2、破折号( - ): 3、Play 格式: 三、查找用于任务的模块: 1、模块…

自学-C语言-基础-数组、函数、指针、结构体和共同体、文件

这里写自定义目录标题 代码环境:?问题思考:一、数组二、函数三、指针四、结构体和共同体五、文件问题答案: 代码环境: Dev C ?问题思考: 把上门的字母与下面相同的字母相连,线不能…

蓝桥云客--团队赛

2.团队赛【算法赛】 - 蓝桥云课 问题描述 蓝桥杯最近推出了一项团队赛模式,要求三人组队参赛,并规定其中一人必须担任队长。队长的资格很简单:其程序设计能力值必须严格大于其他两名队友程序设计能力值的总和。 小蓝、小桥和小杯正在考虑报名…

C-S模式之实现一对一聊天

天天开心!!! 文章目录 一、如何实现一对一聊天?1. 服务器设计2. 客户端设计3. 服务端代码实现4. 客户端代码实现5. 实现说明6.实验结果 二、改进常见的服务器高并发方案1. 多线程/多进程模型2. I/O多路复用3. 异步I/O(…

[Deep-ML]Transpose of a Matrix(矩阵的转置)

Transpose of a Matrix(矩阵的转置) 题目链接: Transpose of a Matrix(矩阵的转置)https://www.deep-ml.com/problems/2 题目描述: 难度: easy(简单)。 分类&#…

智慧节能双突破 强力巨彩谷亚VK系列刷新LED屏使用体验

当前全球节能减排趋势明显,LED节能屏作为显示技术的佼佼者,正逐渐成为市场的新宠。强力巨彩谷亚万境VK系列节能智慧屏凭借三重技术保障、四大智能设计以及大师臻彩画质,在实现节能效果的同时,更在智慧显示领域树立新的标杆。   …

html 给文本两端加虚线自适应

效果图&#xff1a; <div class"separator">文本 </div>.separator {width: 40%;border-style: dashed;display: flex;align-items: center;color: #e2e2e2;font-size: 14px;line-height: 20px;border-color: #e2e2e2;border-width: 0; }.separator::bef…

leetcode4.寻找两个正序数组中的中位数

思路源于 LeetCode004-两个有序数组的中位数-最优算法代码讲解 基本思路是将两个数组看成一个数组&#xff0c;然后划分为两个部分&#xff0c;若为奇数左边部分个数多1&#xff0c;若为偶数左边部分等于右边部分个数。i表示数组1划分位置&#xff08;i为4是索引4也表示i的左半…

0101安装matplotlib_numpy_pandas-报错-python

文章目录 1 前言2 报错报错1&#xff1a;ModuleNotFoundError: No module named distutils报错2&#xff1a;ERROR:root:code for hash blake2b was not found.报错3&#xff1a;**ModuleNotFoundError: No module named _tkinter**报错4&#xff1a;UserWarning: Glyph 39044 …

OSCP - Proving Grounds- SoSimple

主要知识点 wordpress 插件RCE漏洞sudo -l shell劫持 具体步骤 依旧是nmap 起手&#xff0c;只发现了22和80端口&#xff0c;但80端口只能看到一张图 Nmap scan report for 192.168.214.78 Host is up (0.46s latency). Not shown: 65533 closed tcp ports (reset) PORT …

C语言求3到100之间的素数

一、代码展示 二、运行结果 三、感悟思考 注意: 这个题思路他是一个试除法的一个思路 先进入一个for循环 遍历3到100之间的数字 第二个for循环则是 判断他不是素数 那么就直接退出 这里用break 是素数就打印出来 在第一个for循环内 第二个for循环外

【2025】物联网发展趋势介绍

目录 物联网四层架构感知识别层网络构建层管理服务层——**边缘存储**边缘计算关键技术&#xff1a;综合应用层——信息应用 物联网四层架构 综合应用层&#xff1a;信息应用 利用获取的信息和知识&#xff0c;支持各类应用系统的运转 管理服务层&#xff1a;信息处理 对数据进…

如何查看 MySQL 的磁盘空间使用情况:从表级到数据库级的分析

在日常数据库管理中&#xff0c;了解每张表和每个数据库占用了多少磁盘空间是非常关键的。这不仅有助于我们监控数据增长&#xff0c;还能为性能优化提供依据。 Google Gemini中国版调用Google Gemini API&#xff0c;中国大陆优化&#xff0c;完全免费&#xff01;https://ge…

汇编学习之《移位指令》

这章节学习前需要回顾之前的标志寄存器的内容&#xff1a; 汇编学习之《标志寄存器》 算数移位指令 SAL (Shift Arithmetic Left)算数移位指令 : 左移一次&#xff0c;最低位用0补位&#xff0c;最高位放入EFL标志寄存器的CF位&#xff08;进位标志&#xff09; OllyDbg查看…

Nature Communications上交、西湖大学、复旦大学研发面向机器人多模式运动的去电子化刚弹耦合高频自振荡驱动单元

近年来&#xff0c;轻型仿生机器人因其卓越的运动灵活性与环境适应性受到国际机器人领域的广泛关注。然而&#xff0c;现有气动驱动器普遍受限于低模量粘弹性材料的回弹滞后效应与能量耗散特性&#xff0c;加之其"非刚即柔"的二元结构设计范式&#xff0c;难以同时满…

对备忘录模式的理解

对备忘录模式的理解 一、场景1、题目【[来源](https://kamacoder.com/problempage.php?pid1095)】1.1 题目描述1.2 输入描述1.3 输出描述1.4 输入示例1.5 输出示例 2、理解需求 二、不采用备忘录设计模式1、代码2、问题3、错误的备忘录模式 三、采用备忘录设计模式1、代码1.1 …

【数据结构】图的基本概念

图的定义 通俗来说一堆顶点被一堆线连在一起&#xff0c;这一坨顶点与线的集合 目录 图的定义 术语 有向图与无向图 简单图与多重图 度、入度与出度 路径与回路 路径长度与距离 子图 连通、连通图与连通分量 强连通、强连通图与强连通分量 完全图 生成树与生成森林 权…

激光加工中平面倾斜度的矫正

在激光加工中&#xff0c;加工平面的倾斜度矫正至关重要&#xff0c;直接影响加工精度和材料处理效果。以下是系统的矫正方法和步骤&#xff1a; 5. 验证与迭代 二次测量&#xff1a;加工后重新检测平面度&#xff0c;确认残余误差。 反馈优化&#xff1a;根据误差分布修正补偿…