一、首先对MBR和分区表进行备份,并将备份的mbr文件存放在FTP或者U盘中,备份内核文件安装包
[[email protected] ~]#dd if=/dev/sda of=/root/mbr bs=512 count=1 [[email protected] ~]# cd /boot [[email protected] boot]# ls config-3.10.0-123.el7.x86_64 symvers-3.10.0-123.el7.x86_64.gz grub2 System.map-3.10.0-123.el7.x86_64 initramfs-0-rescue-9e0bb12a92ad483499d77d78010474c1.img vmlinuz-0-rescue-9e0bb12a92ad483499d77d78010474c1 initramfs-3.10.0-123.el7.x86_64.img vmlinuz-3.10.0-123.el7.x86_64 [[email protected] boot]# rpm -qf vmlinuz-3.10.0-123.el7.x86_64 kernel-3.10.0-123.el7.x86_64
将安装光盘中的
kernel-3.10.0-123.el7.x86_64.rpm包进行备份
二、此处模拟系统MBR和boot文件夹丢失,此步在修复引导时不要操作
[[email protected] boot]# dd if=/dev/zero of=/dev/sda bs=512 count=1 [[email protected] boot]# rm -rf /boot/*
三、修复开始:挂载光盘或者从PXE启动,进入到救援模式
给本地网卡配置一个IP地址,然后将FTP上的MBR下载到本地
#ifconfig eno33554960 192.168.0.102 netmask 255.255.255.0 #ftp 192.168.0.99 #get mbr #bye #dd if=mbr of=/dev/sda
这样就对MBR和分区表进行了还原
按exit,exit,重启电脑,重新进入救援模式,此时系统已经能识别分区表,将根挂载到/mnt/sysimage
重新将根切换回/,然后重新安装grub,重新安装内核文件
sh-4.2#chroot /mnt/sysimage bash-4.2#grub2-install /dev/sda bash-4.2#ifconfig eno33554960 192.168.0.102 netmask 255.255.255.0 bash-4.2#ftp 192.168.0.99 bash-4.2#get kernel-3.10.0-123.el7.x86_64.rpm bash-4.2#rpm -ivh --force kernel-3.10.0-123.el7.x86_64.rpm
重新启动用电脑,进行到救援模式,重新生成grub.cfg配置文件
bash-4.2#grub2-mkconfig > /boot/grub2/grub.cfg bash-4.2#sync bash-4.2#exit exit
系统会自动重启两次,启动完成后,系统修复完成,可以正常登陆系统
如果只是grub.cfg文件丢失,可以直接在grub命令提示符中手动输入启动命令,启动完成后用grub2-mkconfig > /boot/grub2/grub.cfg进行修复grub.cfg文件,启动为硬盘分区时,root=/dev/sda1如果为逻辑卷,根椐卷组名而不一样,这里以/dev/mapper/rhel-root为例
grub> set root=‘hd0,msdos1‘ grub> linux16 /vmlinuz-3.10.0-123.el7.x86_64 root=/dev/mapper/rhel-root ro grub> initrd16 /initramfs-3.10.0-123.el7.x86_64.img grub> boot
启动完成后进入桌面后使用grub2-mkconfig修复grub配置文件
#grub2-mkconfig > /boot/grub2/grub.cfg
重新启动后,系统正常引导
时间: 2024-10-10 02:03:30