##系统恢复技术##
##学习目标
引导过程
恢复 Shell
##系统引导过程概述
通电——>进入初始化阶段——>bios 初始化——>grub2 磁盘引导阶段——>grub2 文件引导阶段——> 指定 boot 所在分区——>启动内核,只读挂载 / 设备启动——>init 程序进入初始化阶段——> 启动 systemd 初始化进程——>读取 /etc/systemd/中的文件——>启动程序——>启动登陆环境
##bios初始化
基本输入 / 输出系统 ( BIOS )是内置于标准 x86/x86-64硬件的固件接口,将硬件置于已知状态并准备好系统以加载操作系统
出现什么情况?
– 检测并初始化硬件
– 确定从中引导的设备
可能出现了什么错误?
– 错误或异常 BIOS 设置
– 错误引导设备顺序
可以如何中断或影响?
– 按特定于供应商的键
– 使用特定于供应商的配置实用程序
– 通常, <F12> 可以执行一次引导顺序覆盖
##grub磁盘引导阶段
MBR
– mbr的作用是为了记录/boot目录所在分区位置
–磁盘的0磁道1扇区的前446字节
<code>– </code><code>dd</code> <code>if</code><code>=</code><code>/dev/zero</code> <code>of=</code><code>/dev/xda</code> <code>bs=446 count=1</code>
<code>– grub2-</code><code>install</code> <code>/dev/xda</code>
##grub文件引导阶段
<code>/boot/grub2/grub</code><code>.cfg</code>
–指定/boot分区位置
–加载内核
–启动系统初始化进程
– grub2-mkconfig
##内核引导阶段
检测硬件设备
设备驱动初始化
将/只读挂载
载入初始进程systemd
内核文件丢失请重新安装内核
##systemd初始化
开启selinux和systemd-tools
加载内核参数
加载系统时钟,键盘,主机名称
读写挂载/文件系统
激活raid, lvm设备
激活系统配额
启动multi-user.target.wants中的所有服务脚本
启用虚拟控台
启动图形
##启动级别
runlever0.target -> poweroff.target ##关机
runlever1.target -> rescue.target ##单用户模式
runlever2.target -> multi-user.target ##多用户模式,不支持NFS
runlever3.target -> multi-user.target ##完整多元化模式
runlever4.target -> multi-user.target ##未定义使用
runlever5.target -> grapical.target ##带有图形界面的多用户使用
runlever6.target -> reboot.target ##重启
##设定启动级别
systemctl set-default +启动级别
/etc/systemd/system/default.target
##runlevel ##查看启动级别
##init 数字 ##切换运行级别
##重启,到grub选项菜单,按’e’进入编辑模式。
找到kernel命令行编辑如下图
得到一个shell
<code>chroot </code><code>/sysroot/</code>
<code>passwd</code> <code>root </code>
<code>touch</code> <code>/.autorelabel</code>
按两下ctlr+d或输入两次exit退出重启就可以正常登陆了。
2.##grub磁盘引导损坏
<a href="https://s1.51cto.com/wyfs02/M00/93/00/wKioL1kG4Z_xm97yAADWOO4ja6A116.png" target="_blank"></a>
##启动失败
<a href="https://s3.51cto.com/wyfs02/M00/93/02/wKiom1kG4aOyC20QAACpdXznGdI261.png" target="_blank"></a>
##用rhel-server-7.0-x86_64-dvd.iso镜像引导修复
##建立一个cdrom镜像
<a href="https://s1.51cto.com/wyfs02/M02/93/02/wKiom1kG4aOxt3kJAAGPQzh9mBE445.png" target="_blank"></a>
##镜像放在第一个启动
<a href="https://s1.51cto.com/wyfs02/M02/93/00/wKioL1kG4aTBSBEeAAGMeDYDXqo294.png" target="_blank"></a>
##选择第三个
<a href="https://s1.51cto.com/wyfs02/M00/93/02/wKiom1kG4aWA37rYAACls7V9bF8889.png" target="_blank"></a>
##选择第二个
<a href="https://s4.51cto.com/wyfs02/M00/93/00/wKioL1kG4aWRw4KGAACtOAoR__A407.png" target="_blank"></a>
##选择continue
<a href="https://s1.51cto.com/wyfs02/M00/93/00/wKioL1kG4aXhJ6XNAAC43bMr1nI146.png" target="_blank"></a>
##chroot /mnt/sysimage ##设备数据在/mnt/sysimage
<a href="https://s4.51cto.com/wyfs02/M01/93/02/wKiom1kG4aaTuS71AAD5JkttP5U875.png" target="_blank"></a>
##grub2-install /dev/vda ##安装fgrub2
<a href="https://s3.51cto.com/wyfs02/M01/93/02/wKiom1kG4aeRYqXuAAC6FzKewnI536.png" target="_blank"></a>
3.##损坏grub文件引导
<a href="https://s1.51cto.com/wyfs02/M01/93/00/wKioL1kG4aDhfrR5AAEUXacnKAw047.png" target="_blank"></a>
##重启
##执行命令:set root='hd0,msdos1'
linux16 /boot/vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/vda1
initrd16 /boot/initramfs-3.10.0-123.el7.x86_64.img
<a href="https://s4.51cto.com/wyfs02/M02/93/00/wKioL1kG4ajDokATAAC0y-qdigc765.png" target="_blank"></a>
##进入系统后,在shell输入命令生成缺失的引导文件,系统就修复成功!
grub2-mkconfig > /boot/grub2/grub.cfg
4.内核引导修复
##rm -fr vmlinuz-3.10.0-123.el7.x86_64 ##损坏内核引导
<a href="https://s2.51cto.com/wyfs02/M02/93/02/wKiom1kG4aCg8i0TAAGDzAa1w58056.png" target="_blank"></a>
##重启不成功
<a href="https://s1.51cto.com/wyfs02/M02/93/02/wKiom1kG4amy7KjDAACj86CzWyg207.png" target="_blank"></a>
##用镜像修复
<a href="https://s1.51cto.com/wyfs02/M00/93/00/wKioL1kG4amAEf3ZAADVG389Dlc766.png" target="_blank"></a>
5.内核修复
##rm -fr initramfs-3.10.0-123.el7.x86_64.img ##内核引导损坏
<a href="https://s1.51cto.com/wyfs02/M02/93/00/wKioL1kG4aCytnXfAAGF4uWmsfA332.png" target="_blank"></a>
<a href="https://s4.51cto.com/wyfs02/M01/93/00/wKioL1kG4arzn0PcAACeJgtYdWw705.png" target="_blank"></a>
7.系统启动级别文件链接错误
##rm -fr default.target
##ln -s /usr/lib/systemd/system/poweroff.target /etc/systemd/system/default.target ##开机后立刻关机
<a href="https://s2.51cto.com/wyfs02/M01/93/02/wKiom1kG4aGR1455AAIFeH56rT8656.png" target="_blank"></a>
##启动不成功
<a href="https://s3.51cto.com/wyfs02/M00/93/02/wKiom1kG4avy-0akAAEAsJTPUq4928.png" target="_blank"></a>
##开机按“e”进入编辑模式,完成后按ctrl+x
<a href="https://s5.51cto.com/wyfs02/M00/93/00/wKioL1kG4ayhuJfgAAC9P4ExLvw779.png" target="_blank"></a>
##重新配置default.target
<a href="https://s3.51cto.com/wyfs02/M00/93/03/wKiom1kG8ZfSvR7CAAC2ryqBkDs292.png" target="_blank"></a>
本文转自cuijb0221 51CTO博客,原文链接:http://blog.51cto.com/cuijb/1920966