内核参数不适用于 REFInd

内核参数不适用于 REFInd

由于某种原因,我的 refind.conf 中完全忽略了设置内核参数。这是相关配置:

menuentry "Arch Linux" {
    volume   "Arch Linux"
    loader   /boot/vmlinuz-linux-zen
    initrd   /boot/initramfs-linux-zen.img
    options  "root=PARTUUID=e63233fa-99a1-48ed-892a-6a5d1ad59c9b rw text initrd=boot\intel-ucode.img biosdevname=1 ipv6.disable=1"
    submenuentry "Boot using fallback initramfs" {
        initrd /boot/initramfs-linux-zen-fallback.img
    }
    submenuentry "Boot to terminal" {
        add_options "systemd.unit=multi-user.target"
    }
}

我有 biosdevname=1 和 ipv6.disable=1 内核参数,它们应该更改网络接口名称并尊重地禁用 ipv6,但它两者都没有。我知道 refind.conf 条目正在被识别,因为更改以下条目的“图标”菜单是有效的,但不适用于任何内核参数。有人有主意吗?

答案1

Refind 传递内核参数。我在 dmesg 中检查过,

Kernel command line: root=PARTUUID=90ca582a-f687-41e5-b351-21ebaebd86ad rw mitigations=off clocksource=tsc tsc=reliable initrd=\boot\initrd.img-5.11.0-49-generic

在 refind 的待办事项列表中,我在错误下看到这一行:“如果您有一个 Linux 内核的手动启动节,并且在选项行上指定了 initrd 行和第二个 initrd 文件,那么在大多数情况下,两个 initrd 文件都会传递到内核。 ”。

基于此尝试删除菜单项中的两个 initrd 条目之一。

答案2

检查当前内核选项的一个好方法是: $ cat /proc/cmdline 尽管最近的 'dmesg' 已经足够了。

问题似乎成为语法。在任何最新的内核中,“ipv6.disable=1”似乎都不是正确的语法。 /etc/sysctl.conf 文件中可能存在一些类似的“sysmctl”参数。

“biosdevname=1”需要一些用户空间工具,包括 /usr/lib/udev/... 文件和二进制文件、“/usr/sbin/biosdevname”或类似文件。您可能需要重新安装内核才能使这些更改生效。

相关内容