昨天给服务器上安装了一个Ubuntu-14.04-server系统,安装完成后系统可以正常启动,但屏幕上一直滚动着一个错误,sda1:WRITE SAME failed. Manually zeroing。
最终在这里找到了解决方案https://ewen.mcneill.gen.nz/blog/entry/2014-07-17-mininet-on-ubuntu-14.04-in-kvm/。
大概意思是这样:造成这个错误的原因可能是由Linux 3.7+中的SCSI磁盘驱动程序中的补丁引起的(从Linux3.10起的后面的补丁能够使得“WRITE SAME”通过磁盘映射路径),这个补丁能够使SCSI的“WRITE SAME”命令运行。(将相同的内容写入多个模块--Linux似乎用它主要是确保各块都包含0)。该补丁默认使用0xFFFF(65535)块到WRITE SAME。除了某一类特定的磁盘(如ATA, USB和Firewire)不执行该特性外,似乎对一些特定的虚拟磁盘(如KVM,也许只有安装旧的KVM,主机才能运行Ubuntu 10.04 LTS),这将导致WRITE SAME功能即使不被支持也会起作用。(各种各样的人在各种内核中发现了这个问题;如果有故障,就有补丁来禁用它)。
在Ubuntu 14.01中最好的解决办法是:
(1)在/usr/local/sbin文件夹下编写一个名为disable-write-same的shell脚本,在这个文件里写入一下代码:
for file in `find /sys/devices -name "max_write_same_blocks"`; do
if [ -f "$file" ]; then
echo "0" >> $file;
fi
done
退出保存
(2)在/etc/rc.local文件里写入./usr/local/sbin/disable-write-same。重启系统就不会再报错了。