引导过程和服务

宏内核(monolithic kernel):又称单内核和强内核,Unix,Linux把所有系统服务都放到内核里,所有功能集成于同一个程序,分层实现不同功能,系统庞大复杂,Linux其实在单内核内核实现了模块化,也就相当于吸收了微内核的优点。

一、引导过程

1.Linux操作系统引导过程

1.开机自检

通过bios程序检查硬件是否正常,然后根据bios中的启动项设置,去找内核文件,如果硬件出现问题则会卡在开机界面提示不同报错。

boot开机启动顺序:你可以把内核文件放在何处?

1硬盘 2移动设备,u盘,移动硬盘,光驱 3网络启动

2.mbr

运行放在MBR扇区里的启动 GRUB引导程序,MBR引导:第一阶段grub引导及加载分区表

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

3.grup

grub菜单:第二阶段grub加载内核文件到系统内存中运行起来,内核文件置:/boot/grub2/grub.cfg(centos 7)(根据grup配置文件(grup.cfg)中记录的位置,去找到内核文件(高级语言))

4.加载内核(kernel)

把内核运行在内存中,加载内核:加载完毕进入操作系统

内核接过系统控制权以后,将完全掌控整个 Linux 操作系统的运行过程。在 CentOS 系统中,默认的内核文件位于“/boot/vmlinuz-3.10.0-514.el7.x86_64”。 总结:把内核和镜像文件系统加载到内存中 可以使用

5.启动进程(init进程初始化)

启动操作系统后需要启动进程,启动第一个祖宗进程

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

centos7:systemd

 传统init依赖于串行执行Shell 脚本启动服务,导致效率低下,系统启动速度较慢  ,  排对

     init 串行启动后续的程序:一个一个按顺序启动
systemd能够将更多的服务进程并行启动,并且具有提供按需启动服务的能力,使得启动更少进程,从而提高系统启动速度   大家一起

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

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

文字描述:

二、操作系统运行级别

(一)0关机  

init 0是关机      系统默认运行级别不能设置为0,否则不能正常启动,机器关的

(二)1单用户 类似windows的急模式

init 1是单用户安全模式

root 权限,用于系统维护,禁止远程登陆,就像 Windows 下的安全模式登录

(三) 2、3 、4都是字符界面

init 2、init 3 、init 4都是字符界面,但init 4(没用过),init2少些功能(nfs)所以常用的是init 3级别

(四) 5 图形界面   init 5是图形化界面

(五) 重启   init 6是重启

 runlevel 查看当前运行级别

输入runlevel  或者  systemctl get-default进行查看运行级别

三、服务

1、systemd介绍

在Linux系统中,systemd(System Daemon)是一个系统和服务管理器,用于替代传统的SysV init初始化系统。它负责系统的启动、运行时服务管理以及关机过程,并且提供了许多高级特性,如并行化启动服务、按需激活服务、依赖关系处理等。

引入:rpcbind程序如果启动,会监听111端口;如果rpcbind没有启动,systemd会代为监听

systemd:是系统级的程序,代为管理系统上的程序

systemd保姆级

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

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

systemd unit(单元) ,systemd方便管理程序,将程序按照特定的功能分成了很多单元(服务单元,文件路径、网络单元、挂载……)

2.systemd 单元类型

3.systemd新特性

systemd新特性

  • 系统引导时实现服务并行启动

  • 按需启动守护进程

  • 自动化的服务依赖关系管理

  • 同时采用socket式与D-Bus总线式激活服务

  • socket与服务程序分离

  • 向后兼容sysv init脚本

  • 使用systemctl 命令管理,systemctl命令固定不变,不可扩展,非由systemd启动的服务,

  • systemctl无法与之通信和控制

  • 系统状态快照

systemd 核心概念:unit

unit表示不同类型的systemd对象,通过配置文件进行标识和配置;文件中主要包含了系统服务、监听socket、保存的系统快照以及其它与init相关的信息

在systemd中不同类型的systemd对象被统一称为单元,是让系统知道该如何进行操作和管理资源的主要对象,所以systemd有许多单元类型。
systemd单元文件最初默认存放在/lib/systemd/system目录中,每当安装新的软件都会自动在这个目录中添加一个配置文件。
systemctl 命令用于管理各种类型的systemd单元,可以使用“systemctl -t help”命令来查询systemd支持的单元类型。

四、实验

实验1:模拟破坏mbr和分区表 然后修复

修复mbr分区故障

        故障原因

  • 病毒、木马的等造成的破坏;
  • 不正确的分区操作、磁盘读写误操作等。
  • MBR位于第一块硬盘( /dev/sda) 的第一个物理扇区处,总共512字节
    

    故障现象

  • 找不到引导程序,启动中断;
  • 无法加载操作系统,开机后黑屏。
  • 使用dd命令模拟将MBR损坏,复制512字节到/dev/sda中进行覆盖MBR
     dd if=/dev/zero of=/dev/sda count=1 bs=512

    解决思路

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

