linux更新内核命令,Linux从InitramFS“UserSpace”修改/添加内核命令...

您无法在启动后真正更改内核命令行,但您可以做的是通过其他方式重现设置或取消设置安静命令行的效果,这应该可以实现您想要在此处实现的目标.

简而言之,为了在不再需要安静时增加详细程度,可以使用以下命令:

# echo 7 >/proc/sys/kernel/printk

并且要模仿安静所做的事情,这就是你可以使用的:

# echo 4 >/proc/sys/kernel/printk

这应该关注设置的内核方面……但有时用户空间也会根据此内核选项更改行为.例如,systemd将解析内核命令行中的quiet选项,并在/etc/systemd/system.conf中使用ShowStatus = auto.如果你想恢复它(强制执行默认值并忽略quiet选项),编辑该配置文件并取消注释那里的ShowStatus = yes行,这应该处理它.

用户空间中可能还有其他系统会查看此选项,因此您可能需要仔细查看这些系统以了解它们的行为以及如何重现(或撤消)内核命令行中存在的选项的行为.

以下是对源代码的深入研究,以解释内核和systemd中quiet选项的行为.

static int __init quiet_kernel(char *str)

{

console_loglevel = CONSOLE_LOGLEVEL_QUIET;

return 0;

}

early_param("quiet", quiet_kernel);

extern int console_printk[];

#define console_loglevel (console_printk[0])

#define CONSOLE_LOGLEVEL_QUIET 4 /* Shhh ..., when booted with "quiet" */

/*

* Default used to be hard-coded at 7, we're now allowing it to be set from

* kernel config.

*/

#define CONSOLE_LOGLEVEL_DEFAULT CONFIG_CONSOLE_LOGLEVEL_DEFAULT

config CONSOLE_LOGLEVEL_DEFAULT

int "Default console loglevel (1-15)"

range 1 15

default "7"

(您可能希望在/ boot / config- *或/proc/config.gz中检查内核是否使用默认配置.)

有关使用/ proc / sys / printk的更多详细信息,请参阅kernel documentation for it.但是,简而言之,可以只编写一个数字,在这种情况下只会更新数组的第一个元素,这就是你想要在这里

systemd还将解析内核命令行,查找通常名为systemd.*的条目,但结果是systemd also recognizes the quiet kernel command-line并使用它来设置ShowStatus:

} else if (streq(key, "quiet") && !value) {

if (arg_show_status == _SHOW_STATUS_UNSET)

arg_show_status = SHOW_STATUS_AUTO;

在这种情况下,只有先前未设置(_SHOW_STATUS_UNSET)并将其设置为“auto”(SHOW_STATUS_AUTO.)时才会设置它.

{ "Manager", "ShowStatus", config_parse_show_status, 0, &arg_show_status },

此行描述了system.conf的[Manager]部分下名为ShowStatus =的配置选项. parser for this option采用“auto”字符串(在这种情况下将其设置为SHOW_STATUS_AUTO)或采用布尔值,可以是“yes”,“true”或“1”来启用它,或者“no”,“false”或“0”以禁用它.

systemd documentation for --show-status=在这里也非常有帮助.它也引用了ShowStatus =配置(因为直接传递systemd命令行参数并不总是那么容易,更新配置文件绝对是配置此设置的更直接的方法.)

我希望您发现这有用,它可以帮助您为您的特定用例实现正确的冗长!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值