系统恢复

一、系统启动的过程:

通电

bios初始化

grub2磁盘引导阶段

grub2文件引导街道

指定boot所在分区

启动内核,只读挂载/设备

启动init程序进入初始化阶段

启动systemd初始化进程

读取/etc/systemd/中的文件

启动程序

启动登录环境

grub文件引导阶段

由文件/boot/grub2/grub.cfg控制流程

指定/boot分区位置——>加载内核——>启动系统初始化进程——>grub2-mkconfig

内核引导阶段

检测硬件设备——>设备驱动初始化——>将/只读挂载——> 载入初始化进程systemd——>内核文件丢失请重新安装内核

systemd初始化

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

二、系统启动出错恢复

恢复前必知信息:

系统redhat7.2,内核版本3.10.0-327.el7.x86_64

查看根目录挂载在哪个设备上

1.引导程序boot损坏

selinux状态调整成disabled

使用命令破坏/dev/sda前446字节引导

dd if=/dev/zero if=/dev/sda bs=446 count=1

开机无法引导系统

关闭虚拟机,加入iso镜像光盘,设置从光驱启动

步鄹:

Troubleshooting 系统修复

Rescue a Res Hat Enterprise Linux system 选择挽救模式

说明:1.继续

      2.只读挂载

      3.跳过shell

      4.退出

选择1

回车键后可得到一个shell,执行命令:

chroot /mnt/sysimage     #在光盘启动的shell中/mnt/sysimage是系统的根目录

grub2-install /dev/sda

执行两次exit退出从硬盘启动,恢复成功

2.引导文件/boot/grub2/grub.cfg丢失

重新启动之后:

用命令完成grub引导也可以启动系统,直接在grub>后面执行:

set root='hd0,msdos1' 根据自己的boot分区

linux16 /vmlinuz-3.10.0-327.el7.x86_64 root=/dev/vda3  #这里要写根目录所在的设备名称

initrd16 /initramfs-3.10.0-327.el7.x64_64.img

boot                              #完成引导,执行这条命令回到系统启动过程

启动成功后执行grub2-mkconfig > /boot/grub2/grub.cfg恢复即可

3.内核丢失

vmlinuz-3.10.0-327.el7.x86_64

无法启动:

从光盘启动进入挽救模式

查看镜像挂载在哪里

cd /mnt/sysimage/mnt

rpm2cpio /run/install/repo/Packages/kernel-3.10.0-327.el7.x86_64 | cpio -id   

cd boot   #将镜像中内核相关的软件包分离出来,包的数字版本视系统版本而定

cp vmlinuz-3.10.0-327.el7.x86_64 /mnt/sysimage/boot/

从硬盘启动,启动成功即可

4.初始化文件丢失

initramfs-3.10.0-327.el7.x86_64.img

无法启动:

进入挽救模式

chroot /mnt/sysimage

mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)   #生成启动文件,uname -r命令可以查看系统版本号

执行两次exit,从硬盘启动成功即可

5.boot分区丢失

无法启动:

进入挽救模式

两次exit后,从硬盘启动即可

6.闪退

从光盘启动进入挽救模式

chroot /mnt/sysimage

cp /bin/bash /mnt/sysimage/bin/bash

exit退出即可

猜你喜欢

转载自www.cnblogs.com/vaon/p/9196904.html