第十一单元   系统恢复技术

系统引导过程概述

通电>bios初始化>grub2磁盘引导阶段>grub2文件引导阶段>指定boot所在分区>启动内核

>启动init程序进入初始化阶段>启动systemd初始化进程>去/etc/systemd/中文件>启动程序

>启动登陆环境


bios初始化

基本输入 / 输出系统 ( BIOS ) 是内置于标准 x86/x86-64硬件的固件接口 , 将硬件置于已知状态并准备好系统以加载操作系统


grub 磁盘引导阶段
MBR
        – mbr 的作用是为了记录 /boot 目录所在分区位置
        – 磁盘的 0 磁道 1 扇区的前 446 字节
        – dd if=/dev/zero of=/dev/xda bs=446 count=1        ###破坏记录/boot位置的446字节
        – grub2-install /dev/xda                      ###修复446字节

RH134 UNIT11_其他

破坏后系统无法启动

RH134 UNIT11_其他_02

利用cdrom 挂载iso映像 进入拯救模式

RH134 UNIT11_其他_03

RH134 UNIT11_其他_04

RH134 UNIT11_其他_05

RH134 UNIT11_其他_06

RH134 UNIT11_redhat_07

进入拯救模式后chroot /mnt/sysp_w_picpath 切换到系统根目录

RH134 UNIT11_redhat_08

恢复446字节 

grub2-install  /dev/vda

RH134 UNIT11_redhat_09

恢复后输入两次exit重新启动系统



grub文件引导阶段

     /boot/grub2/grub.cfg
            – 指定 /boot 分区位置
            – 加载内核
            – 启动系统初始化进程
            – grub2-mkconfig            ###将引导文件grub.cfg内容输出在屏幕

删除/boot/grub2/grub.cfg

RH134 UNIT11_其他_10

重启后因缺少grub引导文件而无法进入系统

RH134 UNIT11_redhat_11

此时需要手动引导进入系统

set root="hd0,msdos1"         ###磁盘引导

linux16 /boot/vmlinuz-3.10.0-123.e17.x86_64 ro root=/dev/vda1  ###加载内核

initrd16 /boot/initramfs-3.10.0-123.e17.x86_64.img        ###加载系统初始化进程

boot                  ###引导开机

RH134 UNIT11_其他_12

开机后修复引导文件grub.cfg

RH134 UNIT11_其他_13



内核引导阶段
    检测硬件设备

    设备驱动初始化

    将 / 只读挂在

    载入初始进程 systemd

    内核文件丢失请重新安装内核

删除内核文件/boot/vmlinuz-3.10.0-123.e17.x86_64

RH134 UNIT11_其他_14 

系统重新启动后因缺少内核文件而无法启动

RH134 UNIT11_redhat_15
进入拯救模式

将cdrom挂载至/mnt

RH134 UNIT11_其他_16

将Packages内内核安装文件复制到boot1(自己建立)

将kernel内核包解开

RH134 UNIT11_其他_17

将解开后的内核包内的boot中的内核文件复制到根目录下的boot中

RH134 UNIT11_redhat_18


加载初始化程序initramfs-3.100-123.e17.x86_64.img

初始化程序丢失后系统无法正常启动

RH134 UNIT11_其他_19

进入拯救模式

mkinitrd initramfs-$(uname -r).img $(uname -r)  

###恢复初始化程序映像  $(*) 表示先执行括号内命令  uname -r 输出内核版本号

RH134 UNIT11_其他_20

输入两次exit命令即可开机


systemd 初始化
开启 selinux 和 systemd-tools
加载内核参数
加载系统时钟,键盘,主机名称
读写挂载 / 文件系统
激活 raid , lvm 设备
激活系统配额
启动 multi-user.target.wants 中的所有服务脚本
启用虚拟控台
启动图形




启动级别
runlever0.target -> poweroff.target
runlever1.target -> rescue.target
runlever2.target -> multi-user.target
runlever3.target -> multi-user.target
runlever4.target -> multi-user.target
runlever5.target -> grapical.target
runlever6.target -> reboot.target




忘记root用户密码登陆方式

通电后进入引导后按e键 修改引导 跳过引导

将下图内容改为下下图

RH134 UNIT11_其他_21

RH134 UNIT11_其他_22

ctrl+x进入命令行模式

chroot /sysp_w_picpath       ###切换到系统跟目录

RH134 UNIT11_其他_23

passwd  进行修改命令

RH134 UNIT11_redhat_24

修改完成后需要 touch /.autorelabel使修改的密码生效

RH134 UNIT11_redhat_25