“请求缓存数据失败”警告是什么意思?

我正在在戴尔笔记本电脑上安装Ubuntu服务器12.04,但经常收到如下消息:

3256.362200] sd 5:0:0:0: [sdb] Asking for cache data failed
[3256.362200] sd 5:0:0:0: [sdb] Assuming drive cache : write through

这条消息是什么意思,如何将其删除?

2硬盘具有2-64MB的缓存内存。USB闪存驱动器/存储卡没有。USB闪存驱动器/存储卡被视为SCSI驱动器。因此,某人在闪存卡的驱动程序调试级别上犯了一个错误。@EliahKagan - Rinzwind
@Rinzwind 你可能想把这个(也许扩展,也许不扩展)作为一个答案发布出来,因为它确实回答了楼主的问题。其他的回答只是关于这个错误(所以可能是离题的)。你的评论解释了这个消息的含义,非常准确。 - Eliah Kagan
2我觉得“如何移除”这部分应该是最受欢迎的信息,而且肯定应该包含在答案中。至少对我来说,这就是我一直在寻找的东西:首先弄清楚它是什么,这样我才能停止收到这些消息。 - Nanne
9个回答

请问 "请求缓存数据失败" 和 "假设驱动器缓存:写入通过" 这两条信息是什么意思?

  • 硬盘有一小部分RAM缓存用于加快写入操作的速度。系统可以将一块数据写入磁盘缓存,而无需等待它真正写入磁盘。有时这被称为"写回"模式。

    • 如果磁盘上没有缓存,则数据直接以"写入通过"模式写入。
  • "请求缓存数据失败"警告通常出现在设备如USB闪存驱动器、USB卡读卡器等,它们向系统呈现自己是SCSI设备(sdX),但没有缓存的情况下。

    • 系统询问设备:"你有缓存吗?"但得不到响应。因此,系统假定没有缓存,并将其置于"写入通过"模式。

4这会阻止我的USB启动过程..我能做些什么来解决吗? - philx_x

绕过错误

这个错误似乎与许多电脑上的闪存卡读卡器有关。如果你有这样的读卡器并且没有使用它,你可以尝试使用Neal McBurnett在这里提供的绕过方法,该方法是根据Matthew Kaulfers在他的回答中友好地包含的错误报告而得到的。

sudo rmmod ums_realtek

这种绕过方法适用于我的笔记本电脑。

这是一个已报告的错误,你需要去这里找到它。

2猜测可以通过以下命令来解决?sudo sh -c 'echo "options ums_realtek ss_en=0" > /etc/modprobe.d/ums-realtek.conf' - Dielson Sales

我在13.10 Saucy Salamander中遇到了同样的问题。然而,上面的答案对我没有帮助。我做了以下操作:
sudo rmmod ums_realtek
sudo sh -c 'echo "options ums_realtek ss_en=0" > /etc/modprobe.d/ums-realtek.conf'
sudo modprobe ums_realtek

这个操作的作用是移除模块,更新模块加载参数,然后再次加载ums_realtek模块。
无需重新启动。

这个问题在五月份的一个早期Ask Ubuntu问题中也有人提问并得到了回答: Errors in dmesg - Test WP failed, assume Write Enabled 如果每次需要使用读卡器时都要先卸载驱动程序然后重新加载它不是一个合适的解决方案,我建议在驱动程序中指定ss_en=0选项,就像我在this answer中最初所做的那样。
总结一下那个答案:
要么在rmmod之后手动加载模块:sudo modprobe ums_realtek ss_en=0 要么在/etc/modules中指定ums_realtek ss_en=0以使此更改永久生效。


我没有SD卡,但仍然显示错误。为了解决这个问题,我从我的笔记本电脑上拔掉电源和电池,并等待一分钟后再插入电源并重新启动。这样做有效果了。

提示
在13.10 Saucy Salamander版本中,这个消息一直重复出现。你无法得到一个提示。 如果你使用的是笔记本电脑,并且有一张多余的内存卡。将它插入,消息就会消失,直到你能够应用正确的修复方法。 是的,这在另一篇帖子中已经提到过。但这可能会为读者节省一些时间。

正如其他人所解释的那样,这些警告报告了正常、预期的行为。您可以在/etc/rsyslog.conf中禁止它们。更好的做法是创建一个文件/etc/rsyslog.d/20-suppresswarnings.conf,并在其中添加以下规则:
# Suppress certain messages
:msg, contains, "Test WP failed, assume Write Enabled"  ~
:msg, contains, "Asking for cache data failed"  ~
:msg, contains, "Assuming drive cache: write through"   ~