问题描述
我在戴尔笔记本电脑上安装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
这条消息意味着什么,如何删除?
最佳解决方案
请求缓存数据失败并假设驱动器缓存:write-through消息是什么意思?
-
硬盘具有少量RAM缓存以加速写入操作。系统可以将一大块数据写入磁盘高速缓存,而无需实际等待将其写入磁盘。这有时称为”write-back”模式。
-
如果磁盘上没有缓存,则在”write-through”模式下直接将数据写入其中。
-
-
要求缓存数据失败警告通常发生在USB闪存驱动器,USB读卡器等设备上,这些设备本身就是系统的SCSI设备(
sdX
),但没有缓存。-
系统询问设备:“你有缓存吗?”并没有得到回应。因此它假定没有缓存并将其置于”write-through”模式。
-
次佳解决方案
Bug规避
该错误似乎与许多计算机具有的闪存卡读取器有关。如果您有这样的读者并且没有使用它,您可以使用由Neal McBurnett here提供的规避,来自错误报告Matthew Kaulfers在他的回答中友好地提及。
sudo rmmod ums_realtek
这种规避适用于我的笔记本电脑。
第三种解决方案
这是一个报告的错误,您需要去here才能找到它。
第四种方案
这也是在5月份的一个Ask Ubuntu问题中提出并回答的问题:Errors in dmesg – Test WP failed, assume Write Enabled
如果最初卸载驱动程序然后在每次需要读取器时重新加载它都不是一个合适的解决方案,我建议像我最初在this answer中那样为驱动程序指定ss_en=0
选项。
总结一下答案:
-
在
rmmod
与rmmod
之后手动加载模块:sudo modprobe ums_realtek ss_en=0
-
或者使用
ums_realtek ss_en=0
在/etc/modules
中指定它以使此更改成为永久更改。
第五种方案
我在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
模块。
无需重启。
第六种方案
我正在使用lubuntu 14.04,其他答案对我不起作用。我在这里找到了一个解决方法https://bugs.launchpad.net/ubuntu/+source/linux/+bug/925760/comments/70
只需在exit 0
之前将rmmod ums_realtek
添加到/etc/rc.local