当前位置: 首页 > article >正文

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 …...

【Hadoop】大数据权限管理工具Ranger2.1.0编译

目录 ​编辑一、下载 ranger源码并编译 二、报错信息 报错1 报错2 报错3 报错4 一、下载 ranger源码并编译 ranger官网 https://ranger.apache.org/download.html 由于Ranger不提供二进制安装包,故需要maven编译。安装其它依赖: yum install gcc …...

宝珀(Blancpain):传承近三百年的机械制表传奇(中英双语)

宝珀(Blancpain):传承近三百年的机械制表传奇 在钟表行业中,宝珀(Blancpain) 作为世界上最古老的制表品牌,一直以其卓越的机械工艺、复杂功能腕表和对创新的坚持而闻名。自 1735 年成立以来&am…...

【Linux】Linux命令:crontab

目录 1、作用2、命令使用格式3、常用参数说明4、时程表4.1 格式4.2 常见问题处理 5、示例 1、作用 crontab命令用于对用户的时程表进行查看、删除、修改等操作。 用户的时程表是用于记录着要定期执行的程序。当安装完Linux操作系统启动后, cron服务会定期执行时程表…...

C++ 使用CURL开源库实现Http/Https的get/post请求进行字串和文件传输

CURL开源库介绍 CURL 是一个功能强大的开源库,用于在各种平台上进行网络数据传输。它支持众多的网络协议,像 HTTP、HTTPS、FTP、SMTP 等,能让开发者方便地在程序里实现与远程服务器的通信。 CURL 可以在 Windows、Linux、macOS 等多种操作系…...

浙江大华社招面试

下面是我之前社招面试大华时,面得是嵌入式Linux系统工程师,下面是我初试所被问到的问题分享给大家 毕业之后工作负责过哪些产品,工作负责哪些内容 Camera相关 1、调试sensor是多少像素 2、板子上怎么连接sensor 3、几LINE 4、每个LINE的data rate 是多少 ,单位是什么 5、图…...

多对多的增删改查

