案发场景
系统:kali-deppin
内核版本:4.19.0-kali4-amd64
升级版本:4.19.0-kali5-amd64
升级工具:apt upgrade

在执行升级过程中一切顺利,重启后,报出一个

`error:symbol ‘grub_file_filters’ not found
…
 grub rescue>


`
发现这个问题第一反应是引导坏了,需要修复,该怎么修复,是我头疼的问题。
第一次尝试

grub rescue>ls 
(hd0) (hd0,ds0) (hd0,ds1)
grub rescue>ls   (hd0,ds1)
(hd0,ds1)×××××××××ext2
grub rescue>set  root=hd0,ds1
grub rescue>set  prefix=(hd0,ds1)
grub rescue>insmod  normal (这一步的时候报错)
××××××× not  found
~~本人电脑根目录在hd0,ds1上,各位伙计因人而异~~

失败告终;

第二次尝试
系统压根起不来,想起来linux有一个救援模式(Rescue mode),果断找了一台win系统的电脑,下载新版的kail系统,并用DD制作系统U盘,进入Live CD模式(这是其他像Ubuntu等系统的叫法,道理都是通的,不认识英文自行百度吧)

  1. 打开一个terminal,先输入sudo fdisk -l查看磁盘信息
  2. 输入 sudo -i (此步用于取得root权限)
  3. mkdir /media/temp【这里创建一个临时文件夹,用于挂载本机的系统(你电脑灭有用LVM就是ID是83的那个盘,如果是LVM,那么你就要找/的组,ID为8e确认/所在的盘。)】
  4. mount /dev/sda1 /media/temp
    成不成在此一举了;
  5. grub-install --root-directory=/media/temp /dev/sda
    哈哈哈,当然失败。

上面两个方法都是看的其他前辈的案例,据说都可以成功,然而我在实施的时候就不行,救援系统还是要因设备而异(应该是因错误原因而异)

第三次尝试
这次尝试,胆小误入。
接着第二次尝试进入救援模式打开terminal,

  1. 查看了一下内核版本(uname -r),以及所有关于linux内核的程序(dpkg --get-selections | grep linux
  2. 卸载linux-image-×;linux-headers-×
  3. 卸载grub的所有程序,apt-get remove grub
  4. 卸载到这里并没有全部卸载完成哦,切记要执行一下几条命令
    apt-get autoremove;dpkg -l | grep ^rc
  5. 执行dpkg -l | grep ^rc的时候,你应该会看到很多刚才卸载的程序,因为配置文件没有卸载掉,所有程序仍旧存在,此时就执行dpkg --purge ‘程序名称’
  6. 安装linux内核,及grub引导,怎么安装我就不赘述了。
  7. 安装完成出现 done,中间没有报错就表示没有问题, 你就可以重启系统
  8. 恭喜你,看到了熟悉的界面,开心吧

以上三种方法,并不一定适合你,但是你要会发现问题,处理问题。当然如果这个系统只是你心血来潮的看看,里面没有重要东西,你完全可以重装,不用费这么大的劲,因为我这个机器里面有很重要的东西,不得不修复。
再次提示各位,数据一定要及时备份,数据无价啊。真的丢失很痛心的。