Linux的引导过程与服务控制

一.开机启动的完整过程

引导过程:

1.bios加电自检

检测硬件是否正常,然后根据bios中的启动项设置,去找内核文件

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

2.mbr

因为grup太大,第一个扇区存不下所有的grub程序,所以分为2部分指引硬件找到内核文件

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

3.grub

根据grub配置文件(grub.cfg)中记录的位置,去找到内核文件

对于Linux操作系统来说,GRBU(统一启动加载器)是使用最为广泛的多系统引导程序。系统控制权传递给GRUB以后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载Linux内核文件,然后将系统控制权转交给内核,需要注意的是,Centos7 采用的是GRUB2启动引导器。
注意:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg ,来获取内核和镜像文件系统的设置和路径位置

4.加载内核文件

把内核运行在内存中

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

5.启动第一个进程

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

概述:

加电后bios程序会自检硬件,硬件无故障后,会根据第一启动项去找内核,一般来说第一启动项是硬盘,找到硬盘后,会根据mbr的指引找到完整的grub程序,再根据grub的配置文件找到内核文件的具体位置,然后将内核文件加载到内存中运行,内存加载好后会启动第一个程序。

二.系统初始化进程

1. init进程

由Linux内核加载运行/sbin/init程序

init进程是系统中第一个进程

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

2. systemd进程

systemd是linux操作系统的一种init软件

centos7中采用全新的systemd启动方式,取代传统的sysvinit

centos7中运行的第一个init进程是/lib/systemd/system

区别:

init  串行启动后续的程序  一个一个按顺序启动

systemd   是并行启动程序  全部一起启动

概括:

