修复 ArchLinux 升级 mkinitcpio 到 38 产生的 warning

修复 ArchLinux 升级 mkinitcpio 到 38 产生的 warning

RayAlto OP

我几乎每天都要 pacman -Syu ,有时候一天一次,有时候一天好几次,每天至少一次,不整一下浑身难受。最近升级总是有 Warning:

1
2
3
4
[2024-03-05T07:43:07+0800] [ALPM] running '90-mkinitcpio-install.hook'...
[2024-03-05T07:43:07+0800] [ALPM-SCRIPTLET] ==> Building image from preset: /etc/mkinitcpio.d/linux-zen.preset: 'default'
[2024-03-05T07:43:07+0800] [ALPM-SCRIPTLET] ==> Using default configuration file: '/etc/mkinitcpio.conf'
[2024-03-05T07:43:07+0800] [ALPM-SCRIPTLET] ==> WARNING: Deprecated option 'ALL_microcode' found. Update '/etc/mkinitcpio.d/linux-zen.preset' to use the 'microcode' hook instead.

尝试解决

好象是让我把 /etc/mkinitcpio.d/linux-zen.preset 里的 ALL_microcode 改成 microcode ,但说实话我不敢直接改,去看 /var/log/pacman.log 的话最早出现这个 Warning 时前面还有一段:

1
2
[2024-03-05T07:41:42+0800] [ALPM] warning: /etc/mkinitcpio.conf installed as /etc/mkinitcpio.conf.pacnew
[2024-03-05T07:41:42+0800] [ALPM] upgraded mkinitcpio (37.3-1 -> 38-4)

TL;DR /etc/mkinitcpio.conf.pacnew 里面多了一些注释, HOOKS 里面多了一项 microcode ,照着 /etc/mkinitcpio.conf.pacnew 改了改之后去看了 mkinitcpio - ArchLinux 文档,发现 /etc/mkinitcpio.d/linux*.preset 是安装比如 linux, linux-lts, linux-zen 之类的内核之后通过 Pacman Hook 自动生成的,所以我把之前的 /etc/mkinitcpio.d/linux-zen.preset 备份后删除了,然后重新安装了一下 linux-zen ,一份新的 /etc/mkinitcpio.d/linux-zen.preset 确实被生成了,对比一下就是把之前的 ALL_microcode 直接删除了。

总结

再生成 Initramfs 就不会再产生这种 Warning 了,总结一下这种 Warning 的修复方式就是照着 /etc/mkinitcpio.conf.pacnew 把之前的 /etc/mkinitcpio.conf 改一下,然后把 /etc/mkinitcpio.d/linux*.preset 里的 ALL_microcode 一行删掉。

此页目录
修复 ArchLinux 升级 mkinitcpio 到 38 产生的 warning