命令:
dd if=/dev/zero of=/dev/sda1 bs=446 count=1 ###删除磁盘中的分区引导信息,信息长度446个字节
此时重启机器会出现如下信息
2.此时就需要系统挽救模式了:
在这个虚拟机的硬件上添加光盘硬件,并将光盘硬件设置成第一启动项,如下面的两个截图:
3.上述设置完成后启动虚拟机:选择Troubleshooting(挽救模式)
4.选择Rescue a Red Hat Enterprise Linux system
5/在系统出现下面的提示时候选择1)Continue
此时输入chroot /mnt/sysimage ###切换至root环境下的shell,在该shell下输入 :
grub2-install /dev/sda
当系统显示Installation finished.No error reported时,新的磁盘引导信息安装成功。两次exit重新启动机器。系统恢复正常工作。
注:在重启的过程中可能出现的报错:
在出现上述信息之后系统会卡在下一个界面,这时候就需要把selinux的工作状态更改为disbaled,系统就会正常启动。
准备工作:查看当前机器的/boot分区和根分区挂载的位置
[root@software_install ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 9450496 3521756 5928740 38% /
devtmpfs 493592 0 493592 0% /dev
tmpfs 508260 144 508116 1% /dev/shm
tmpfs 508260 7140 501120 2% /run
tmpfs 508260 0 508260 0% /sys/fs/cgroup
/dev/sda1 201380 149512 51868 75% /boot
tmpfs 101656 4 101652 1% /run/user/42
tmpfs 101656 8 101648 1% /run/user/0
[root@software_install ~]#
如上所示是机器的挂载信息,根分区挂载在/dev/sda3,boot分区挂载在/dev/sda1(即就是系统的第一块硬盘的第一块分区,分区位至可以用fdisk -l,及fdisk /dev/***查看,读者自行寻找规律)
实验步骤:1.删除启动文件
rm -rf /boot/grub2/grub.cfg
reboot
重新启动之后的界面是:
grub > set root='hd0,msdos1' ##此位置是不固定的,位置指向/boot所在分区。在另一个快照上可以用fdisk -l,fdsik /dev/XXX查看.
grub > linux16 /vmlinuz-3.10.0-123.e17.x86_64 ro root=/dev/sda3 ###此位置是根分区
grub > initrd16 /initrmfs-3.10.0-123.e17.x86_64.img
grub > boot
在此过程中系统可以进行自动补全,读者可以根据这一点进行自纠错
注:在机器启动之后要重新生成启动文件
grub2-mkconfig > /boot/grub2/grub-cfg
模拟问题:rm -rf /boot/vmlnuz-3.10.0-123.e17.x86_64 ###删除内核
重启机器后会出现如下信息:
#####如果删除了内核
模拟问题:rm -rf /boot/vmlnuz-3.10.0-123.e17.x86_64
在重启机器之后会出现下面的界面:
进入到挽救模式(之前介绍过进入挽救模式的方法)
chroot /mnt/sysimage
mkdir /rhel7
mount /dev/sr0 /rhel7
cd /rhel7/Packages
cp kernel-3[tab] /mnt
cd /mnt
rpm2cpio kernel-3.10.0-123.e17.x86_64.rpm | cpio -id ###分解包
cd boot
cp vmlinuz-3.10.0-123.e17.x86_64 /boot
两次exit
exit
exit
重启之后机器恢复正常
模拟问题: rm -rf /boot/initramfs-3.10.0.....img ###删除初始化镜像文件
当系统没有重启的时候
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
当系统重启之后
进入挽救模式
chroot /mnt/sysimage
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
重启系统会恢复正常。
cd /etc/systemd/system/mulit-[tab] ###此文件中全是链接文件,链接着相应的服务
systemctl set-default shutdown.target ###将系统的默认级别设置成关机,此时机器开机后会自动关机
解决方法:在开机选择系统的时候按上下键,打断系统自动开机,再按e编辑模式
在内核版本quiet后面写5(进入到图形界面)按ctrl+x开机。
开机之后将系统的默认级别设置回来。
rm -rf /boot
进入挽救模式
chroot /mnt/sysimage
mkdir /boot
grub2-install /dev/sda
mount /dev/cdrom /mnt
rpm -ivh /mnt/Packages/kernel-3[tab] --force
grub2-mkconfig > /boot/grub2/grub.cfg
两次exit
注:在删除boot分区的时候会提示Dexice or resource busy ,但是这是如果查看boot目录,boot目录下一个文件都没有,说明删除成功。后面的安装包可能会安装的比较慢,耐心等待。