我对此很陌生,但我被困住了。我有一个运行 nagios 的小型虚拟机。今天它开始失败,我在消息日志中看到了一些错误。
@someone~]# tail /var/log/messages 8 月 31 日 02:25:57 muspllx043v 内核:sd 2:0:1:0: [sdb] 结果:hostbyte=DID_OK driverbyte=DRIVER_OK 8 月 31 日 02:25:57 muspllx043v内核:sd 2:0:1:0:[sdb] CDB:写入(10):2a 00 05 fe ce d8 00 00 48 00 Aug 31 02:25:57 muspllx043v 内核:end_request:I/O 错误,开发 sdb ,扇区 100585176 8 月 31 日 02:25:57 muspllx043v 内核:JBD2:在 dm-2-8 上刷新文件数据时检测到 IO 错误 8 月 31 日 02:25:57 muspllx043v 内核:中止设备 dm-2-8 上的日志。8 月 31 日 02:25:57 muspllx043v 内核:EXT4-fs (dm-2):inode 1576714 在逻辑偏移量 303958 的延迟块分配失败,最大块 1 错误 -30 8 月 31 日 02:25:57 muspllx043v 内核:8 月 31 日02:25:57 muspllx043v 内核:这不应该发生!数据将丢失 8 月 31 日 02:25:57 muspllx043v 内核:
我尝试重新启动 Nagios 并收到以下错误:
@someone~]# service nagios restart Running configuration check... mktemp: 无法通过模板创建文件
/tmp/.configtest.XXXXXXXX': Read-only file system /etc/init.d/nagios: line 88: : No such file or directory grep: : No such file or directory grep: : No such file or directory /etc/init.d/nagios: line 108: /usr/local/nagios/var/nagios.configtest: Read-only file system /etc/init.d/nagios: line 109: /usr/local/nagios/var/nagios.configtest: Read-only file system chmod: changing permissions of
/usr/local/nagios/var/nagios.configtest': 只读文件系统 chown: 更改 `/usr/ 的所有权local/nagios/var/nagios.configtest': 只读文件系统 cat: : 没有那个文件或目录
在与我的合作伙伴提出一些问题后,有人建议我检查文件系统,所以我运行 fsck 命令,但收到以下错误:
@someone~]# sudo fsck / fsck from util-linux-ng 2.17.2 e2fsck 1.41.12(2010 年 5 月 17 日)/dev/mapper/vg_muspllx043v-lv_root:恢复日志 fsck.ext4:超级中的错误幻数尝试重新打开 /dev/mapper/vg_muspllx043v-lv_root e2fsck 时阻塞:io manager magic bad!
现在我无法在控制台上执行任何命令,并且出现输入/输出错误。
@someone~]# df -h -bash: /bin/df: 输入/输出错误
如果我尝试打开一个新会话,我会得到:连接已关闭。
fsck 是否有可能弄乱了文件系统?我可以浏览目录,但我无法执行任何操作。
@someone scripts]# df -h -bash: /bin/df: 输入/输出错误@someone scripts]# ls -l -bash: /bin/ls: 输入/输出错误@someone scripts]# pwd /home/nagios /scripts @someone scripts]# cd @someone ~]# pwd /root @someone ~]# cd /var/log/ @someone log]# ls -lrt -bash: /bin/ls: 输入/输出错误 @someone log ]# pwd /var/log @someone log]# @someone ~]#
我希望你能帮我解决这个问题。
第一件事。
fsck
不会对以读写方式挂载的文件系统执行任何操作。其次...看起来文件系统已损坏...因此操作系统将磁盘重新安装为只读。这是一种故障保险,可以保护自己免受进一步损坏。(注意“只读文件系统”错误的数量?)
第三... fsck 可以对文件系统进行更改...但是如果有问题,它会要求您在应用之前确认任何可能导致数据丢失的更改...除非您覆盖默认行为(
-y
标志例如)“修复”不能保证您的操作系统或数据是安全的。它只是意味着它将把卷变成正确的 ext2 格式。这有时意味着文件和目录将被删除。即使您没有运行 fsck ......您可能能够从这些扇区中提取的任何数据都可能无法使用。第四……看起来好像在某个时候设置了 RAID?(我看到卷组和逻辑卷......)它可能不是 RAID......但我不知道为什么人们会在没有 RAID 的情况下设置逻辑卷。您是否有多个磁盘(虚拟或物理)发生故障?
最后一步:恢复。看起来损害已经造成……而且数字取证不太可能让你走得很远(即使你向一家公司支付了一大笔零钱)。你最好的选择是为 nagios 创建一个新的虚拟机……并尝试从旧的 nagios 安装中挽救和恢复你所能做的。
最后的临别笔记:我希望你吸取了教训。备份为王。RAID 失败……当你不监控它们时,它会失败。将操作系统和数据保存在不同的磁盘/卷上。(这使备份/恢复变得更容易)监控您的系统。