• 玄子Share-引导过程与服务控制


    玄子Share-引导过程与服务控制

    Linux操作系统引导过程

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    系统初始化进程

    • init 进程
      • 由 Linux 内核加载运行 /sbin/init 程序
      • init 进程是系统中第一个进程
      • init 进程的 PID(进程标记)号永远为 1
    • Systemd
      • Systemd是Linux操作系统的一种init软件
      • CentOS7中采用全新的Systemd启动方式,取代传统的SysVinit
      • CentOS7中运行的第一个init进程是/lib/systemd/systemd

    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 目标

    文件路径: /lib/systemd/system/ 和 /usr/lib/systemd/system/

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

    系统启动类故障排除

    修复MBR扇区故障

    • 故障原因
      • 病毒、木马等造成的破坏
      • 不正确的分区操作、磁盘读写误操作
    • 故障现象
      • 找不到引导程序,启动中断
      • 无法加载操作系统,开机后黑屏
    • 解决思路
      • 应提前作好备份文件
      • 以安装光盘引导进入急救模式
      • 从备份文件中恢复
    # 虚拟机新添加一块磁盘,然后开机
    fdisk -l
    # 查看新添加磁盘
    fdisk /dev/sdb
    # 进行磁盘分区管理:n,p,1,默认,默认,w
    partx  /dev/sdb
    # 更新内核关于磁盘分区表的信息
    mkfs.ext4 /dev/sdb1
    # 格式化分区为 CentOS6 默认类型 ext4
    mkdir /backup
    # 创建挂载点目录
    mount /dev/sdb1 /backup/
    # 挂载分区至挂载点目录
    mount | tail -1
    # 查看分区挂载情况
    dd if=/dev/sda of=/backup/sda.mbr.bak bs=512 count=1
    # 备份 MBR;bs=512 MBR 默认 512 大小;count=1 复制一份
    ls -hl /backup/sda.mbr.bak 
    # 查看备份文件信息
    dd if=/dev/zero of=/dev/sda bs=512 count=1
    # 模拟 MBR 被破坏的故障
    reboot
    # 重启系统
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    重启进入系统前确保,已勾选连接选项

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    重启系统后选择第三项,进入急救模式

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    键盘按下,选择语言模式为简体中文

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    保持默认,回车

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    键盘按下取消网络设置,回车

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    选择Continue,回车

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    按下回车,输入如下命令

    mkdir /tempdir
    # 重新创建挂载点目录
    mount /dev/sdb1 /tempdir
    # 挂载分区
    dd if=/tempdir/sda.mbr.bak of=/dev/sda bs=512 count=1
    # 从之前备份的 MBR 恢复
    reboot
    #  重启
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    重启后进入登录界面,修复完毕

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    修复GRUB引导故障

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

    进入系统前确保,已勾选连接选项

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    开机进入系统,以此执行如下命令

    cd /boot/grub
    # 进入到 grub 目录
    mv grub.conf grub.conf.bak
    # 同目录下执行 mv 命令相当于重名操作,模拟 grub 损坏
    init 0
    # 关闭系统
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    右键系统,电源,选择打开电源时进入固件,即 BIOSS 模式,提一句,这里右键很容易选错虚拟机,启动前确认一下

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    键盘按下选择boot,按下选中CD-ROM Drive按下Shift +调整至第一位,按下F10报错退出

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    进入安装选择界面,使用同样的方式进入急救模式到 shell 页面,输入如下命令

    chroot /mnt/sysimage
    # 从急救系统切换到代修复的 Linux 根目录
    cd /boot/grub
    # 切换到  grub 目录
    mv grub.conf.bak grub.conf
    # 同样使用 mv 命令重命名恢复 grub.conf
    exit
    # 退出
    reboot
    # 重启
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    重启后,仍然进入安装界面,因为:BIOSS 设置CD-ROM Drive为启动项第一位,需要重新以固件模式启动并恢复BIOSS 设置

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    +Hard Drive调整至第一位,F10保存退出

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    重启后等待时间较长,需要重新扫描 grub,等待后进入登录界面,修复完毕

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    /etc/inittab文件丢失

    遗忘root用户密码

    • 故障原因
      • 遗忘root用户的密码
    • 故障现象
      • 无法进行需要root权限的管理操作
      • 若没有其他可用帐号,将无法登录系统
    • 解决思路
      • 引导进入单用户模式,然后重设密码
        • grub > kernel … single 或 s 或 1
      • 或进入急救模式,然后重设密码
    方式1

    进入系统前确保,已勾选连接选项

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    因为系统没有启动问题,无法进入安装界面,所以用 BIOSS 启动并将CD-ROM Drive 设置到第一位,F10保存退出

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    重启后进入安装界面,使用同样的方式进入急救模式

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    进入 shell 界面,输入如下命令,关机后记得恢复 BIOSS 设置,将+Hard Drive调整至第一位,F10保存退出

    chroot /mnt/sysimage
    # 从急救系统切换到代修复的 Linux 根目录
    passwd root
    # 修改 root 密码
    exit
    # 退出
    reboot
    # 重启
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    重启后进入登录界面,修复完毕,使用刚修改的 root 密码登录

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    方式2

    正常开机,在读秒期内,键盘按下E

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    再次按下E

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    选择第二项,键盘按下E

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    后面加上数字1,回车

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    键盘按下B键,进入单用户模式

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    进入单用户模式,使用passwd命令重置 root 密码

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    重启后进入登录界面,修复完毕,使用刚修改的 root 密码登录

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    系统文件类故障排除

    修复文件系统

    • 故障原因

      • 非正常关机、突然断电、设备读写失误等
      • 文件系统的超级块(super-block)信息被破坏
    • 故障现象

      • 无法向分区中读取或写入数据
      • 启动后提示“Give root password for maintenance”
    • 解决思路

      • 根据提示输入root口令,进入修复状态
      • 使用fsck命令进行修复
    # 虚拟机新添加一块磁盘,然后开机
    fdisk -l
    # 查看新添加磁盘
    fdisk /dev/sdb
    # 进行磁盘分区管理:n,p,1,默认,默认,w
    partx  /dev/sdb
    # 更新内核关于磁盘分区表的信息
    mkfs.ext4 /dev/sdb1
    # 格式化分区为 CentOS6 默认类型 ext4
    mkdir /kgc
    # 创建挂载点目录
    mount /dev/sdb1 /kgc
    # 挂载分区至挂载点目录
    mount | tail -1
    # 查看分区挂载情况
    dd if=/dev/zero of=/dev/sdb1 bs=512 count=4
    # 损坏 sdb1 分区
    mount /dev/sdb1 /kgc
    # 重新挂载分区 mount:you must specify the filesystemtype
    fsck -y -t ext4 /dev/sdb1
    # 使用 fsck 命令修复 sdb1 指定修复分区格式为 ext4
    mount /dev/sdb1 /kgc
    # 再次尝试挂载
    mount | tail -1
    # 查看分区挂载情况
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    磁盘资源耗尽故障

    • 故障原因

      • 磁盘空间已被大量的数据占满,空间耗尽
      • 虽然还有可用空间,但文件数i节点耗尽
    • 故障现象

      • 无法写入新的文件,提示“… : 设备上没有空间”
      • 部分程序无法运行,甚至系统无法启动
    • 解决思路

      • 清理磁盘空间,删除无用、冗余的文件
      • 转移或删除占用大量i节点的琐碎文件
      • 进入单用户模式、急救模式进行修复
      • 为用户设置磁盘配额
    # 虚拟机新添加一块磁盘(磁盘容量给小点 0.1 ),然后开机
    fdisk -l
    # 查看新添加磁盘
    fdisk /dev/sdb
    # 进行磁盘分区管理:n,p,1,默认,默认,w
    partx  /dev/sdb
    # 更新内核关于磁盘分区表的信息
    mkfs.ext4 /dev/sdb1
    # 格式化分区为 CentOS6 默认类型 ext4
    mkdir /data
    # 创建挂载点目录
    mount /dev/sdb1 /data
    # 挂载分区至挂载点目录
    mount | tail -1
    # 查看分区挂载情况
    df -i /data
    # Ifree 剩余节点空间
    vim /killInode.sh
    # 编写脚本文件自动生成,把剩余空间填充完
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    #! bin/bash
    i=1
    while [ $i -le 26197 ]
    do
    	touch /data/file$i
    	let i++
    done
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    cd /
    # 切换到根目录
    ./killInode.sh &
    # 执行脚本文件 & 后台执行
    # 若提示无权限,则执行 chmod /killInode.sh 755 分配执行权限
    df -i /data
    # 查看剩余空间,显示全部占用
    cp  /etc/passwd /data
    # 复制文件到 data 无法复制,空间全部占用
    rm -rf /data/file?
    # 删除部分文件
    cp  /etc/passwd /data
    # 重新复制,复制成功
    df -i /data
    # 再次查看剩余空间
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    检测磁盘坏道

    • 故障原因
      • 磁盘设备中存在坏道(逻辑的或物理的)
    • 故障现象
      • 读取磁盘中的数据时,磁盘设备发出异常声响。
      • 访问磁盘中的某个文件时,反复读取且出错,提示文件损坏。
      • 对于新建立的分区无法完成格式化。
      • 系统使用该磁盘时频繁死机
    badblocks -sv /dev/sdb
    # 扫描磁盘坏道 Pass completed, 0 bad blocks found.
    
    • 1
    • 2

    系统服务管理

    重启操作

    • 基于CentOS 6 的重启操作
      • init 6
      • reboot
      • shutdown -r now
    • 基于CentOS 7 的重启操作
      • init 6
      • reboot
      • shutdown -r now
      • systemctl reboot

    关机操作

    • 基于CentOS 6 的关机操作
      • init 0
      • poweroff
      • shutdown -h now
      • halt -p
    • 基于CentOS 7 的关机操作
      • init 0
      • poweroff
      • shutdown -h now
      • halt -p
      • systemctl poweroff

    系统服务控制

    systemctl  控制类型 服务名称
    # CentOS7
    service 服务名称 控制类型
    # CentOS6
    
    • 1
    • 2
    • 3
    • 4
    • start:启动
    • stop:停止
    • restart:重新启动r
    • eload:重新加载
    • status:查看服务状态

    查看Linux系统的运行级别

    • runlevel 命令(6)

      • 两个参数,第一个参数表示上次使用运行级别(默认N),第二个参数表示当时使用运行级别
    • systemctl 工具(7)

      • systemctl 查看默认的运行级别 target

    临时切换运行级别

    • init 参数运行级别对应数字(6)
      • init 3 :从桌面切换到字符终端
      • init 5 :从字符终端切换到桌面
    • systemctl 工具参数具体 rarget(7)
      • systemctl isolate multi-user.target :从桌面环境切换到字符终端
      • systemctl isolate graphical-user.target :从字符终端切换到桌面

    设置永久运行级别

    基于CentOS 6

    • 将系统的运行级别永久设置为多用户字符终端,对应的运行级别是3

      • 修改配置文件:vim /etc/inittab
      • id:5:initdefault: (修改id就是运行级别)
    • 将系统的运行级别永久设置为多用户桌面环境,对应的运行级别是5

      • 修改配置文件:vim /etc/inittab

      • id:3:initdefault: (修改id就是运行级别)

    基于CentOS 7

    • 将系统的运行级别永久设置为多用户字符终端,对应的运行级别是 3

      • ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
      • systemctl get-defaults
    • 将系统的运行级别永久设置为多用户桌面环境,对应的运行级别是 5

      • ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
      • systemctl get-defaults
    systemctl  set-default multi-user.target
    # 设置字符页面
    systemctl  set-default graphical.target
    # 设置图形页面
    
    • 1
    • 2
    • 3
    • 4

    系统服务介绍

    linux 系统中,有一些特殊程序,启动后会持续在后台运行,等待用户或其他软件调用,这种程序称为服务

    • 系统服务:服务的对象是linux系统本身
    • 网络服务:服务的对象是网络中的客户端

    系统服务优化启动过程

    基于CentOS 6

    • ntsysv工具
      • 命令模式:ntsysv --level 运行级别 服务名称
    • chkconfig 配置工具
      • 命令模式:chkconfig --level 运行级别 服务名称 开启或禁用 (on/off)

    基于CentOS 7

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

    系统服务的启动和控制

    ntsysv 系统服务管理工具

    ntsysv                         
    # 用于管理当前运行级别中的服务 
    ntsysv --level  2345
    # 对指定运行级别中的服务进行管理
    # 有*号代表开机自启动
    
    • 1
    • 2
    • 3
    • 4
    • 5

    Centos6 服务开机自启动控制-chkconfig

    查看系统服务的开机启动状态

    chkconfig  --list  
    # 服务名称
    
    • 1
    • 2

    设置系统服务的开机启动状态

    chkconfig  --level 2345   服务名称  on
    # 将服务设置为开机启动
    chkconfig  --level 2345   服务名称  off
    # 将服务设置为开机不启动
    
    • 1
    • 2
    • 3
    • 4

    Centos7 服务开机自启动控制-systemctl

    查看系统服务的开机启动状态

    systemctl is-enabled 服务名称
    
    • 1

    设置系统服务的开机启动状态

    systemctl  enable   服务名称       
    # 将服务设置开机自启动
    systemctl  disable  服务名称       
    # 将服务设置开机不启动
    systemctl  enable   服务名称 --now  
    # 将服务启动并设置开机自启动
    systemctl  disable  服务名称 --now  
    # 将服务关闭并设置开机不启动
    systemctl  enable   服务名称 服务名称  服务名称
    # 批量设置将服务设置开机自启动
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    查看系统中所有以激活的系统服务

    systemctl  list-units  --type=service
    
    • 1

    玄子Share-引导过程与服务控制 2024-03-23

  • 相关阅读:
    代码随想录二刷 Day 37
    Linux内核开发基础-1 --- 可重定位代码 分段机制的起源
    .NET Flee 字符串表达式动态解析,怎么性能优化!!
    计算机专业大学生应该在大学四年踏实学哪些东西?
    数据驱动!精细化运营!用机器学习做客户生命周期与价值预估!
    烽火服务器下修改远程管理IP的步骤(完整版)
    Java类中this关键字和static关键字的用法详解
    基于HBuilderX+UniApp+ThorUI的手机端前端的页面组件化开发经验
    网络安全漏洞分析之远程代码执行
    修饰蛋白质磷脂-聚乙二醇-酰肼|DSPE-PEG-Hydrazide|DSPE-PEG-HZ
  • 原文地址:https://blog.csdn.net/qq_62283694/article/details/138208428