引导过程与服务控制

引导过程与服务控制

学习内容

  • 引导过程
  • 排除启动类故障
  • 服务空气及切换运行级别
  • 优化启动过程

    系统引导是操作系统运行的开始,在用户能够正常登录到系统之前,Linux 操作系统的
    引导过程将完成一系列的初始化任务,并加载必要的程序和命令终端,为用户登录做好准备。
    本节将对 Linux 操作系统的引导过程做简单介绍。

    引导过程总览

    Linux 操作系统的引导过程一般包括以下几个阶段:开机自检、MBR 引导、GRUB 菜单、加载 Linux 内核、init 进程初始化。
    引导过程与服务控制

    init进程

  • 由Linux内核加载运行 /sbin/init程序
  • 是系统中第一个进程
  • PID(进程标记)号永远为1

    Systemd单元类型

单元类型 扩展名 说明
Service .service 描述一个系统服务
Socket .socket 描述一个进程间通信的套接字
Device .device 描述一个内核识别的设备文件
Mount .mount 描述一个文件系统的挂载点
Automount .automount 描述一个文件系统的自动挂载点
Swap .swap 描述一个内存交换设备或交换文件
Path .path 描述一个文件系统中文件或目录
Timer .timer 描述一个定时器(用于实现类似cron的调度任务)
Snapshot .snapshot 用于保存一个systemd的状态
Scope .scope 使用systemd的总线接口以编程的方式创建外部进程
Slice .slice 描述居于cgroup的一组通过层次组织的管理系统进程
Target .target 描述一组systemd的单元

运行级别 Systemd的target 说明
0 target 关机状态,使用该级别时将会关闭主机
1 rescue.target 单用户模式,不需要密码验证即可登录系统,多用于系统维护
2 multi-usr.target 用于定义/域特定运行级别。默认等同于3
3 multi-usr.target 字符界面的完整多用户模式,大多数服务器主机运行再次级别
4 multi-usr.target 用于定义/域特定运行级别。默认等同于3
5 graphical.target 图形界面的多用户模式,提供了图形桌面操作环境
6 reboot.target 重新启动,使用该级别时将会重启主机

修复MBR扇区故障

  • 故障原因
    • 病毒***等造成的破坏
    • 不正确的分区操作、磁盘读写误操作
  • 故障现象
    • 找不到引导程序,启动中断
    • 无法加载操作系统,开机后黑屏
  • 解决思路
    • 应提前作好备份文件
    • 以安装光盘引导进入急救模式
    • 从本分文件中恢复
      实验案例

      一、实验步骤
      1.备份mbr引导扇区到其他磁盘
      2.模拟破坏mbr引导扇区
      3.引导镜像急救模式进行mbr扇区恢复
      引导过程与服务控制
      此时备份完成。下面进行模拟破坏:
      引导过程与服务控制
      然后重启:
      引导过程与服务控制
      发现无法重启,引导代码消失,继续重启,眼疾手快!按esc
      引导过程与服务控制
      引导过程与服务控制
      引导过程与服务控制
      引导过程与服务控制
      引导过程与服务控制
      此时创建新的挂载点,将备份的文件挂载上去。

      恢复成功!

      修复GRUB引导故障

  • 故障原因
    • MBR中的GRUB引导程序遭到破坏
    • grub.conf文件丢失、引导配置有误
  • 故障现象
    • 系统引导停滞,显示“grub>”提示符
  • 解决思路
    • 尝试手动输入引导命令
    • 进入急救模式,重写或者从备份中恢复grub.conf
    • 向MRB扇区中重建grub程序

      实验案例

      grub菜单恢复实验步骤
      1.引导急救模式,加载系统镜像
      2.重新建立sda分区
      3.重新构建grub菜单功能配置文件

      注:grub 启动菜单的背景文件
      grub2 启动菜单的配置文件

      引导过程与服务控制
      此时模拟破坏:
      引导过程与服务控制
      重启
      引导过程与服务控制
      同样还是重启时及时按esc
      引导过程与服务控制
      引导过程与服务控制
      引导过程与服务控制
      引导过程与服务控制
      加载系统镜像
      引导过程与服务控制
      chroot /mnt/sysimage/
      重新构建sda
      引导过程与服务控制
      grub2-install /dev/sda
      重新构建grub菜单配置文件
      grub2-mkconfig -o /boot/grub2/grub2.cfg
      引导过程与服务控制
      4.退出bash环境 Exit
      5.重启Reboot
      引导过程与服务控制

遗忘root用户密码

  • 故障原因
    • 遗忘root用户的密码
  • 故障现象
    • 无法进行需要root权限的管理操作
    • 若没有其他可用账号,将无法登录系统
  • 解决思路
    • 进入急救模式,重设密码

      实验案例

  • 破解centos7 root 登录密码
    1.加载镜像系统
    2.修改密码
    引导过程与服务控制
    输入密码
    引导过程与服务控制
    改完之后,重启:
    引导过程与服务控制
    引导过程与服务控制
    直接登录即可

    系统服务控制

  • 常用方式:systemctl 控制类型 服务名称
  • 控制类型:
    srart: 启动
    stop:停止
    restart:重新启动
    seload:重新加载
    status:重看服务状态

    Linux系统的运行级别

  • 查看运行级别

    • Runlevel命令
    • Systemctl工具
  • 临时切换运行级别
    • Init命令
    • Systemctl工具

      实验案例

      引导过程与服务控制
      引导过程与服务控制
      引导过程与服务控制

      在这里,

      systemctl isolate graphical.target=init5

      systemctl isolate multi-user.target=init3

      引导过程与服务控制
      引导过程与服务控制
      引导过程与服务控制

  • 优化启动过程

  • 系统服务管理工具
    • Ntsysv工具
    • 提供一个交互式、可视化窗口
    • 可以再字符终端运行
    • 便于集中管理多个服务
  • Systemctl工具
    • 不提供交互式、可视化窗口
    • 管理单个服务效率更高

      系统服务的启动和控制

  • ntsysv系统服务管理工具
  • ntsysv --level级别列表
    引导过程与服务控制

    查看系统服务的启动状态

  • sysemctl is-enabled 服务名称

    设置系统服务的启动状态

  • systemctl enable/disable 服务名称
    • 按空格取消 按空格开启

      本章总结

  • Linux操作系统引导过程
  • Linux系统服务控制
  • 运行级别切换
  • 优化开机自动加载服务