这是我的情况:我有一台运行 Ubuntu Server 9.04 的服务器
我复制了服务器上的一个文件,并且能够从 Windows 客户端计算机毫无问题地访问该文件。
然后最近我再次尝试访问该文件,但无法加载。服务器控制台显示以下内容:ata3.00:状态:{DRDY ERR} ata3.00:状态:{UNC}
如果我尝试复制文件(从远程 shell),它会生成一个截断的副本并报告 I/O 错误。
所以我卸载了卷,并运行了 fsck,没有报告任何错误。但是上述症状仍然存在。我以为 fsck 会纠正错误(也许删除损坏的文件,没关系)。
我是否应该在运行 fsck 之前尝试删除该文件?我是否应该做其他事情?我的硬盘坏了吗?
谢谢
答案1
文件系统检查程序处理逻辑级别的文件系统错误。它们无法影响硬盘物理级别的机械错误。您在 dmesg 中看到的错误表示“介质错误”。
简而言之,您的文件系统可能没有问题,但驱动器快要坏了(可能是主板,但坏的情况不太常见)。
答案2
9.04 已过期,多年未得到支持。今天运行服务器只会带来麻烦,因此您需要做的第一件事就是备份数据,然后使用 12.04 LTS 重新安装服务器。
您的驱动器有问题。备份后,您应该使用软件包smartctl -a /dev/sda
中的 来smartmontools
检查详细信息。如果只有一个或两个待处理的坏扇区,则写入它们可以解决问题。您可以使用 擦除整个驱动器sudo dd if=/dev/zero of=/dev/sda
。如果您没有收到任何错误,则这些扇区要么已被重新分配,要么只是重写它们很顺利。您可以使用 SMART 计数来查看哪些是。如果只有几个或没有重新分配而没有错误,那么您可以重新格式化驱动器并安装 12.04 LTS 并恢复您的备份。如果没有,那么是时候换一个新驱动器了。