一.硬盘引导阶段 mbr主引导记录的恢复
1.查看虚拟机的版本号
hostnamectl ##查看系统版本号

2.模拟问题:mbr主引导记录丢失,如何恢复
fdisk -l ##查看主引导记录是放在哪个硬件中,带*号的vda

dd if=/dev/zero of=/dev/vda1 bs=446 count=1 ##将系统启动主引导记录切割

reboot发现无法重启

3.mbr主引导记录的恢复
1)关闭虚拟机器
2)光盘方式添加镜像7.0

指定光驱路径

3)设置启动优先级Boot Options,将光驱启动优先级设置成最高,apply保存设置

4)打开虚拟机
选择Troubleshooting故障排错

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

选择Continue,注意看提示信息

选择ok

选择ok

提示Your system is mounted under the /mnt/sysimage directory
重要的事情说三遍
5)
df ##查看 /dev/vda3挂载到/mnt/sysimage

chroot /mnt/sysimage/ ##更改分区/dev/vda1挂载目录由/mnt/sysimage修改成/
df ##查看 /dev/vda1 挂载到/

6)安装
grub2-install /dev/vad ##grub2-install 启动分区所在硬盘

7)两次exit退出
8)此时系统启动默认读的是光盘文件,将系统启动优先级更改
Boot Options 中设置启动Hard Disk优先

虚拟机就可以正常重新启动了

二.文件引导阶段-引导文件丢失
1.引导文件的位置/boot/grub2/grub.cfg


2.模拟问题:删除引导文件
rm -fr /boot/grub2/grub.cfg ##删除引导文件

3.解决问题:
1)当删除之后系统没有重新启动(没有重启之前恢复)
grub2-mkconfig > /boot/grub2/grub.cfg ##将grub2-mkconfig中的内容导到引导文件中

2)当删除之后系统重启(这种情况比较常见)

重启时发现无法启动
grup > set root='hd0,msdos1' ##此位置是不固定的,位置指定/boot所在分区;hd0指的是系统在/dev/vda;msdos1指的是/dev/vda1;这里有两种情况:如果/boot分区单独列出,则是/boot分区所在的硬盘分区号;如果不是独立出的,则写/分区所在的硬盘分区号
grup > linux16 /boot/vmlinuz-3.10.0-123.e17.x86_64 ro root=/dev/vad1 ##把设备只读挂载到根分区,设置内核文件
grup > initrad16 /boot/initramfs-3.10.0-123.e17.x86_64.img ##系统初始化镜像,设置initrd文件
grup > boot ##启动
发现可以重新启动

以上操作可以使系统正常启动,但是是临时的,所以进入系统后还是需要执行如下命令恢复
grub2-mkconfig > /boot/grub2/grub.cfg ##将grub2-mkconfig中的内容导到引导文件中

三.文件引导阶段-内核文件丢失
1.内核文件

2.模拟问题:删除内核文件
rm -fr /boot/vmlinuz-3.0.0-123.e17.x86_64 ##删除内核文件
reboot ##重启
发现启动不了

3.解决问题:
1)设置启动优先级Boot Options,将光驱启动优先级设置成最高,apply保存设置

2)打开虚拟机
选择Troubleshooting故障排错

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

选择Continue,注意看提示信息

选择ok

选择ok

提示Your system is mounted under the /mnt/sysimage directory
3)
df ##查看 /dev/vda3挂载到/mnt/sysimage

chroot /mnt/sysimage/ ##更改分区/dev/vda1挂载目录由/mnt/sysimage修改成/
df ##查看 /dev/vda1 挂载到/

4)内核文件的恢复
mkdir /westos ##创建目录/westos
mount /dev/sr0 /westos ##将镜像挂载到/westos
cd /westos ##到/westos可以看到镜像里东西

cd Packages/ ##切换到安装包目录
cp kernel-3.10.0-123.e17.x86_64.rpm /mnt/ ##把包复制到/mnt,因为光盘文件是不可以进行拆包的
cd /mnt ##切换到/mnt

rpm2cpio kernel-3.10.0-123.e17.x86_64.rpm | cpio -id ##拆包
ls ##查看包中文件
pwd ##当前位置
cd boot/ ##切换到包中boot/目录下
ls -l ##包中有内核文件
cp vmlinuz-3.10.0-123.e17.x86_64 /boot/ ##将内核文件复制到/boot/

5)两次exit退出
6)此时系统启动默认读的是光盘文件,将系统启动优先级更改
Boot Options 中设置启动Hard Disk优先

虚拟机就可以正常重新启动了

四.系统初始化镜像文件丢失
1.模拟问题:删除初始化镜像文件
rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img ##删除初始化镜像文件

2.解决问题
当系统没有重启时
mkinitrd --help ##mkinitrd命令帮助

uname -r ##内核版本号
mkinitrd /boot/initramfs-3.10.0-123.el7.x86_64.img 3.10.0-123.el7.x86_64##重新生成初始化镜像文件(方法1)

mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)##重新生成初始化镜像文件(方法2)

当删除后系统重启

发现重启出现问题

1)设置启动优先级Boot Options,将光驱启动优先级设置成最高,apply保存设置

2)打开虚拟机
选择Troubleshooting故障排错

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

选择Continue,注意看提示信息

选择ok

选择ok

提示Your system is mounted under the /mnt/sysimage directory
3)
chroot /mnt/sysimage/ ##更改分区/dev/vda1挂载目录由/mnt/sysimage修改成/
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)##重新生成初始化镜像文件

4)两个exit退出
5)此时系统启动默认读的是光盘文件,将系统启动优先级更改
Boot Options 中设置Hard Disk优先启动

虚拟机就可以正常重新启动了

五./boot分区被删除
1.问题模拟:删除/boot分区

发现重启出现问题

2.解决问题
1)设置启动优先级Boot Options,将光驱启动优先级设置成最高,apply保存设置

2)打开虚拟机
选择Troubleshooting故障排错

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

选择Continue,注意看提示信息

选择ok

选择ok

提示Your system is mounted under the /mnt/sysimage directory
3)
chroot /mnt/sysimage/ ##更改分区/dev/vda3挂载目录由/mnt/sysimage修改成/
4)mbr主引导记录的恢复

5)内核文件恢复

6)系统初始化镜像文件恢复

7)引导文件恢复

8)两次exit退出

9)此时系统启动默认读的是光盘文件,将系统启动优先级更改
Boot Options 中设置Hard Disk优先启动

虚拟机就可以正常重新启动了

六.当开机启动级别被篡改
systemctl set-default + 启动级别 ##设定启动级别
##启动级别
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
开机启动级别被篡改:
sysremctl ser-default reboot.target ##篡改开机启动级别

发现重启不了

解决问题:
1.开机按上下键停止读秒
2.按’E’进行编辑模式
3.选择内核启动行
linux16 /vmlinuz-xxxxxxx 5

4.启动系统
ctrl +x

5.重新启动后永久设定
systemcl set-default graphical.target

七.root密码忘记
1.重新启动系统
2.在系统启动阶段按上下健停止系统系统引导

3.选择启动引导标题,按“E”进行编辑

4.找到linux16引导条目这一行,从这行最后删除到ro选项,并把ro改为rw,然后添加rd.break选项

5.ctrl+x启动设定过后的系统引导条目
6.进入系统后执行chroot /sysroot切换到真实的系统环境
7.passwd root修改超级用户密码
8.建立文件/.autorelabel让系统从新扫描所有文件
9.exit两次使系统自动重新启动

1897

被折叠的 条评论
为什么被折叠?



