如何查找主文件系统进入只读模式的原因

如何查找主文件系统进入只读模式的原因

Ubuntu 12.04

文件系统频繁进入只读模式。首先我读过这个问题文件系统频繁进入只读模式已经。但我必须知道这是否是由除 之外的其他原因造成的dying hard drive。这是我的客户提供的服务器,我只是在那里运行一些node.js workers+ 一个node.js server,我正在使用mongodb

时不时地(每隔 20-50 小时)系统会突然使文件系统变为只读,mongodb 进程失败(由于只读 fs)并且我的节点工作程序/服务器(由启动forever)被杀死。

这是来自 dmesg 的日志 - 我可以看到那里有一些错误和消息,表明 FS 将变为只读,并且还有一些 JOURNAL 错误,但我想找到这些错误的原因。

http://speedy.sh/Ux2VV/dmesg.log.txt


编辑

smartctl -t long /dev/sda
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.5.0-23-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

SMART support is: Unavailable - device lacks SMART capability.
A mandatory SMART command failed: exiting. To continue, add one or more '-T permissive' options.

我做错了什么? 也一样sda2

此外现在当我输入任何在 shell 中不存在的命令时我都会得到这样的结果:

Sorry, command-not-found has crashed! Please file a bug report at:
https://bugs.launchpad.net/command-not-found/+filebug
Please include the following information with the report:

编辑2

我刚刚得到信息说这个服务器实际上是 VPS,他们告诉我硬盘没问题而且它们在 RAID 10 上。他们告诉我“在 fstab 中强制 fsck 应该有帮助”...


编辑3

这是mount命令的输出:

/dev/sda2 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /media/psf type prl_fs (rw,nosuid,nodev,sync,noatime,share,_netdev)

那么实际上没有 sda 驱动器?只有 sda2?


编辑4

命令输出fsck -N

root@ubuntu:~# fsck -N sda
fsck from util-linux 2.20.1
[/sbin/fsck.ext4 (1) -- /] fsck.ext4 sda /dev/sda2 

答案1

[26729.124569] Write(10): 2a 00 03 96 5a b0 00 00 08 00
[26729.124576] end_request: I/O error, dev sda, sector 60185264
[26729.125298] Buffer I/O error on device sda2, logical block 4593494
[26729.125986] lost page write due to I/O error on sda2

对我来说,这足以证明你的/dev/sda系统即将过时。你可以运行 smartctl 测试来确认(smartctl -t long /dev/sda),但我倾向于尽快更换它。

编辑smartctl我给出的命令写得没错。感谢您在问题中展示了故障模式;这看起来要么是您的硬件太旧了,要么是存在某种转换层:要么是虚拟化,要么是硬件 RAID 控制器。您能解释一下吗?

我可以重复一下我的断言吗?你的硬盘快报废了?测试一切顺利,但在你的系统崩溃和数据丢失之前更换硬件应该是你现在的首要任务。请至少确保您的备份是最新的以免再浪费时间smartctl

编辑2:他们建议的方法绝对值得一试 - fscking 文件系统 - 但我不太希望这能解决问题,因为你的 FS 不会因为 FS 不一致而下降到 ro 模式,而是因为与底层硬件通信时出现问题而下降到 ro 模式。

如果他们确信底层硬件没有问题,那么问题就出在内核和硬件之间,即虚拟化层。您可能应该让您的 VPS 提供商确认他们 VPS 系统完全支持您运行的发行版和确切的内核版本。

答案2

更完美的查找确切错误的方法可能是在只读期间运行命令dmesg以查找任何错误/问题。您也可以尝试fsck在干燥模式下运行以找出问题所在。(抱歉,由于访问限制,我无法查看您的附件。如果是在问题期间,我会稍后检查)

答案3

我也遇到过同样的问题,其中服务器 FS 进入只读状态。检查 inode,它们可能已满:

DF-我

答案4

安装后我遇到了同样的问题葡萄酒,我删除了 Ubuntu 16.04,并尝试了 Ubuntu 18.04、Ubuntu 20.04,但没有成功,一次又一次地遇到同样的问题。然后我更换了硬盘,问题就解决了。

相关内容