引导启动和服务控制

1.引导过程

1.1开机自检

加电检测硬件是否有故障,如果无故障直接就去bios中设置的第一启动项找操作系统

1.2MBR引导

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

1.3 GRUB

grub会根据grub.cfg配置文件找到操作文件,找到根

1.4加载Linux内核 (操作系统)调度硬件

Linux 内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间, 负责资源分配与调度。内核接过系统控制权以后,将完全掌控整个 Linux 操作系统的运行过 程。

1.5 启动init进程

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

传统init依赖于串行执行Shell 脚本启动服务,导致效率低下,系统启动速度较慢 排队 systemd能够将更多的服务进程并行启动,并且具有提供按需启动服务的能力,使得启动更少进程,从而提高系统启动速度 大家一起

2.服务

systemd是保姆级的进程,代为管理所有的进程

2.1systemd服务

Systemd新特性

  • 系统引导时实现服务并行启动
  • 按需启动守护进程
  • 自动化的服务依赖关系管理
  • 同时采用socket式与D-Bus总线式激活服务
  • socket与服务程序分离
  • 向后兼容sysv init脚本
  • 使用systemctl 命令管理,systemctl命令固定不变,不可扩展,非由systemd启动的服务,
  • systemctl无法与之通信和控制
  • 系统状态快照

systemd单元类型

运行级别多对应的systemd目标

init 0-6 就可以切换到对应的运行级别

2.2系统服务控制

格式:systemdctl 控制类型 服务名称(程序名)

控制类型有:start , stop ,status,reload,restart , enable ,disable

3.修复MBR扇区故障实验

3.1实验内容

把MBR前512字节文件修复完成,需要光盘引导进入急救模式

3.2实验步骤

1.先将文件备份到别的硬盘中,这样我们破坏环境后可以直接从比别的盘中恢复

2.模拟破坏MBR引导扇区

3.进入引导界面进入急救模式,从备份文件中恢复MBR 扇区数据 先加载好光盘镜像,重启操作系统

之后是第二个,进入急救模式

4.输入1进入,回车

5.在这个操作系统下建立文件,并将sdb1盘挂载到建立的文件夹下。

6.使用备份文件恢复mbr扇区

  1. 退出重启

能成功重启就算修复成功

4.修复GRUB故障

4.1实验内容

如果grub文件损坏导致启动不了,使用MRB扇区重建grub程序

4.2实验操作

1.MBR位于第一块硬盘(/dev/sda)的第一个物理扇区处,总共512字节,前446字节是主引导记,所以先建立备份

2.模拟对MRB中的GRUB引导程序的破坏,但并不破坏分区表

3.与mbr文件损坏一样,先进入急救模式,然后把第二块备份的盘挂载到mnt目录下

4.将备份文件覆盖sda盘

5.重启之后能正常开启就算成功

5.修改root密码

5.1实验一:

5.1.1实验内容

使用光驱进行密码修改,

5.1.1实验操作

1.先进入光驱,在电脑重启的一瞬间按一下esc进入,选择光驱

2.进入急救模式选项与上面两个实验一样

3.输入chroot /mnt/sysimage 进入系统根环境,去修改密码

4.输入修改密码命令

5.之后重启,如果成功的话我们自己的x-shell会让我们重新输入密码

5.2实验二:

5.2.1实验内容:

不使用光驱进行修改root密码,使用单用户修改密码

5.2.2实验操作:

1.先进入到grub文件下。

2.输入命令,添加内核参数 rd.break

3.输入ctrl x重启,进入单用户模式

4.输入命令,重新挂载

5.输入命令,进入根

6.修改密码

7.退出重启 如果x-shell让重输入密码就修改成功

6.systemctl服务的建立

6.1实验内容

使用编译安装nginx 之后创建systemctl的service快捷服务,可以查看进程并正常使用

6.2具体操作流程

1.根据安装包去解压到源文件

2.使用./configure 去设置安装目录并指定安装位置

等待安装完成后

3.进行编译

4.安装软件

5.去规定的文件夹下创建.service格式下的文件

6.按照规定格式去写文件

ini 复制代码
[Unit]
Description=The nginx HTTP and reverse proxy server     描述信息

[Service]
PIDFile=/apps/nginx/logs/nginx.pid    
ExecStart=/apps/nginx/sbin/nginx                 开始命令
ExecReload=/usr/bin/kill    -s HUP   $MAINPID     重新加载
ExecStop=/usr/bin/kill      -s TERM  $MAINPID     关闭命令

[Install]
WantedBy=multi-user.target                 弱依赖,被哪些units所依赖
~                            

检查无误后保存退出

7.刷新systemclt下的文件

8.使用systemctl命令启动nginx,并关闭

相关推荐
圣殿骑士-Khtangc20 分钟前
Go-Map面试核心考点从哈希冲突到并发安全的完整解析
面试·golang·哈希算法
码匠许师傅1 小时前
【C++ 面试真题】聊聊 volatile 和 mutable
开发语言·c++·面试
黄敬峰2 小时前
Harness 工程:用 LLM 当评委,自动生成、评测、择优一条龙
面试
ocean21033 小时前
八股刷题之:变体树
面试·面试题·面试真题·变体树·八股精·深度拓展·高效刷题
何时梦醒3 小时前
第三篇:React 组件化开发 — 函数即组件的哲学与实践
react.js·面试·typescript
胡萝卜术3 小时前
编译期与运行期的双重防线:从 TypeScript 类型之争到 LLM 输出的自动化择优
前端·设计模式·面试
用户852495071843 小时前
Harness 工程:用工程化手段驾驭 LLM,而不是迷信一次回答
面试
Dr.kangder3 小时前
嵌入式面试总结(一)——嵌入式系统实时性
面试·职场和发展·架构·嵌入式·虚拟化
何时梦醒4 小时前
TypeScript 类型系统核心:type 与 interface 全方位深度对比(附实战案例)
前端·面试·typescript
书源4 小时前
AI 能写代码之后,前端工程师的价值在哪里?
前端·面试·程序员