一 : 增 随机单号: /*** 文档就绪函数*/$(function () {//随机单号let number Math.floor(Math.random()*(9999-10001)1000);//取随机单号的值 固定格式输出$("#docNo").val(BSnumber);}) 开单日期: //处理开单日期$("#invoiceDate").val(new Date().to…...

vscode设置保存时自动缩进和格式化

参考博客 如何在 VSCode 中自动缩进你的代码 | Linux 中国 省流 使用 Ctrl Shift P 来打开命令模式,搜索 Open User Settings 并按下回车你需要搜索 Auto Indent,并在 “编辑器:自动缩进(Editor: Auto Indent)” 中选择 “全部(Full)”P…...

【练习】PAT 乙 1074 宇宙无敌加法器

题目 地球人习惯使用十进制数,并且默认一个数字的每一位都是十进制的。而在PAT星人开挂的世界里,每个数字的每一位都是不同进制的,这种神奇的数字称为“PAT数”。每个PAT星人都必须熟记各位数字的进制表,例如“……0527”就表示最…...

探店小程序:解锁商业新生态,定制未来

在数字化浪潮席卷全球的今天,商业的边界正在被重新定义。随着移动互联网技术的飞速发展,探店小程序作为一种新兴的商业模式,正以其独特的优势迅速成为连接商家与消费者的桥梁。我们刚刚为一家客户成功交付了一款集分销、分润、商业模式定制开…...

计算机视觉核心任务

1. 计算机视频重要分类 计算机视觉的重要任务可以大致分为以下几类: 1. 图像分类(Image Classification) 识别图像属于哪个类别,例如猫、狗、汽车等。 应用场景:物品识别、人脸识别、医疗影像分类。代表模型&#…...

【人工智能】如何在VSCode中使用DeepSeek?

文章目录 前言一、准备工作二、安装DeepSeek插件步骤1、扩展图标搜索DeepSeep2、安装DeepSeek插件3、使用测试DeepSeekBito文心一言 结论 前言 介绍在VSCode中调用DeepSeek插件工具,可以进行对话、编码。 一、准备工作 确保已经安装好了VSCode软件。 二、安装D…...

机器学习 - 进一步理解最大似然估计和高斯分布的关系

一、高斯分布得到的是一个概率吗? 高斯分布(也称为正态分布)描述的是随机变量在某范围内取值的概率分布情况。其概率密度函数(PDF)为: 其中,μ 是均值,σ 是标准差。 需要注意的是…...

Office/WPS接入DeepSeek等多个AI工具,开启办公新模式!

在现代职场中,Office办公套件已成为工作和学习的必备工具,其功能强大但复杂,熟练掌握需要系统的学习。为了简化操作,使每个人都能轻松使用各种功能,市场上涌现出各类办公插件。这些插件不仅提升了用户体验,…...

如何在Android Studio中开发一个简单的Android应用?

Android Studio是开发Android应用的官方集成开发环境(IDE),它提供了许多强大的功能,使得开发者能够高效地创建Android应用。如果你是Android开发的初学者,本文将引导你如何在Android Studio中开发一个简单的Android应用…...

第40天:Web开发-JS应用VueJS框架Vite构建启动打包渲染XSS源码泄露代码审计

#知识点 1、安全开发-VueJS-搭建启动&打包安全 2、安全开发-VueJS-源码泄漏&代码审计 一、Vue搭建创建项目启动项目 1、Vue 框架搭建->基于nodejs搭建,安装nodejs即可 参考:https://cn.vuejs.org/ 已安装18.3或更高版本的Node.js 2、Vue 创建…...

996引擎-问题处理:三职业改单职业

996引擎-问题处理:三职业改单职业 问题解决方案顺便补充点单性别设置补充:可视化配置表参考资料问题 目前的版本: 引擎版本号:2024.8.7.0 三端配套客户端:3.40.9 传统PC客户端:23.12.07 配套数据库:64_24.8.7.0此版本需要通过可视化配置表...

Lua语言的云计算

Lua语言在云计算中的应用 随着信息技术的迅猛发展,云计算已经成为现代计算的重要组成部分。云计算通过互联网将计算资源(如服务器、存储、数据库、网络等)进行动态调配和高效利用,极大地提高了资源利用率与开发效率。在众多编程语…...

[数据结构] Set的使用与注意事项

目录 Set的说明 常见方法说明 注意事项 TreeSet使用案例 Set的说明 Set与Map主要的不同有两点: Set是继承自Collection的接口类,Set中只存储了Key. 常见方法说明 方法解释boolean add(E e)添加元素,但重复元素不会被添加成功void clear()清空集合boolean contains(Object…...

安当SLA操作系统登录双因素认证:全方位保障Windows系统登录安全

一、产品概述 在当今数字化时代,Windows系统面临着诸多安全挑战,如弱口令问题等。安当SLA(System Login Agent)作为一款强大的双因素登录认证产品,通过支持OTP动态口令和USBKey硬件令牌认证,有效解决多种W…...

Java学习进阶路线

Java基础 Java Web 前端HTML/css/js,J2EE(Servlet/jsp),数据库(Mysql/oracle) Java开发框架 Spring MVC/Mybatis/Herbernate/maven 《Java编程思想》 深入了解java基础 Java设计模式 《Effective j…...

操作系统|ARM和X86的区别,存储,指令集

文章目录 主频寄存器寄存器在硬件中的体现是什么寄存器的基本特性硬件实现寄存器类型 内存和寄存器的区别内存(Memory)和磁盘(Disk)指令的执行ARM Cortex-M3与Thumb-2指令集Thumb-2 与流水线虚拟地址指令的执行 多核CPU芯片间的通…...

Mp4视频播放机无法播放视频-批量修改视频分辨率(帧宽、帧高)

背景 家人有一台夏新多功能 视频播放器(夏新多功能 视频播放器),用来播放广场舞。下载了一些广场舞视频, 只有部分视频可以播放,其他视频均无法播放,判断应该不是帧速率和数据速率的限制, 分析可能是播放器不支持帧高度大于720的视频。由于视频文件较多,需要借助视频编…...

日语学习-日语知识点小记-构建基础-JLPT-N4&N5阶段(2):どれ・どの・どんな :区别 等

日语学习-日语知识点小记-构建基础-JLPT-N4&N5阶段(2):どれ・どの・どんな :区别 等 1、前言(1)情况说明(2)工程师的信仰2、知识点(1)知识点な形容詞(けいようし) と い形容詞(けいようし):并列修饰(2)知识点どれ・どの・どんな :区别(3)知识点は &…...

【浏览器多开】Google Chrome 谷歌浏览器分身术

谷歌浏览器分身术(多开): 复制已有谷歌浏览器图标—>右键–>属性的目标栏中,添加 --user-data-dir自定义文件夹路径 参数。 例如: C:\MySpace\02Installed\Chrome\Chrome-bin\99.0.4844.51\chrome.exe –user-d…...

《LeetCode Hot100》 Day01

Day01 轮转数组 思路: (1) 使用O(1) 空间复杂度解决,就需要原地解决,不能创建新的数组。 (2) 先整体反转数组,再反转前k个数,再反转剩下的数。即可完整本题。 &…...

【图片合并转换PDF】如何将每个文件夹下的图片转化成PDF并合并成一个文件?下面基于C++的方式教你实现

医院在为患者进行诊断和治疗过程中,会产生大量的医学影像图片,如 X 光片、CT 扫描图、MRI 图像等。这些图片通常会按照检查时间或者检查项目存放在不同的文件夹中。为了方便医生查阅和患者病历的长期保存,需要将每个患者文件夹下的图片合并成…...

uniapp实现人脸识别(不使用三方插件)

uniapp实现人脸识别 内容简介功能实现上传身份证进行人脸比对 遇到的问题 内容简介 1.拍摄/相册将身份证照片上传到接口进行图片解析 2.使用live-pusher组件拍摄人脸照片,上传接口与身份证人脸进行比对 功能实现 上传身份证 先看下效果 点击按钮调用chooseImage…...

2025全新JSP简约博客平台-免费开源

前言 最近收到不少同学期末作业的需求,都还是JSP的老技术,介于现在很多网上可以找到的JSP现有项目,要么就是很老好几年前的,要么就是搞了一通不仅乱码还各自报错失败的,总之就是资源有限,于是我花了一星期…...

计算机视觉语义分割——Attention U-Net(Learning Where to Look for the Pancreas)

计算机视觉语义分割——Attention U-Net(Learning Where to Look for the Pancreas) 文章目录 计算机视觉语义分割——Attention U-Net(Learning Where to Look for the Pancreas)摘要Abstract一、Attention U-Net1. 基本思想2. Attention Gate模块3. 软注意力与硬注意力4. 实验…...