上周一早上,我发现我的服务器无法运行任何命令,并且显示“输入输出错误”。经过半个小时的尝试,我发现唯一可以执行的命令是sudo poweroff -f
(必须使用标志,-f
否则会出现“输入输出错误”)。
我手动启动服务器,并检查系统日志,但是没有什么特别的。然后我进行了smartctl测试,以确认硬盘是否存在任何问题。它顺利通过了。
然后这个星期一这个问题再次出现。我关闭了服务器并手动启动它,就像没有任何反应一样,它看起来还不错。然后,我使用msmtest86 8.2测试记忆棒是否正常。并确保SATA电缆和硬盘处于良好状态并可靠地连接。
我认为也许是操作系统或文件系统出现问题?我的操作系统是Debian 8.11。你能给我一些建议吗?谢谢你们!
我发现我的服务器无法运行任何命令,并且显示“输入输出错误”
EIO
文件系统损坏时,将在命令启动时发生错误代码(“输入/输出错误”)。或更糟糕的是,当您在有故障的存储上运行时。
用手指交叉;无论哪种方式,请注意,除非真正必要,否则此时不要尝试打开服务器的电源。1个
有一种肯定的方法可以区分两个根本原因:在系统上进行块级读取扫描,并注意内核消息。
dmesg -E
以在控制台上启用实时内核消息显示。dmesg -n debug
让低级内核消息。blkid
以查看哪个磁盘包含系统分区。(请注意,这blkid
将列出分区;从分区路径的末尾删除编号,您将获得磁盘)time -p dd if=/dev/sda of=/dev/null bs=4M
进行一次entire-盘读取测试(请仔细型这一点)。如果您的系统磁盘不是/dev/sda
,请相应替换。在dd
成功且顺利完成的最佳情况下,这很可能是文件系统问题。
fsck.mode=force
附加到内核命令行末尾。(有关详细信息,请参阅此问题)但是,在最坏的情况下,您会在屏幕上看到这样的内核消息:
ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
ata2.00: irq_stat 0x40000001
ata2.00: failed command: READ DMA EXT
ata2.00: cmd 25/00:08:78:15:c5/00:00:6c:00:00/e0 tag 0 dma 4096 in
res 51/40:00:78:15:c5/00:00:6c:00:00/e0 Emask 0x9 (media error)
ata2.00: status: { DRDY ERR }
ata2.00: error: { UNC }
ata2.00: configured for UDMA/100
sd 1:0:0:0: [sda] Unhandled sense code
sd 1:0:0:0: [sda]
Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
sd 1:0:0:0: [sda]
Sense Key : Medium Error [current] [descriptor]
Descriptor sense data with sense descriptors (in hex):
72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00
6c c5 15 78
sd 1:0:0:0: [sda]
Add. Sense: Unrecovered read error - auto reallocate failed
sd 1:0:0:0: [sda] CDB:
Read(10): 28 00 6c c5 15 78 00 00 08 00
end_request: I/O error, dev sda, sector 1824855416
Buffer I/O error on device sda, logical block 228106927
ata2: EH complete
查找关键部分:
DRDY
,ERR
并UNC
在括号Medium Error
地位Unrecovered read error
感觉信息如果您浏览并在消息中找到它们(甚至一次),它们表明您面临物理磁盘错误。
在这种情况下,不要让dd
完成,请按Ctrl + C停止,现在;关闭系统,然后将磁盘带到您信任的数据恢复店。
如果您没有找到上述最坏的情况,而是发现了重复的这种内核消息:
ata2: exception Emask 0x10 SAct 0x0 SErr 0x4040000 action 0xe frozen
ata2: irq_stat 0x00000040, connection status changed
ata2: SError: { CommWake DevExch }
ata2: hard resetting link
ata2: link is slow to respond, please be patient (ready=0)
关键部分:
hard resetting link
link is slow to respond
然后,您面对的是SATA链路问题(例如,电缆连接不良):按Ctrl + C停止,关闭系统,修复磁盘电缆和连接,然后重试。
然后我进行了smartctl测试,以确认硬盘是否存在任何问题。它顺利通过了。
请注意,某些硬盘会直截了当地说出它们的SMART状态(我在看着您,东芝)。我以前的笔记本电脑硬盘在读取时会停顿下来,产生读取错误,并且在其状态寄存器中仍然说“没问题”。
如果服务器是关键任务,则应考虑基于RAID的设置。
1个 警告故事:我的室友曾经忽略了此警告,并且始终使文件系统检查程序在他的桌面系统上运行。他没等我检查它,直到它最终无法启动。一旦我有机会检查它,磁盘损坏就已经无法恢复了(500 GB磁盘只能以snail-pace KB / s的速度勉强读取,即使几天后也没有发现明显的连续可读区域)。
另一方面,在另一种具有相同症状的情况下,机器所有者会留意我的警告,并且将其搁置一旁,直到我可以对其进行检查为止。当然,这是硬盘故障。在进行了半天的GNU DDRescue会话和一个新的硬盘后,我给他带来了一个好消息,他的系统和数据已在块级别100%恢复,即所有文件都完整无损,并准备再次启动而无需任何修改。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句