实验步骤:

加盘:

备份:

模拟破坏:

然后进入急救模式修复:3  2  1

实验2:修复grub文件及程序

故障原因

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

故障现象

  • 系统引导停滞,显示“grub>”提示符
  • 解决思路
  • 尝试手动输入引导命令
  • 进入急救模式,重写或者从备份中恢复grub.conf
  • 向MBR扇区中重建grub程序

模拟破坏:

在虚拟机里点如下图

鼠标要在虚拟机里,进入急救模式

grub2-install /dev/sda    #重新安装gurb2程序在sda磁盘上
grub2-mkconfig -o /boot/grub2/grub.cfg #重新生成grub菜单配置文件
exit退出自己系统
reboot重启

实验3:破解密码

Centos 7遗忘root用户密码,需要进入急救界面修改密码

故障原因

  • 遗忘root用户的密码

故障现象

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

进入急救模式:3 2 1

无光驱:

首先在系统加载内核时按任意键盘停止倒计时,一般习惯使用上下键,然后如下图 按e

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

mount –o remount,rw /sysroot  #进入后修改根目录的权限   
chroot /sysroot   #切换到根命令

五、服务程序管理

1.介绍

什么是服务程序?

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

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

2.管理服务程序

开启

关闭

重启

重新加载配置文件

开机自启

开机不自启

1.runlevel命令——只能查看切换运行级别与当前运行级别

2.chkconfig命令

chkconfig 必须保证 服务脚本 在 /etc/init.d/目录中有可执行权限的文件(服务管理脚本(case语句))才能执行

3.systemctl命令

systemctl 命令用于管理各种类型的systemd单元  ( centos 7)

systemctl   start     服务名启动服务
systemctl   stop     服务名关闭服务
systemctl   status   服务名查看服务状态
systemctl   reload   服务名重新加载服务
systemctl   restart  服务名重启服务
systemctl   enable   服务名开机自启
systemctl   enable --now  服务名开机自启,并立即启动
systemctl   disable  服务名开机不自启
systemctl   disable --now  服务名开机不自启,并立即关闭

基本格式: systemctl  [控制类型]  服务1、服务2(可多个)

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

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

实验:编译安装nginx用systemctl 进行管理

在/lib/systemd/system目录下创建一个对应服务的.service文件

如果有报错加,没有忽略

输入完毕后保存退出,而后需要重新加载systemd守护进程(daemon)的配置文件,输入systemctl  daemon-reload

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

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

相关文章

汽车电子学习总结

国内的主要有比亚迪、联合汽车电子(联电)、麦格米特、上海电驱动;国外的主要有欧美系的博世、麦格纳、大陆、博格华纳;日系的电装、电产等公司。

【Android Studio】在单独的窗口中启动模拟器

参考:https://developer.android.com/studio/run/emulator-launch-separate-window?hlzh-cn 默认情况下,Android 模拟器会在 Android Studio 中运行。这样,您就可以高效地使用屏幕空间,使用热键在模拟器和编辑器窗口之间快速导航…

华为交换机基于mac地址划分VLAN

SW1配置 vlan 10mac-vlan mac-address 5489-98c3-5611 #pc1 mac地址 mac-vlan mac-address 5489-98c3-5622 #pc2 mac地址 interface GigabitEthernet0/0/1undo port hybrid vlan 1 #禁用交换机默认的vlan 1,避免产生干扰port hybrid untagged vlan 10mac-vlan enab…

【Java】RuoYi-Vue-Plus 多数据源整合TDengine时序数据库——服务端自动建库建表

目录 环境准备整合TDengine 数据源1. 添加驱动依赖2. 添加数据源配置3. 添加Mapper4. 添加建表sql脚本5. Controller 测试效果 环境准备 RuoYi-Vue-Plus v5.1.2JDK17Maven 3.6.3Redis 5.XMySQL 5.7TDengine 2.6.0.34 客户端 整合TDengine 数据源 1. 添加驱动依赖 注意&…

【AWS系列】巧用 G5g 畅游Android流媒体游戏

序言 Amazon EC2 G5g 实例由 AWS Graviton2 处理器提供支持,并配备 NVIDIA T4G Tensor Core GPU,可为 Android 游戏流媒体等图形工作负载提供 Amazon EC2 中最佳的性价比。它们是第一个具有 GPU 加速功能的基于 Arm 的实例。 借助 G5g 实例,游…

亚信安慧AntDB数据库:企业核心业务系统数据库升级改造的可靠之选

在近期召开的“2023年国有企业应用场景发布会”上,亚信安慧公司的核心数据库产品AntDB闪耀登场,技术总监北陌先生针对企业核心业务系统数据库升级改造的关键议题发表了深度分享。他从研发、工程实施和运维管理三个维度细致剖析了当前企业在进行数据库升级…

OpenCASCADE MFC例子

