第十一单元

系统恢复技术

系统引导过程概述

通电 -  - > bios初始化 - - > gurb2 磁盘引导阶段 - -  > grub2 文件引导阶段 - - >

指定 boot 所在分区 - - > 启动内核,只读挂在 / 设备 - - > 启动 init 程序进入初始化阶段 - - > 启动 systemd 初始化进程 - - > 读取 /etc/systemd/中的文件 - - > 启动登入环境

 

grub 磁盘引导阶段

 

mbr

mbr是主引导记录,在磁盘的 0 磁道 1 扇区的前 446 字节 ,它的作用是为了记录 /boot 目录所在分区位置

 

1) 损坏mbr

如果将mbr的446个字节损坏,则系统无法启动,会一直显示从硬盘读取,无法进入系统

dd   if=/dev/zero    of=/dev/xda    bs=446     count=1

系统恢复技术_第1张图片

报错:

系统恢复技术_第2张图片 

 

2 )恢复

 

grub2-install      /dev/xda

 

先进入虚拟机的救援模式:

让系统从cdroom读取:add  hardware  - - > device  

 系统恢复技术_第3张图片type  选cdrom  device - - > 

系统恢复技术_第4张图片

boot option 将cdrom1移到最上面 - - > apply

系统恢复技术_第5张图片

进入后:chroot    /mnt/sysp_w_picpath/      ###转换到真实的/目录下####

系统恢复技术_第6张图片

      grub2-install      /dev/vda

      exit

      exit                         ###退出两次####

系统恢复技术_第7张图片

 

 

然后将cdroom移到最后,重新开启即可

 

 

 

 

grub文件引导阶段

 

/boot/grub2/grub.cfg文件里含有指定 /boot 分区位置,加载内核,启动系统初始化进程。

若是将此文件删除,则系统会启动不了

 系统恢复技术_第8张图片

 系统恢复技术_第9张图片

解决:在reboot前可以grub2-mkconfig 生成grub2.cfg文件。

若是reboot后,则需要手动引导:

1 指定/boot分区

 

set    root=‘hd0,msdos1’       ###若是vda1,则是hd0,msdos1,若是vdb2,则是hd1,msdos2,若是vdc1则是hd3,msdos1######

 

2 加载内核

linux16    /boot/vmlinuz-3.10.0-123.e17.x86_64   ro   root=/dev/vda1  ###ro指将其只读挂载/

 

3 启动系统初始化进程

 

initrd16 /boot/initramfs-3.10.0-123.e17.x86_64.img

 

4 启动系统

 boot

 

5 执行grub2-mkconfig  > grub.cfg 即可

 系统恢复技术_第10张图片

 

 

内核引导阶段

 

检测硬件设备

设备驱动初始化

/ 只读挂在

载入初始进程 systemd

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

 

1 文件内核丢失:

文件内核在/boot下

 系统恢复技术_第11张图片

系统恢复技术_第12张图片

2 恢复:先进入救援模式,然后执行以下命令:

    chroot    /mnt/sysp_w_picpath/              ###转换到/目录下####

    mount    /dev/cdrom      /mnt/        ###挂载镜像###

    cp      /mnt/Package/kernel-3.10.0-123.e17.x86_64.rpm      /root  ###将关于内核的软件包移到/root下#####

    cd     /root/

    rpm2cpio     kernel-3.10.0-123.e17.x86_64.rpm    | cpio  -id     ###将安装包格式转化成cpio格式,并解压成目录#####

    cd    boot/

    cp      vmlinuz-3.10.0-123.e17.x86_64   /boot/   ###将内核文件移到/boot/下####

    exit

    exit              ###两次退出####

 

 

  systemd  初始化

 

开启 selinux 和 systemd-tools

加载内核参数

加载系统时钟,键盘,主机名称

读写挂载 / 文件系统

激活 raid , lvm 设备

激活系统配额

启动 multi-user.target.wants 中的所有服务脚本

启用虚拟控台

启动图形

 

1 删除初始化文件

 系统恢复技术_第13张图片

 系统恢复技术_第14张图片

2 恢复

先进入救援模式,然后执行以下命令:

chroot      /mnt/sysp_w_picpath/

mkinitrd    /boot/inittramfs-$(uname  -r).img     $(uname  -r)  ####uname    -r指内核版本,$()指先执行括号内的内容,该命令指生成初始化文件###

exit

exit                    ###两次退出####

  系统恢复技术_第15张图片                        

 

 

3  systemd启动服务的链接出现问题

系统启动时会自行运行其所在target级别相应的目录里所有链接的服务,例:系统开机进入图形界面,是因为default.target -> /lib/systemd/system/graphical.target,如果链接出现问题也会导致系统无法正常启动

系统恢复技术_第16张图片

例:rm    -fr    default.target      ###删除default.target#####

  ln     -s      /usr/lib/systemd/system/poweroff.target  /etc/systemd/system/default.target              ####使/etc/systemd/system/default.target链接到/usr/lib/systemd/system/poweroff.target#####

 

 系统恢复技术_第17张图片

出现的情况:

 系统恢复技术_第18张图片

解决办法:

e

 系统恢复技术_第19张图片

 

从内核文件那段结尾开始删除到ro,改成rw   rd.break,按ctrl+x

 

 系统恢复技术_第20张图片

 

chroot   /sysroot/                ###转换/###

rm   -fr     /etc/systemd/system/default.target    ###删除原有的链接###

 ln     -s      /usr/lib/systemd/system/graphical.target    /etc/systemd/system/default.target    ###链接到/usr/lib/systemd/system/graphical.target####

exit

exit                      ###两次退出###

 系统恢复技术_第21张图片

 

 

忘记密码

 

解决方法:

 

e

 

 

从内核文件那段结尾开始删除到ro,改成rw   rd.break,按ctrl+x

 

 

 

chroot   /sysroot/                ###转换/###

passwd                        ###修改密码####

exit

exit                      ###两次退出###

 系统恢复技术_第22张图片