在启动期间摆脱“未找到缓存模式页面”消息

Mar*_*ter 17 startup logs kernel console

在早期启动期间,我收到以下错误消息:

[sdb] No Caching mode page found
[sdb] Assuming drive cache: write through
Run Code Online (Sandbox Code Playgroud)

如果我理解正确,这实际上只是一条无害的信息消息,而不是实际错误。sdb是我的 U 盘,它不使用缓存。

问题是,我有意将内核日志级别设置为 4,以摆脱这些无用的信息消息。

为什么我仍然会收到此信息消息?

它困扰我的原因是,它干扰了我的密码提示(用于解密我的 LUKS 磁盘)

有没有办法摆脱这个消息?

mal*_*lyy 10

硬盘具有少量 RAM 缓存以加快写入操作。系统可以将一大块数据写入磁盘缓存,而无需实际等待将其写入磁盘。这有时称为“回写”模式。如果磁盘上没有缓存,则以“直写”模式直接写入数据。请求缓存数据失败警告通常发生在 USB 闪存驱动器、USB 读卡器等设备上,这些设备向系统 (sdX) 显示自己为 SCSI 设备,但没有缓存。系统询问设备:“你有缓存吗?” 并没有得到任何回应。所以它假设没有缓存并将其置于“直写”模式。

你可以尝试去:

/etc/modules
Run Code Online (Sandbox Code Playgroud)

并在模块列表的顶部添加行

usb_storage
Run Code Online (Sandbox Code Playgroud)

它应该是这样的:

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

usb_storage
lp
Run Code Online (Sandbox Code Playgroud)

这就是我解决类似问题的方法。

让我知道发生了什么。

  • 我不确定这应该解决什么问题。但它不适用于我的问题。此外,我不在内核中使用模块。 (2认同)

SHW*_*SHW 3

是的。您可以通过执行以下命令来消除此类消息:

echo 0 > /proc/sys/kernel/printk
Run Code Online (Sandbox Code Playgroud)

这将抑制几乎所有内核消息并仅显示紧急消息

请参阅链接了解更多信息

  • 可能是因为这在任何用户空间控制之前的早期启动期间不会产生影响。通过从引导加载程序将“loglevel=0”添加到内核命令行(通过在下次重新启动之前编辑和应用引导加载程序配置),相同的设置将生效。PS我没有投反对票,仅供参考。 (3认同)
  • @SHW - 我不想抑制所有内核消息。我的问题明确是“我怎样才能摆脱**这条**消息”。此外,我在原来的帖子中声明我正在使用内核参数“loglevel=4”。我可以将其更改为“loglevel=5”以删除几乎所有消息,但这不是我想要的。 (2认同)