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

目录

一、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”命令可以查看当前系统中所有已 激活的系统服务

查看开机自启的服务器

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

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

相关文章

从AICore到TensorCore:华为910B与NVIDIA A100全面分析

华为NPU 910B与NVIDIA GPU A100性能对比,从AICore到TensorCore,展现各自计算核心优势。 AI 2.0浪潮汹涌而来,若仍将其与区块链等量齐观,视作炒作泡沫,则将错失新时代的巨大机遇。现在,就是把握AI时代的关键…

深入解析高斯过程:数学理论、重要概念和直观可视化全解

与其他算法相比,高斯过程不那么流行,但是如果你只有少量的数据,那么可以首先高斯过程。在这篇文章中,我将详细介绍高斯过程。并可视化和Python实现来解释高斯过程的数学理论。 多元高斯分布 多元高斯分布是理解高斯过程所必须的概…

图书管理系统(附源码)

前言:前面一起和小伙伴们学习了较为完整的Java语法体系,那么本篇将运用这些知识连串在一起实现图书管理系统。 目录 一、总体设计 二、书籍与书架 书籍(Book) 书架(Booklist) 三、对图书的相关操作 I…

java将html转成图片

java 将html转成图片 1.导入jar2.代码3.展示结果4.注意事项 最近有一个需求需要根据指定的样式生成图片&#xff0c;使用java原生技术有些麻烦&#xff0c;所以上网搜了下案例&#xff0c;最后发现最好用的还是html2image&#xff0c;这里进行简单总结下。 1.导入jar <!-- 用…

metasfresh开源ERP系统Windows开发环境配置参考

目录 概述 开发环境 配置过程 后端启动 前端启动 登陆系统 其他 概述 Compiere闭源之后衍生出了Admpiere等若干开源的产品&#xff0c;metasfresh就是其中之一&#xff0c;metasfresh截至发稿时在GitHub上已有64000多次的修改提交&#xff0c;而且仍在维护中&#xff0…

Python应用开发——30天学习Streamlit Python包进行APP的构建(12)

st.checkbox 显示复选框部件。 Function signature[source] st.checkbox(label, valueFalse, keyNone, helpNone, on_changeNone, argsNone, kwargsNone, *, disabledFalse, label_visibility"visible") Returns (bool) Whether or not the checkbox is checked. …

Sentinel解决雪崩问题

我们或多或少都对雪崩问题有点了解&#xff0c;在微服务系统中&#xff0c;各个微服务互相调用&#xff0c;关系错综复杂&#xff0c;如果其中一个微服务挂了或者处理消息的速度大幅下降&#xff0c;需要被处理的消息越积越多&#xff0c;那么影响的不仅仅是本微服务的功能&…

算法入门(上)

什么是算法&#xff1f; 算法&#xff08;Algorithm&#xff09;是解决特定问题求解步骤的描述&#xff0c;在计算机中表现为指令的有限序列&#xff0c;并且每条指令表示一个或多个操作。 给定一个问题&#xff0c;能够解决这个问题的算法是有很多种的。算式中的问题是千奇百怪…

C语言单链表的算法之插入节点

一&#xff1a;访问各个节点中的数据 &#xff08;1&#xff09;访问链表中的各个节点的有效数据&#xff0c;这个访问必须注意不能使用p、p1、p2&#xff0c;而只能使用phead &#xff08;2&#xff09;只能用头指针不能用各个节点自己的指针。因为在实际当中我们保存链表的时…

后端之路第三站(Mybatis)——XML文件操作sql

一、XML映射文件是啥 前面我们学过了在Mapper接口用注解的方式来操作sql语句 那么XML映射文件就另一种操作sql语句的方法 为什么还要有这么个玩意&#xff1f; 我简单说就是&#xff1a;如果有的sql特别复杂的话&#xff0c;比如需要【动态sql】的话&#xff0c;就得用到XM…

数据可视化期末总结