OpenCASCADE MFC例子 说明 一直对OpenCASCADE一直都比较感兴趣,这个例子是我参考这位大神C幼儿园中班小朋友的专栏做出来的OpenCASCADE_C幼儿园中班小朋友的博客-CSDN博客 不过我用的是vcpkg的方式安装OpenCASCADE,这个需要注意一下,可能需…

智慧机房建设浪潮:2024年动环监控系统厂家排名出炉

近几年来,伴随着信息化技术的快速发展,老旧的传统机房在设备性能、网络安全、数据统计等各方面都已经不再能完全满足使用需求,国内多个机房兴起了轰轰烈烈的智慧机房建设浪潮。不同于传统机房只能依赖人工24小时值守,智慧机房凭借…

数据库之存储引擎

1. 存储引擎的概念 存储引擎是MYSQL数据库的组件,负责执行时间的数据I/O操作(数据的存储和提取),工作在文件系统之上,数据库的数据会先传到存储引擎,再按照存储引擎的存储格式保存到文件系统。 &#xff…

Spring学习 Spring IOC

创建工程: 2.1.程序的耦合 耦合:耦合指的就是对象之间的依赖关系。对象之间的耦合越高,维护成本越高。 案例:没有引入IOC容器时系统的Web层、业务层、持久层存在耦合 /*** 持久层实现类*/ public class UserDaoImpl implements U…

判断完全数-第11届蓝桥杯省赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第27讲。 判断完全数&#…

如何理解Nacos的CP和AP架构模型?

Nacos是阿里巴巴开源的注册中心和配置中心,它既可以替应用服务管理服务相关的元数据,也可以管理服务相关的配置信息。 Nacos既支持单机部署,也支持集群部署,为了保证数据的一致性,在集群模式下,Nacos既支持…

CAD加密软件哪个好?CAD图纸加密软件哪个好(图纸加密软件哪个最好用)

图纸防泄密软件现在市场上是很多的,但是普遍采用的图纸防泄密软件技术是采用透明加密的技术,当企业采用透明加密技术对的图纸文件进行安全防护时,也是最安全的最稳定的技术。 现在常用的使用透明加密技术,对企业图纸防泄密的方法…

人工智能_机器学习092_使用三维瑞士卷数据_利用分层聚类算法进行瑞士卷数据三维聚类---人工智能工作笔记0132

然后我们使用分层聚类算法来对我们导入的瑞士卷数据进行聚类 agg =AgglomerativeClustering(n_clusters = 6,linkage = ward) 可以看到这里我们使用的,聚类距离计算用的是,ward这种,最小化簇内方差的形式,l进行聚类对吧 可以看到这个linkage参数有好几个选择对吧,是之前我们讲过…

复现PointNet(分割网络):Windows + PyTorch+代码

一、平台 Windows 10 GPU RTX 3090 CUDA 11.1 cudnn 8.9.6 Python 3.9 Torch 1.9.1cu111 所用的原始代码:https://github.com/fxia22/pointnet.pytorch​​​​​​​ 二、数据 shapenetcore_partanno_segmentation_benchmark_v0 三、代码 分享给有需要的…

【c语言】指针小结

一、指针是什么? 可以通过运算符&来取得变量实际保存的 起始地址 。 (这个地址是虚拟地址,并不是真正物理内存上的地址。) 数据类型 *标识符 &变量; int *pa &a; int *pa NULL; (NULL表示地址为0的内存空间&a…

金和OA JC6 ntko-upload 任意文件上传漏洞

产品介绍 金和网络是专业信息化服务商,为城市监管部门提供了互联网监管解决方案,为企事业单位提供组织协同OA系统开发平台,电子政务一体化平台,智慧电商平台等服务。 漏洞概述 金和 OA JC6 ntko-upload接口处存在任意文件上传漏洞,攻击者可以通过构造特殊请求包上…

使用Go语言的HTTP客户端库进行API调用

随着微服务架构和RESTful API的普及,API调用成为了日常开发中的常见任务。Go语言提供了多种工具和库来帮助开发者轻松地与API进行交互。本文将介绍如何使用Go语言的HTTP客户端库进行API调用。 在Go语言中,标准库中的net/http包提供了基本的HTTP客户端功…

【物联网】手把手完整实现STM32+ESP8266+MQTT+阿里云+APP应用——第3节-云产品流转配置

🌟博主领域:嵌入式领域&人工智能&软件开发 本节目标:本节目标是进行云产品流转配置为后面实际的手机APP的接入做铺垫。云产品流转配置的目的是为了后面能够让后面实际做出来的手机APP可以控制STM32/MCU,STM32/MCU可以将数…

光明源@智慧厕所技术:优化生活,提升卫生舒适度

在当今数字科技飞速发展的时代,我们的日常生活正在经历一场革命,而这场革命的其中一个前沿领域就是智慧厕所技术。这项技术不仅仅是对传统卫生间的一次升级,更是对我们生活品质的全方位提升。从智能感应到数据分析,从环保设计到舒…