云计算【第一阶段(21)】引导过程与服务控制

目录

一、linux操作系统引导过程

1.1、开机自检

1.2、MBR引导

1.3、GRUB菜单

1.4、加载 Linux 内核

1.5、init进程初始化

1.6、简述总结

1.7、初始化进程centos 6和7的区别

二、排除启动类故障

2.1、修复MBR扇区故障

2.1.1、 实验

2.2、修复grub引导故障

2.2.1、实验

2.2.1.1、方法一

2.2.1.2、方法二

2.2.1.3、方法三

2.3、遗忘root用户密码

2.2.3、实验

2.2.3.1、方法一

2.2.3.2、方法二

三、服务控制及切换运行级别

3.1、系统服务控制

3.2、运行级别

3.2.1、运行级别所对应的systemd目标

3.2.2、systemd单元类型

3.2.3、一些命令

3.2.4、扩展一些命令

四、优化启动过程


一、linux操作系统引导过程

1.1、开机自检

服务器主机开机以后,将根据主板 BIOS 中的设置对 CPU(Central Processing Unit,中央处理器)、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘。

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

1.2、MBR引导

当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中 MBR(Master Boot Record,主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据MBR 记录中的引导信息调用启动菜单(如 GRUB)。

总结:运行放在MBR扇区里的启动GRUB引导程序

补充

  1. 加载MBR:一旦选择了硬盘作为启动设备,BIOS/UEFI就会读取硬盘的第一个扇区(MBR)。MBR通常包含启动加载器(boot loader)的代码和分区表(partition table)。

  2. 执行MBR中的代码:MBR中的代码会被加载到内存中并执行。这段代码通常是一个启动加载器(如GRUB、LILO等),也可能是直接指向操作系统引导文件的代码。

    • 启动加载器:如果MBR中的代码是启动加载器(如GRUB),那么它会显示一个启动菜单,让用户选择想要启动的操作系统或内核版本。选择后,启动加载器会加载相应的操作系统引导文件。
    • 直接引导:在某些情况下,MBR中的代码可能直接指向操作系统引导文件的位置,并将其加载到内存中执行。
    • 加载操作系统引导文件:无论通过哪种方式,最终都会加载操作系统的引导文件(如Linux中的/boot/vmlinuz,Windows中的NTLDRbootmgr等)。
    • 操作系统初始化:操作系统的引导文件会初始化系统,加载内核和其他必要的驱动程序,并最终启动用户空间。

1.3、GRUB菜单

对于 Linux 操作系统来说,GRUB(GRand Unified Bootloader,统一启动加载器)是使用最为广泛的多系统引导器程序。系统控制权传递给 GRUB以后,将会显示启动菜单给 用户选择,并根据所选项(或采用默认值)加载 Linux 内核文件,然后将系统控制权转交给内核。需要注意的是,CentOS 7 采用的是 GRUB2 启动引导器

总结:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置。

1.4、加载 Linux 内核

Linux 内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间, 负责资源分配与调度。内核接过系统控制权以后,将完全掌控整个 Linux 操作系统的运行过 程。在 CentOS 系统中,默认的内核文件位于“/boot/vmlinuz-3.10.0-514.el7.x86_64”。

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

1.5、init进程初始化

为了完成进一步的系统引导过程,Linux内核首先将系统中的“/sbin/init”程序加载到内存中运行(运行中的程序称为进程),init 进程负责完成一系列的系统初始化过程,最后等待用户进行登录

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

1.6、简述总结

  1. 开机自检:检测出第一个能够引导系统的设备
  2. MBR 引导:运行放在MBR扇区里的启动GRUB引导程序
  3. GRUB 菜单:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置和路径位置
  4. 加载 Linux 内核:把内核和镜像文件系统加载到内存中
  5. init 进程初始化:加载硬件驱动程序,内核把init进程加载到内存中运行

1.7、初始化进程centos 6和7的区别

二、排除启动类故障

2.1、修复MBR扇区故障

故障现象

  • 找不到引导程序,启动中断
  • 无法加载操作系统,开机后黑屏

故障原因

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

解决思路

  • 应提前作好备份文件
  • 以安装光盘引导进入急救模式
  • 从备份文件中恢复

2.1.1、 实验

分区格式化挂载,我这里犯了一个错,没有格式化就会这样

创建backup文件

挂载

 备份MBR  

(MBR位于第一块硬盘( /dev/sda) 的第一一个物理扇区处,总共512字节)

模拟损坏

先加载好光盘镜像,重启操作系统

 变成这样

故障排除 

抢救模式

继续选1

再次按Enter 键后将进入带“sh-4.2#"提示符的Bash Shell环境

这个时候需要重新创建文件夹(之前的文件夹目前用不了),挂载,把之前备份恢复的用上

exit

然后就可以了

2.2、修复grub引导故障

故障现象

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

故障原因

  • mbr中的grub引导程序遭到破坏
  • grub.conf文件丢失,引导配置有误

解决思路

  • 尝试手动输入引导命令
  • 进入急救模式,重写或者从备份中恢复grub.conf
  • 向 扇区中重建grub程序

2.2.1、实验

2.2.1.1、方法一

手动输入引导命令(笨拙繁琐,不建议使用)

/boot/grub/目录下的包是用于启动菜单的背景图片及样式
/boot/grub2/grub.cfg
#GRUB配置文件
方法一“: 手动输入引导命令(笨拙繁琐,不建议使用)
grub> insmod xfs            #加载指定的模块到内核
grub> linux16 /vmlinuz-3.10.0-693.el7.x86_64 root=UUID=8fd74986-ae66-4ffd-b7d8-a19f2eca7b6f ro rhgb quiet
LANG=zh_CN.UTF-8           #内核的名字及位置等信息
grub> initrd16 /initramfs-3.10.0-693.e17.x86_64.img           #镜像系统文件
grub> boot       #引导boot

2.2.1.2、方法二

进入急救模式,恢复GRUB引导程序

MBR位于第一 块硬盘( /dev/sda) 的第一个物理扇区处,总共512字节,前446字节是主引导记录,分区表保存在MBR扇区中的第447 -510字节中。

引导界面进入急救模式,从备份文件中恢复GRUB引导程序

基本上和MBR恢复一样不再赘述

grub误成写grup注意

2.2.1.3、方法三

引导界面进入急救模式,重建GRUB菜单配置文件

模拟错误

rm -rf /boot/grub2/grub.cfg

发现

 然后一样进入急救模式

切换到系统根环境

chroot /mnt/sysimage

重新将GRUB引导程序安装到第一块硬盘(/dev/sda)的MRB扇区,如果有多个分区可省略

grub2-install  /dev/sda

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

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

退出并且重启

2.3、遗忘root用户密码

故障现象

  • 无法进行需要root权限的管理操作
  • 若没有其他可用帐号,将无法登录系统

故障原因

  • 遗忘root用户的密码

解决思路

  • 进入急救模式,重设密码

2.2.3、实验

2.2.3.1、方法一

进入急救模式,加载系统镜像,c切换到系统根环境

先关机,有

按c,然后退出exit

切换到

chroot /mnt/sysimage

重设root用户密码

passwd root

2.2.3.2、方法二

进入单用户模式修改root密码为例。

重启

按e键

在16那边修改ro 为rw  init=sysroot/bin/bash  注意有空格

然后按

ctrl+x进入

切换到

用于更改当前进程的根目录(root directory)到 /sysroot。这通常用于系统恢复、调试或特定环境下的程序运行。

chroot /sysroot

修改语言

LANG=en_US.UFT-8

修改密码

passwd root

exit 

init 6

三、服务控制及切换运行级别

3.1、系统服务控制

systemctl  控制类型   服务名称

控制类型

  • start:启动
  • stop:停止
  • restart:重新启动
  • reload:重新加载
  • status:查看服务状态

3.2、运行级别

3.2.1、运行级别所对应的systemd目标

运行级别Systemd的target说明
0shutdown.target关机状态,使用该级别时将会关闭主机
1rescue.target单用户模式,不需要密码验证即可登录系统,多用于系统维护
2multi-user.target(或特定编号)用户定义/域特定运行级别。默认等同于3
3multi-user.target字符界面的完整多用户模式,大多数服务器主机运行在此级别
4multi-user.target(或特定编号)另一个用户定义/域特定运行级别,可能需要特殊配置,默认等同于3
5graphical.target图形界面的多用户模式,提供了图形桌面操作环境
6reboot.target重新启动,使用该级别时将会重启主机

3.2.2、systemd单元类型

单元类型扩展名说明
Service.service描述一个系统服务
Socket.socket描述一个进程间通信的套接字
Device.device描述一个内核识别的设备文件
Mount.mount描述一个文件系统的挂载点
Automount.automount描述一个文件系统的自动挂载点
Swap.swap描述一个内存交换设备或交换文件
Path.path描述一个文件系统中文件或目录
Timer.timer描述一个定时器(用于实现类似cron的调度任务)
Snapshot.snapshot用于保存一个systemd的状态
Scope.scope使用systemd的总线接口以编程的方式创建外部进程
Slice.slice描述居于Cgroup的一组通过层次组织的管理系统进程
Target.target描述一组systemd的单元

3.2.3、一些命令

Runlevel可以理解为Linux系统的一个“运行阶段”或“模式”,用于表示系统当前的状态和服务配置。

显示结果中的两个字符分别表示切换前的目标、当前的目标。若之前尚未切换过运行级别,则第 1 列将显示“N”

查看当前默认运行级别

graphical  电脑图形的

设置永久的运行级别

ln -sf /lib/systemd/system/multi-user.target   /etc/systemd/system/default.target

或者

切换为字符模式
systemctl isolate multi-user.target  或 init 3

(怎么简单怎么来)

3.2.4、扩展一些命令

永久修改主机名

查看主机名的状态
hostnamectl status

设置系统语言为中文
localectl set-locale LANG=zh_CN.UTF-8
 

当你使用 localectl set-locale LANG=en_US.UTF-8 命令时,你实际上是在配置 systemd 的本地化设置,这通常会影响那些由 systemd 启动的服务和守护进程的环境变量。但是,对于你的 shell 会话或者当前用户的环境,这通常不会有直接的影响。

$LANG 是一个环境变量,它通常在你的 shell 配置文件(如 .bashrc.bash_profile.zshrc 等,取决于你使用的 shell)中设置,或者通过系统登录时读取的配置文件(如 /etc/profile/etc/environment 等)设置。

查看当前系统使用的语言
localectl [status ]

四、优化启动过程

ntsysv工具

  • 提供一个交互式,可视化窗口
  • 可以在字符终端运行
  • 便于集中管理多个服务

一般不用

打开方式

ntsysv

找到你想要设置的自启动服务,然后按空格键切换其状态,如果前面有"*",表示该服务在开机时会自动启动;如果没有"*",则表示该服务在开机时不会自动启动。

当你完成所有的设置后,按"F12"退出。

系统会提示你是否保存更改,输入"Y"并回车确认保存。

lsystemctl工具

  • 不提供交互式,可视化窗口
  • 管理单个服务效率更高

使用 systemctl 工具与 ntsysv 的功能类似,但是 systemctl 不提供交互式的操作界面,它用 于查询或设置系统服务的默认启动状态。当需要设置某一个服务在当前运行目标中的默认启 动状态时,使用 systemctl 工具会更有效率。使用 systemctl 工具控制服务开机启停的命令 格式如下:

systemctl 控制选项 服务名称 常用的选项有三种:

  • enable:开机自动启动。

  • disable:开机自动关闭。

  • is-enable:查看开机启动状态。

实验

开机自启apache 服务设置为

查看是否自启

apache 服务设置为开机关闭 

 在当前系统下执行“systemctl list-units --type=service”命令可以查看当前系统中所有已 激活的系统服务

查看开机自启的服务器

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

这5款国内可用的宝藏AI视频工具,不允许有人还不知道!(建议收藏)

文章首发于公众号:X小鹿AI副业 大家好,我是程序员X小鹿,前互联网大厂程序员,自由职业2年,也一名 AIGC 爱好者,持续分享更多前沿的「AI 工具」和「AI副业玩法」,欢迎一起交流~ 前几天一位粉丝说给…

40.连接假死-空闲检测-发送心跳

连接假死情况 1.网络设备出现故障,例如网卡,机房等。底层的TCP连接已经断开,但应用程序没有感知到,仍然占着资源。 2.公网网络不稳定,出现丢包。若果连续出现丢包,这时现象就是客户端数据发不出去,服务端也一直收不到数据,就这么一直耗着。 3.应用程序线程阻塞,无法…

postman汉化中文(Windows)

Postman 是一款专业的 API 开发工具,为开发者提供了创建、测试、调试和分享 HTTP 请求的便利性和灵活性。其主要功能包括请求构建与发送、自动化测试、团队协作与分享、实时监视与调试以及环境与变量管理。无论是个人开发者还是团队,Postman 都能有效地提…

UDS - 10.2 DiagnosticSessionControl (10) service

10.3 诊断会话控制(10)服务 来自:ISO 14229-1-2020.pdf 10.2.1 服务说明 DiagnosticsSessionControl服务用于在服务器中启用不同的诊断会话。 诊断会话启用服务器中的一组特定诊断服务和/或功能。该服务提供了服务器可以报告对启用的诊断会话有效的数据链路层特定参数值(…

75101A 1553B总线测试模块

75101A 1553B总线测试模块 75101A 1553B总线测试模块是单通道多功能,符合CPCI/PXI总线的标准3U尺寸模块,可同时用作BC、RTs和BM,其中BM具有比特误码、highbit、lowbit、highword、lowword、校验错误、消息错误检测以及最大256M字节的数据捕…

【ZYNQ】VDMA 的介绍

AXI VDMA 是 Xilinx 官方提供的高带宽视频 DMA IP,用于实现 AXI4-Stream 视频数据流与 AXI4 接口数据的转换,同时提供帧缓存与帧同步控制功能。本文主要介绍 AXI VDMA 的基本结构与原理,并简要介绍 VDMA 的配置与使用方法。 目录 1 VDMA 简介…

程序员必备的ChatGPT技巧:从代码调试到项目管理

近年来,随着人工智能技术的迅猛发展,ChatGPT作为一种强大的对话式AI工具,已经广泛应用于各个领域。而对于程序员来说,ChatGPT不仅可以帮助他们解决编程中的各种问题,还能在项目管理中发挥重要作用。本篇博客将详细介绍…

微信小程序的课堂考勤系统

1 项目介绍 1.1 研究的背景及意义 在信息化快速发展的互联网时代,高校教学管理也面临着数字化转型的迫切需求。传统的课堂考勤方式,如到场点名或教师手工记录,不仅效率低下,耗费大量时间和人力资源,而且容易引发考勤…

vue3-登录小案例(借助ElementPlus+axios)

1.创建一个vue3的项目。 npm create vuelatest 2.引入Elementplus组件库 链接:安装 | Element Plus npm install element-plus --save 在main.js中引入 import ElementPlus from "element-plus";import "element-plus/dist/index.css";ap…

【unity实战】制作unity数据保存和加载系统——小型游戏存储的最优解(包含数据安全处理方案的加密解密)

前言 如何在 Unity 中正确制作一个保存和加载系统,该系统使用JSON 文件来处理保存配置文件,可以保存和加载任何类型对象!标题为什么叫小型游戏存储功能呢?因为该存储功能可能只适合存储数据比较单一的情况,它非常的方…

udp udpClient 聊天室

简介 1、UDP(User Data Protocol,用户数据报协议) (1) UDP是一个非连接的协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它…

三大关键技术看RAG如何提升LLM的能力

大语言模型表现出色,但是在处理幻觉、使用过时的知识、进行不透明推理等方面存在挑战。检索增强生成(RAG)作为一个新兴的解决方案,通过整合外部知识库的数据,提高了模型在知识密集型任务中的准确性和可信度&#xff0c…

数据质量管理-一致性管理

前情提要 根据GB/T 36344-2018《信息技术 数据质量评价指标》的标准文档,当前数据质量评价指标框架中包含6评价指标,在实际的数据治理过程中,存在一个关联性指标。7个指标中存在4个定性指标,3个定量指标; 定性指标&am…

星坤Type-A连接器:创新快充技术,引领电子连接!

快速发展的电子时代,消费者对电子设备的性能和便利性有着更高的要求。特别是在充电和数据传输方面,快充技术和高速传输已成为市场的新宠。中国星坤公司推出的Type-A连接器系列,以其卓越的性能和创新的设计,满足了市场对高效、稳定…

Linux-笔记 全志平台休眠功能初探

前言 全志平台支持的休眠功能主要包括两种模式:休眠模式和待机模式。这两种模式用于降低设备的功耗,并在需要时快速恢复工作状态。由于平台为T113,所以可以很方便的使用RTC来做唤醒源。唤醒源指的是能够让系统从休眠状态恢复到工作状态的信号…

《人人都是产品经理》:项目的坎坷一生

《人人都是产品经理》:项目的坎坷一生 产品VS项目产品经理和项目经理 一切项目从kick off 开始工作量预估Kick Off的大致也就15分钟 写文档咯UML图用例文档UCdemo也得做 需求活在项目中bug等级有多高bug流转过程 以终为始 产品VS项目 项目定义:是只会进…

Python 挖坑式填充Excel模板内容(包括页眉/SheetName/logo)

纵览 Python处理Excel的方式--解压缩方式1、导包2、对模板文件进行解压缩3、对解压缩后文件层级进行介绍4、准备需要载入的数据5、模板挖坑6、运行替换代码7、压缩文件8、生成文件9、完成代码10、可能遇到的问题 结语 Python处理Excel的方式–解压缩方式 在处理Excel中过程中&…

2024-6-26 石群电路-30

2024-6-26,星期三,10:38,天气:雨,心情:晴。今天没有什么事情发生,继续学习,加油!!!!! 今日观看了石群老师电路课程的视频…

SpringBoot中使用多线程调用异步方法,异步方法有无返回值例子。

快速了解Async注解的用法,包括异步方法无返回值、有返回值,最后总结Async注解失效的几个坑。 在我们的 SpringBoot 应用中,经常会遇到在一个接口中,同时做事情1,事情2,事情3,如果同步执行的话&a…

2024期权交易佣金手续费最低是多少?期权交易有哪些成本?

显性成本 期权交易的显性成本包含期权交易的佣金和交易所费用,分别支付给券商和交易所,统一由券商代收。 佣金 期权佣金是期权交易时支付给券商的费用,佣金通常以交易金额的一定比例计算,可以是固定费用,也可以是滑…