路径:/lib/systemd/system/*.service为结尾的文件

systemd能够识别并管理这些以.service为结尾的程序

2.1 systemd单元进程

2.2 运行级别所对应的systemd目标

查看当前运行级别  runlevel  

各个级别的作用:

0  关机

1  单用户   类似于windows的急救模式

2  字符界面   少些功能(nfs)

3  字符界面

4  字符界面  从来没用

5  图形界面

6  重启

init  0  关机

init   3  切换到字符界面

注意:

yum及rpm安装的软件可以直接使用systemctl去启动 关闭 重启 开机自启等功能

编译安装 不可以直接使用systemctl命令去管理程序 需要手写一个配置文件

systemd unit(单元) ,systemd方便管理程序,将程序按照特定的功能分成了很多单元

三.修复mbr扇区故障

1.故障原因

病毒、木马等造成的破坏

不正的分区操作、磁盘读写误操作

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

2.故障现象

找不到引导程序,程序中断

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

使用dd命令模拟将MBR损坏,复制512字节到/dev/sda中进行覆盖MBRdd if=/dev/zero of=/dev/sda count=1 bs=512

3.解决思路

应提前做好备份

以光盘引导进入急救模式

从备份文件中恢复

1、在覆盖前需要使用dd进行备份,如果没有备份,那这个系统就挂了。
怎么备份?备份需要使用dd命令将/dev/sda中的前512字节复制到一个新的硬盘中,
新的硬盘需要进行分区、格式化、挂载(建议永久挂载),挂载在新创建的目录下面。2、进入linux中的急救模式,
(在重启前需要在DVD中的设置镜像,不然就无法进去急救模式)。3、在shell环境中,新创建一个目录,然后将这个硬盘挂载在这个目录下
因为硬盘在前面已经复制过MBR的备份进去,所以它里面还是存在的,
最后将这个目录下的文件使用dd复制到/dev/sda中,重启即可。

4.操作步骤

1.新加一块盘,然后做好分区,格式化,挂载。

2.将备份文件复制到新盘

3.模拟破坏/dev/sda

4.进入急救模式

reboot重启成功!!!

四.修复gurb扇区故障

1.故障原因

MBR中的GRUB引导程序遭到破坏

grub.conf文件丢失、引导配置有误

2.故障现象

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

3.解决思路

尝试手动输入引导命令

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

向MBR扇区中重建grub程序

4.实验步骤

/boot/grub/目录下的包是用于启动菜单的背景图片及样式

/boot/grub2/grub.cfg #GRUB配置文件

1 先模拟破坏grub.cfg配置文件

2 重启进入急救模式

3 先切换根,从光盘的根切换到自己的系统的根

4 重新安装grub2程序在sda磁盘

5 重新生成配置文件

6 exit  重启

五.Centos 7遗忘root用户的密码

1.故障原因

遗忘root用户的密码

2.故障现象

无法进行需要root权限的管理操作

若没有其它可用账号将无法登陆系统

3.解决思路

进入急救模式重设密码

4.实验步骤

①有光驱

②无光驱

1.进入系统,在选择内核模式,选择第一行,按e

进入下面页面

2.将光标移动到linux行开头行的最后,添加  rd.break 

3.ctrl + x 运行

进入到单用户模式

4.重新挂载,添加读写权限

5.切换到真正的根

6 修改密码

7.如果开启了selinux需要重新打上标记

六.服务程序管理

什么是服务程序

1.一旦运行一直运行不会退出

2.一般是后台运行,不会影响前台的操作

1.chkconfig      centos 6

service  服务程序  start

service  服务程序  stop

service  服务程序  restart

service  服务程序  reload

service  服务程序  status

在  /etc/init.d写一个同名文件的脚本(必须要有 执行权限)

chkconfig  --add   服务名称

chkconfig  --level  35  服务程序  on  开机自启

chkconfig  --level  35  服务程序  off  关闭开机自启

2.systemd    centos 7

格式:

systemctl  控制类型  服务名称

常用控制类型

类型动作
start启动
stop停止
restart重新启动
reload重新加载
status查看服务状态
enable开机自启
disable开机不自启

开机自启

systemctl enable  服务名

开机自启,并立即启动

systemctl  enable  --now  服务名

开机不自启

systemctl  disable  服务名

开机不自启,并立即关闭

systemctl  disable  --now  服务名

注意:如果用 yum 安装以及rpm 安装会自动生成一个配置文件,不需要我们手动加入systemd,会自己添加

3.服务配置文件

/usr/lib/systemd/system/NAME.service

三部分组成:

[Unit]                       定义systemd单元的元数据

[Service]                  服务的配置,只有systemd单元是服务类型时才有这一段信息

[Install]                   定义是否是开机启动

Unit段:

Service段:

Install段:

编辑完之后,需要刷新一下

开启并查看状态

关闭并查看状态

4.实验步骤

1.编译安装

2.编写服务配置文件

3.刷新

4.开启查看状态  关闭查看状态

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

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

相关文章

stable diffusion 基础教程-图生图

界面 图生图大概有以下几个功能: 图生图涂鸦绘制局部绘制局部绘制(涂鸦蒙版)其常用的也就上面四个,接下来逐步讲解。 以图反推提示词 图生图可以根据反推提示词来获取相应图片的提示词,目前3种主流方式,如下: CLIP反推提示词:推导出的文本倾向于自然语言的描述方式,…

openmediavault(OMV) (26)网络(1)ddns-go

简介 "ddns-go" 是一个动态域名解析(Dynamic DNS)工具,用于更新域名的IP地址。它可以自动检测你的公共IP地址,并将其更新到指定的域名解析服务商,以确保你的域名始终与最新的IP地址相匹配。 安装 hub.docker.com上下载ddns-go镜像 配置compose文件 --- versio…

在 sealos 上使用 redisinsight 完美管理 redis

先起一个 redis 集群,在 sealos 上可以点点鼠标就搞定: 简单两步,redis 集群搞定。 再启动 RedisInsight, 是一个 redis 的可视化管理工具。 就可以看到部署后的地址了。进去之后填写 redis 的链接信息即可: 链接信息在数据库的…

STM32MP157/linux驱动学习记录

1. uboot烧录 2.linux安装nfs服务 sudo apt-get install nfs-kernel-server rpcbind安装nfs服务 在用户根目录下创建一个名为“linux”的文件夹,以后所有的东西都放到这个“linux”文件夹里面,在“linux”文件夹里面新建一个名为“nfs”的文件夹&#…

代码训练营Day.22 | 235. 二叉搜索树的最近公共祖先、701. 二叉搜索树中的插入操作、450. 删除二叉搜索树中的节点

235. 二叉搜索树的最近公共祖先 1. LeetCode链接 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 2. 题目描述 3. 解法 利用二叉搜索树的特性进行公共节点的判断: 1. 此节点为公共节点:p、q恰好在此节点的左右棵子树上。即…

[足式机器人]Part2 Dr. CAN学习笔记-自动控制原理Ch1-8Lag Compensator滞后补偿器

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-自动控制原理Ch1-8Lag Compensator滞后补偿器 从稳态误差入手(steady state Error) 误差 Error : E ( s ) R ( s ) − X ( s ) R ( s ) − E ( s ) ⋅ K G …

Open3D 最小二乘拟合平面——拉格朗日乘子法

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接Open3D 最小二乘拟合平面——拉格朗日乘子法。爬虫自重。 一、算法原理 设拟合出的平面方程为: a x + b y +

声明式管理方(yaml)文件

声明式管理方(yaml)文件: 1、适合对资源的修改操作 2、声明式管理依赖于yaml文件,所有的内容都在yaml文件当中。 3、编辑好的yaml文件需要依靠陈述是还是要依靠陈述式的命令发布到k8s集群当中 create只能创建,不能更新。从指定yaml文件中读取配置&#…

unity C# 中通俗易懂LINQ使用案例

文章目录 1. 从数组或列表中查询元素**:2. **排序与分组**:3. **连接多个数据源**:4. **聚合操作**:5. **分页查询**:6. **多条件查询**:7. **转换和投影(Select)**:8. *…

计算机网络期末复习——计算大题(一)

个人名片: 🦁作者简介:一名喜欢分享和记录学习的在校大学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755qq.com 🦉个人WeChat:V…

SSM养老院综合服务系统----计算机毕业设计

项目介绍 该项目为后台管理项目,分为管理员与护工两种角色; 管理员角色包含以下功能: 管理员登录,个人资料密码管理,用户管理,床位类型管理,床位管理,护工管理,老人管理,咨询登记管理,预约登记管理,老人健康信息管理,费用管理等功能。 护…

1.C++语言的编译器及编译流程

1.C编译器 编译器就是将“高级语言”翻译为“机器语言(低级语言)”的程序。以下是一些主流的C编译器及其简要用法: GNU Compiler Collection (GCC):’ GCC原名GNU C Compiler,后来逐渐支持更多的语言编译(C、Fortran、…

Flutter 四:main.dart简单介绍

main.dart简单介绍 运行结果

CNN——LeNet

1.LeNet概述 LeNet是Yann LeCun于1988年提出的用于手写体数字识别的网络结构,它是最早发布的卷积神经网络之一,可以说LeNet是深度CNN网络的基石。 当时,LeNet取得了与支持向量机(support vector machines)性能相…

看懂 Git Graph

目录 文章目录 目录Git Graph看懂 GraphVSCode Git Graph 插件1. 选择展示的 Branches2. Checkout 到一个 Branch3. 找到指定 Branch 最新的 Commit4. 找到 Branch 分叉口5. 查看 2 个 Commits 之前的区别 Git Graph Git Graph 是服务于 Git 分支管理的一种可视化工具&#xf…

大文件断点下载Range下载zip包显示文件损坏

问题:大文件下载,其它格式的文件及rar格式的压缩包正常下载但是 之后zip包下载后解压失败 原因分析: 1. 查看上传文件的属性值 如图,10.4kb是已经约去小数点的值,准确的大小应该是10663字节10.4130859375KB,所以用10.…

VS Code 远程连接云机器训练配置

VS Code 远程连接云机器 Visual Studio Code(以下简称 VS Code)是一个由微软开发的代码编辑器。VS Code 支持代码补全、代码片段、代码重构、Git 版本控制等功能。 安装 VSCode步骤简单且网上有很多教程,这里不过多重复了。 VS Code 现已支…

Nacos配置回滚

前言 很多时候,我们会配置错一些属性,或者需要回滚某些属性,这时候使用Nacos的回滚功能就很方便了 配置回滚 1、在控制台中,选择左侧导航栏的 “配置管理”,进入历史版本,选择Group和data id&#xff0c…

以源码为驱动:Java版工程项目管理系统平台助力工程企业迈向数字化管理的巅峰

随着企业规模的不断扩大和业务的快速发展,传统的工程项目管理方式已经无法满足现代企业的需求。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,企业需要借助先进的数字化技术进行转型。本文将介绍一款采用Spring CloudSpring BootMybat…

vr眼镜和AR眼镜的区别有哪些?哪些产品可以支持VR应用?

vr眼镜怎么连接手机 要将VR眼镜连接到手机上,您可以按照以下步骤进行: 1. 确保您的手机支持VR应用程序:首先,确保您的手机具备运行VR应用程序的硬件和软件条件。一些VR应用程序可能对设备有特定的要求,如处理器性能、操…