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


11

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

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

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

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

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

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

有没有办法消除此消息?


使用较低的内核参数,例如loglevel=0调整linux消息传递级别。我认为级别4太高,无法使此特定消息静音。级别0可能太夸张了,但是它确实消除了我甜美可爱的启动屏幕中间所有讨厌的系统问题。
Dominic Cerisano

Answers:


5

硬盘具有少量的RAM缓存以加快写入操作。系统可以将大量数据写入磁盘缓存,而无需实际等待将其写入磁盘。有时称为“回写”模式。如果磁盘上没有高速缓存,则数据将以“直写”模式直接写入其中。询问高速缓存数据失败警告通常发生在USB闪存驱动器,USB读卡器等设备上,这些设备将它们作为SCSI设备呈现给系统(sdX),但没有高速缓存。系统询问设备:“您是否有缓存?” 却没有回应 因此,它假定没有缓存,并将其置于“直写”模式。

您可以尝试去:

/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

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

让我知道发生了什么事。


1
我不确定这应该解决什么问题。但这不适用于我的问题。此外,我不在内核中使用模块。
Martin Vegter '02

它没有解决它
艾哈迈德·开斋节

@malyy我想知道最后一行中的“ lp”是什么。它代表什么?
普拉纳夫

1

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

echo 0 > /proc/sys/kernel/printk

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

查看链接以获取更多信息


为什么要投票?
2016年

2
可能是因为这在任何用户空间获得控制之前的早期启动期间均无效。通过loglevel=0从引导加载程序添加到内核​​命令行(通过在下次重新引导之前编辑并应用引导加载程序配置),相同的设置将生效。PS我没有投反对票,只是供参考。

我的意思userspace control是说该echo命令确实会写入/proc/sys/kernel/printk伪文件。

1
OP可以在他的initramfsfs挂钩或脚本之一中添加上述echo命令。
2016年

1
@SHW-我不想隐藏所有内核消息。我的问题明确地是“我如何摆脱这个信息”。此外,我在原始帖子中指出我正在使用kernel参数loglevel=4。我可以将其更改为loglevel=5摆脱几乎所有消息,但这不是我想要的。
Martin Vegter '02


0

在更改USB作为可引导设备的同时更改USB引导方法,请使用Power iso工具使您的USB可引导设备在无故障的情况下可以100%工作...


0

我在安装新的Arch Linux UEFI时遇到了这个问题,我使用UEFI Live USB在Windows上加载引导程序ESP

解决方案是使用EFI引导管理器修复设置。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.