摆脱启动过程中的“未找到缓存模式页面”消息

摆脱启动过程中的“未找到缓存模式页面”消息

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

[sdb] No Caching mode page found
[sdb] Assuming drive cache: write through

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

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

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

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

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

答案1

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

您可以尝试前往:

/etc/modules

并在模块列表顶部添加行

usb_storage

它应该看起来像这样:

# /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

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

让我知道发生了什么事。

答案2

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

echo 0 > /proc/sys/kernel/printk

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

链接以获取更多信息

答案3

这可能是一条警告消息(也许驱动程序认为它很重要而值得提及)。您没有指定您的 USB 硬盘使用哪个驱动程序,因此我无法指向源代码行来验证这一点。有关日志级别的更多信息,请参见此处:http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/linux/kern_levels.h?id=HEAD

最简单的修复方法是通过引导加载程序向内核参数添加“安静”,无论是 GRUB/LILO/等。

答案4

我在安装新的 Arch Linux UEFI 时遇到了这个问题,当时我使用 UEFI Live USB 在ESP.

解决方案是使用以下命令修复设置EFI 启动管理器

如果您使用GRUB& 不是EFISTUB启动 Linux 你需要做的就是不是需要将任何crypt内核命令添加到efibootmgr命令中。

相关内容