You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不删除内核的情况下从GRUB中排除指定Oracle内核

如何在不删除内核的情况下从GRUB中排除指定Oracle内核

我完全理解你的困扰——那个作为NVIDIA驱动依赖的Oracle内核莫名其妙跑到GRUB菜单最上面,双系统切换时还要手动选内核确实麻烦,而且你既不想删掉它(毕竟是驱动必需的依赖),也不想手动固定默认内核导致错过系统更新。下面给你两个实用的方案,都能精准满足你的需求:

方案一:用dpkg-divert隐藏内核文件(推荐)

这个方法的核心是把Oracle内核的镜像文件“转移”到GRUB扫描不到的位置,但内核文件本身还留在系统里,完全不会影响NVIDIA驱动的依赖关系。

  1. 先找到你要排除的Oracle内核版本号,运行下面的命令列出所有内核:

    ls /boot/vmlinuz-*
    

    你会看到类似vmlinuz-5.15.0-1047-oracle的条目,记下完整的版本号(比如5.15.0-1047-oracle)。

  2. 用dpkg-divert把内核镜像和initrd文件重命名为GRUB不会扫描的后缀:

    sudo dpkg-divert --divert /boot/vmlinuz-<你的Oracle版本号>.hidden --rename /boot/vmlinuz-<你的Oracle版本号>
    sudo dpkg-divert --divert /boot/initrd.img-<你的Oracle版本号>.hidden --rename /boot/initrd.img-<你的Oracle版本号>
    

    替换成实际版本号的示例:

    sudo dpkg-divert --divert /boot/vmlinuz-5.15.0-1047-oracle.hidden --rename /boot/vmlinuz-5.15.0-1047-oracle
    sudo dpkg-divert --divert /boot/initrd.img-5.15.0-1047-oracle.hidden --rename /boot/initrd.img-5.15.0-1047-oracle
    
  3. 更新GRUB配置让修改生效:

    sudo update-grub
    

    现在重启系统,你会发现那个Oracle内核已经从GRUB的「Advanced options」菜单里消失了,默认启动项也会自动指向最新的系统内核。

如果以后需要恢复显示这个内核,只需要撤销divert操作:

sudo dpkg-divert --rename --remove /boot/vmlinuz-<你的Oracle版本号>
sudo dpkg-divert --rename --remove /boot/initrd.img-<你的Oracle版本号>
sudo update-grub

方案二:修改GRUB脚本过滤特定内核

这个方法是通过修改GRUB的配置生成脚本,让它自动过滤掉包含「oracle」关键词的内核。优点是如果以后有新的Oracle内核更新,不需要重复操作;缺点是系统更新GRUB包时,修改的脚本可能被覆盖,需要重新设置。

  1. 打开GRUB的内核扫描脚本:

    sudo nano /etc/grub.d/10_linux
    
  2. 找到循环扫描内核的起始行,大概是这样:

    for i in /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* ; do
    

    在这行下面添加一行过滤逻辑,跳过包含「oracle」的内核文件:

    if echo "$i" | grep -q "oracle"; then continue; fi
    
  3. 保存并退出编辑器(nano里按Ctrl+O回车,再按Ctrl+X)。

  4. 更新GRUB配置:

    sudo update-grub
    

为了避免系统更新GRUB时覆盖你的修改,建议把修改后的脚本备份并替换为自定义版本:

sudo cp /etc/grub.d/10_linux /etc/grub.d/10_linux_custom
sudo chmod +x /etc/grub.d/10_linux_custom
sudo mv /etc/grub.d/10_linux /etc/grub.d/10_linux.bak

这样GRUB会优先使用你的自定义脚本,系统更新时也不会被覆盖。

不管用哪个方案,都建议保留你当前的GRUB_DEFAULT=saved配置,这样重启时会记住你上次选的内核,双系统切换时如果需要临时选其他内核也没问题,平时则自动启动最新的系统内核。

备注:内容来源于stack exchange,提问作者Des Cuddlebat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 16:04:13