期末考试重点&#xff08;世界上最没意义的事情&#xff09; 选择 p8 数据可视化的标准&#xff1a; 实用、完整、真实、艺术、交互&#xff08;性&#xff09; p21 色彩三属性 色相、饱和度、亮度 p23 视觉通道的类型&#xff1a; 记得色调是定性 p39 散点图&#xff08;二维…

GIT-LFS使用

0.前言 目前git仓库有很多很大的文件需要管理&#xff0c;但是直接上传&#xff0c;每次clone的文件太大&#xff0c;所有准备使用git-lfs解决。 1、下载和安装 Git LFS 1.1、直接下载二进制包&#xff1a; Releases git-lfs/git-lfs GitHub 安装 Git LFS sudo rpm -ivh…

Leica Cyclone 3DR2024 一款功能强大的点云建模软件下载License获取

Leica Cyclone 3DR 2024 是一款功能强大的点云建模软件&#xff0c;使用旨在为用户提供全面的点云管理、自动化的点云分析&#xff0c;结合强大的建模&#xff0c;在一个直观友好的环境中&#xff0c;专注的完成挑战&#xff0c;提高生产力&#xff0c;轻松创建并交付专业的成果…

杨幂跨界学术圈:内容营销专家刘鑫炜带你了解核心期刊的学术奥秘

近日&#xff0c;知名艺人杨幂在权威期刊《中国广播电视学刊》上发表了一篇名为《浅谈影视剧中演员创作习惯——以电视剧<哈尔滨一九四四>为例》的学术论文&#xff0c;此举在学术界和娱乐圈均引起了广泛关注。该期刊不仅享有极高的声誉&#xff0c;还同时被北大中文核心…

Data-Driven Reinforcement Learning for Robotic Manipulation

意思是 不同的任务以及机器人都有单独的数据和模型 未来需要整合 一个大的数据集包含所有的 然后训练一个大模型 以后具体的任务只需要针对这个模型进行微调 challenge bootstrapping with large data 2 3 4 高清图补充

【C++】using namespace std 到底什么意思

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文作为 JohnKi 的学习笔记&#xff0c;引用了部分大佬的案例 &#x1f4e2;未来很长&a…

【SGX系列教程】(二)第一个 SGX 程序: HelloWorld,linux下运行

文章目录 0. SGX基础原理分析一.准备工作1.1 前提条件1.2 SGX IDE1.3 基本原理 二.程序设计2.1 目录结构2.2 源码设计2.2.1 Encalve/Enclave.edl:Enclave Description Language2.2.2 Enclave/Enclave.lds: Enclave linker script2.2.3 Enclave/Enclave.config.xml: Enclave 配置…

ctfshow-web入门-命令执行(web59-web65)

目录 1、web59 2、web60 3、web61 4、web62 5、web63 6、web64 7、web65 都是使用 highlight_file 或者 show_source 1、web59 直接用上一题的 payload&#xff1a; cshow_source(flag.php); 拿到 flag&#xff1a;ctfshow{9e058a62-f37d-425e-9696-43387b0b3629} 2、w…

MathType7.6专业数学公式编辑器!与Word、PPT等常用软件无缝对接。

MathType&#xff0c;一款专业的数学公式编辑器&#xff0c;以其强大的功能和友好的用户界面&#xff0c;在科研、教学等领域广受欢迎。它支持丰富的数学符号和公式模板&#xff0c;满足不同用户的需求。同时&#xff0c;MathType还提供了多种输出格式&#xff0c;方便与其他文…

3ds Max导出fbx贴图问题简单记录

1.前言 工作中发现3ds Max导出的fbx在其它软件&#xff08;Autodesk viewer&#xff0c;blender&#xff0c;navisworks&#xff0c;FBXReview等&#xff09;中丢失了部分贴图&#xff0c;但导出的fbx用3ds Max打开却正常显示。 fbx格式使用范围较广&#xff0c;很多常见的三…