我有一些最小的 Linux 系统,它们在启动时会喷出大量信息,我想在启动过程中抑制几乎所有的输出。
理想情况下,我希望系统打印“正在加载......”并且不再显示任何内容,但具体来说,我想要抑制的是“启动 foobard [ OK ]”。
该系统基于 centos,内核不具备大多数“nice splash boot”项目运行所需的“framebuffer”功能。
我考虑过的想法:
- 切换到另一个虚拟终端 - 但我似乎无法做到这一点,直到 /etc/rc.sysinit 运行完毕,这已经太晚了。
- 回显使文本不可见的 ansi 代码。这似乎不起作用。我尝试过 ^[[8m 和 ^[[24;25r,但都没有用。
答案1
大多数消息都是通过 /lib/lsb/init-functions 中定义的 LSB 初始化消息函数打印的。您可以创建不执行任何操作的自定义版本的函数。这将停止所有初始化消息。但它不会让内核保持安静。在 unbuntu 上,您可以使用“quiet”内核参数来阻止 printk 记录到控制台。我不知道 CentOS 是否做了类似的事情。
答案2
您可以尝试将 console= 附加到您的内核选项 - 但是这将完全禁用控制台 - 也许不是您想要的。
据我所知,Redhat/CentOS 不使用 lsb init 函数。
大多数 Redhat init 脚本都使用“echo”作为其状态消息,因此您也可以尝试覆盖 /etc/init.d/functions 中的内置 echo,以及破坏其中的成功/失败/通过函数。
此外 - “quiet”内核参数适用于所有内核,而不仅仅是 Ubuntu。