可通过/proc/cmdline查看当前内核启动参数,/etc/default/grub查默认配置,/boot/grub/grub.cfg看实际菜单项参数,dmesg验证解析结果,并通过/sys/或/proc/sys/接口确认参数生效情况。

如果您需要确认麒麟OS当前使用的内核启动参数,或排查因引导选项配置不当导致的系统异常(如网络未启用、驱动未加载、SELinux限制等),则需从GRUB引导配置和运行时内核参数两方面入手。以下是获取与验证启动参数的具体步骤:
一、查看当前运行内核的启动参数
系统启动后,内核将全部引导参数保存在 /proc/cmdline 文件中,该文件内容为只读、实时反映本次启动所用的实际参数,无需重启即可获取。
1、打开终端,执行命令:cat /proc/cmdline
2、观察输出内容,例如:ro root=/dev/mapper/kylin--vg-root rd.lvm.lv=kylin-vg/root rd.lvm.lv=kylin-vg/swap rhgb quiet splash net.ifnames=0 biosdevname=0
3、其中 net.ifnames=0 和 biosdevname=0 表示禁用可预测网络接口名,ro 表示根文件系统以只读方式挂载,rhgb quiet 表示启用图形化启动界面并隐藏详细日志。
二、检查GRUB默认引导项配置文件
麒麟OS(V10)基于GRUB2,其默认启动项由 /etc/default/grub 文件定义,该文件控制生成 /boot/grub/grub.cfg 的模板参数,修改后需更新GRUB配置才生效。
1、执行命令查看当前GRUB默认配置:sudo cat /etc/default/grub
2、重点关注 GRUB_CMDLINE_LINUX 行,其值即为所有内核启动时默认追加的参数,例如:GRUB_CMDLINE_LINUX="rd.lvm.lv=kylin-vg/root rd.lvm.lv=kylin-vg/swap rhgb quiet splash net.ifnames=0"
3、若需临时添加参数(如启用内核调试),可在此行末尾追加,例如添加 systemd.log_level=debug,但须注意避免语法错误导致GRUB更新失败。
三、解析/boot/grub/grub.cfg中的实际菜单项参数
/boot/grub/grub.cfg 是GRUB2自动生成的最终引导菜单配置,其中每个 menuentry 下的 linux 行明确列出对应内核镜像的完整启动参数,该文件可直接反映各内核版本的实际引导选项。
1、执行命令过滤当前默认启动项的内核参数:sudo grep -A 1 "menuentry.*default" /boot/grub/grub.cfg | grep "linux" | head -n 1
2、或遍历全部内核菜单项,提取所有 linux 行:sudo awk '/menuentry/{m=$0} /linux/{print m; print $0}' /boot/grub/grub.cfg
3、典型输出中,linux /boot/vmlinuz-4.19.90-52.15.v2207.ky10.x86_64 后紧跟的字符串即为该内核的完整启动参数,包括 root=UUID=...、ro、rd.md=0 等。
四、通过dmesg日志回溯内核初始化阶段参数解析结果
内核在启动早期会将解析后的命令行参数记录到内核环形缓冲区,dmesg 可提取该信息,尤其适用于验证某些参数是否被识别(如 ip=、rd.driver.pre= 等早期模块加载参数)。
1、执行命令:dmesg | grep -i "command line"
2、输出示例:Command line: ro root=/dev/mapper/kylin--vg-root rd.lvm.lv=kylin-vg/root rd.lvm.lv=kylin-vg/swap rhgb quiet splash net.ifnames=0
3、该结果与 /proc/cmdline 一致,但若系统启用了 kmsg 日志截断,可能仅显示部分参数,此时应优先依赖 /proc/cmdline。
五、验证特定启动参数是否生效
部分启动参数会在内核运行时映射为可读写的 /proc/sys/ 或 /sys/ 接口值,可通过比对确认参数是否被正确解析并作用于内核行为。
1、例如验证 net.ifnames=0 是否生效:执行 ls /sys/class/net/,若输出为 eth0 lo 而非 enp0s3 lo,则表明参数已生效。
2、验证 ipv4.ip_forward 启用状态:执行 cat /proc/sys/net/ipv4/ip_forward,返回 1 表示已开启,若为 0 则需检查是否在 /etc/sysctl.d/ 中存在覆盖配置。
3、验证 rd.lvm.lv 参数效果:执行 ls /dev/mapper/,确认输出中包含对应逻辑卷名称(如 kylin--vg-root),说明LVM设备已按参数成功激活。










