引导启动和服务控制

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,并关闭

相关推荐
小飞猪Jay6 小时前
C++面试速通宝典——13
jvm·c++·面试
睡觉然后上课11 小时前
c基础面试题
c语言·开发语言·c++·面试
xgq11 小时前
使用File System Access API 直接读写本地文件
前端·javascript·面试
邵泽明13 小时前
面试知识储备-多线程
java·面试·职场和发展
夜流冰14 小时前
工具方法 - 面试中回答问题的技巧
面试·职场和发展
杰哥在此21 小时前
Python知识点:如何使用Multiprocessing进行并行任务管理
linux·开发语言·python·面试·编程
GISer_Jing1 天前
【React】增量传输与渲染
前端·javascript·面试
Neituijunsir1 天前
2024.09.22 校招 实习 内推 面经
大数据·人工智能·算法·面试·自动驾驶·汽车·求职招聘
小飞猪Jay1 天前
面试速通宝典——10
linux·服务器·c++·面试
猿java1 天前
Cookie和Session的区别
java·后端·面试