likes
comments
collection
share

引导启动和服务控制

作者站长头像
站长
· 阅读数 7

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.按照规定格式去写文件

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

引导启动和服务控制