一.硬盘引导阶段 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两次使系统自动重新启动