update 的时候 (包括内核升级) 是不是也会重写 grub2?

因为我的 suse 没在硬盘上没安装 grub2 引导,我是用 U 盘上的 grub4dos 引导的。这样的话,在正常的 update 操作中如果出现内核升级,那这个过程会是怎样的?
根据我看到的现象,这种情况下,系统会在硬盘上安装 grub2 (上次电脑开机在主硬盘上的引导是 grub2),那么问题来了,如何避免 update 的时候更新引导。.

PS.除了锁死内核这个操作

会的,不更新引导的话用的还是旧内核。
grub2 里面通过应该是写死需要启动的内核版本的。

应该是更新的。不过按说这个东西装什么地方应该是有个配置文件的,你修改这个配置文件到一个 “安全的” 地方就行了。
另外,按说引导程序是可选的才对,Linux 有很多启动方式的。好像 fedora 可以不装 grub2 的。

锁死内核和 GRUB2 没关系,GRUB2 有自己的配置文件去寻找 Linux 内核文件的。
除非 SUSE 改了 GRUB2 ,把配置整合到启动文件里,但是我反正没见过这么做的其他发行版。

你可以直接不装 grub2,更新的时候/boot里会有initrdvmlinuz两个链接,更新内核的时候会自动更新这两个链接到新的内核和初始化内存盘

如果锁死内核,那么正常的 update 里内核就不会更新了啊,然后肯定不会有重写 grub2 的操作了。我现在就是想让它正常更新内核,又取消 grub2 的重写

我就是没装 grub2 啊,但是根据实际的情况,更新内核的时候会自己安装 grub2。我的目的就是禁止自动安装 grub2

重写 grub ?更新内核按说是重写 config 啊。只有升级 grub 才是重写 grub 的引导代码。

禁止安装 grub2 ?
你自己写个空的 rpm ,占上 grub 的依赖就行了。

其实可以 zypper al
你遇到的情况应该是升级的时候装上了推荐的包,本身内核是不依赖 grub 的,然后你又什么引导都没装所以就自动推荐了一个最常用的。
如果不想跑 zypper al,那只能编辑 zypper 的配置,全局禁用推荐包。

1赞

我不知道你用什么发行版,反正 centos 和 ubuntu 的 grub 配置都是写死内核版本的,升级就要跑 grub-mkconfig

mkconfig 又不是重写 grub2 ,只是重写配置文件。
升级跑 grub-mkconfig ,我记得是调用一个脚本,做个 true 的连接过去就行。

啊你意思是跟 grub4dos 一样引导 bin 内嵌?那是没有
不用做 true,没有也不会报告失败。只是你没引导就自动推荐 grub2,lz 不仔细看就按 y 了而已……

???
我说的是做一个 grub2 的替代包啊。这样有自动推荐也不会去推荐 grub 了。
更何况其实也不用自己动脑,改个 grub2 把版本号写成 2.9 就行了。
这样只有一次安装 grub 引导程序的事情,废掉这一次就好了。

至于每次更新内核,不过是重新生成 grub.cfg 这个启动配置而已。
而且楼主启动计算机,即便用 U 盘,也需要内核配置文件吧?直接载入新生成的这个启动配置文件就行了。

我也说了可以直接加锁就行了,不用自己做包。我说的是更新内核过程并不要求装了 grub2,所以不需要弄一个 true 伪装成 grub2-mkconfig

不要求装 grub2 但是会提示啊。
zypper al 禁止 grub 包的脚本运行么?如果楼主想完全不激活任何和 grub2 有关的运行呢?

al 是禁止对这个包进行操作,你没装那加锁之后就不会装啊。

leap15.1,正常情况下,升级内核肯定接着就要 grub-mkconfig,这是要重写 grub.cfg 的,但是我没装 grub2,grub.cfg 这个文件按道理应该是没有的吧,这个时候,如果要 grub-mkconfig,系统发现没 grub2,逻辑上应该是会自动安装个 grub2 的。

试了一下,我想当然了,kernel-default 没有推荐 grub2。不知道你是什么配置导致的升级内核会自动装。