微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

centos系统出现Read-only file system的解决方案

最近发现Centos登陆后容易出现Read-only

read-only

read-only

也查了一下造成的原因有一下几种。

文件系统错误
内核相关硬件驱动bug
FW固件类问题
磁盘坏道
硬盘背板故障
硬盘线缆故障
HBA卡故障
RAID卡故障
非正常关机
1.文件系统错误
如 ext3 文件系统错误,比较少见,ext3 文件系统是linux下非常稳定的文件系统,目前文件系统自身bug 造成的 ext3 文件系统错误,非常罕见。
文件系统自身的校验机制发现文件系统存在问题时,为避免文件系统受到进一步的损坏,一般把文件系统设置为只读。
tune2fs 命令可以设置当操作系统内核发现有文件系统错误时,操作系统对该文件系统如何处理:
-e error-behavior
Change the behavior of the kernel code when errors are detected. In all cases,a filesystem error will cause
e2fsck(8) to check the filesystem on the next boot. error-behavior can be one of the following:
continue Continue normal execution.
remount-ro Remount filesystem read-only.
panic Cause a kernel panic.
此类只读,一般可以通过自身的检查工具,如 fsck ,进行修复。2.磁盘坏道
A.对于单个硬盘的情况,当硬盘出现坏道,且不能够被硬盘自身的纠错机制恢复时,就会报IO错误,从而进一步影响上层文件系统导致只读现象出现。
B.对于有冗余raid 的情况,多个硬盘出现坏道导致 raid 卡检验机制无法恢复时,也会对外报该raid IO 错误
badblocks 命令可以对磁盘坏道情况进行检查,该命令位于 e2fsprogs 程序包内。3.FW固件类问题
硬盘 fw bug
硬盘背板、扩展卡 fw bug
HBA卡 fw bug
raid 卡 fw bug
以及各部件 fw bug 不兼容
此类问题,只能够反馈给相应厂家,由厂家协助处理。

4.内核相关硬件驱动bug
HBA卡、raid卡硬件的内核驱动,如果有bug ,也可能导致硬盘只读。如硬盘出现错误时,驱动的错误处理机制 Error Handler 异常;或者对 SATA 协议的实现,不完全遵循标准。用sysctl 命令调整 dev.scsi.logging_level = 64 可以让内核更多的显示 scsi 层面的信息,有利于排错。

5.硬盘背板、硬盘线缆、HBA卡故障、RAID卡故障
这些部件出现故障,都可以造成硬盘只读。这些部件,如果故障现象严重,还是比较容易判断和发现,但对于偶尔不稳定,排查有时候会比较困难,一般是替换法处理。Raid 卡厂家一般有提供 linux 操作系统下的命令行工具,如:megacli hpacucli arrconf等
评论补充:
inode资源耗尽,也会导致分区只读
某个分区出现写满问题后,会出现只读故障。和OS有关系,和硬件关系不大

6. 使用LVM的linux,还可能由于操作系统升级时的bug导致文件系统变成只读。需在/etc/init.d/rc.local(REDHAT),或 /etc/init.d/after.local (suse)加入如下内容
pvscan
vgscan
lvscan
mount -a
7.非正常关机 这种情况尽量避免直接电源关机。

具体解决办法:除了硬件本身造成的。文件系统的错误可以使用重新挂载。fsck 来进行修复的。

首先你可以使用mount -o remount,rw /来进行读写挂载如仍然提示read-noly这里就可以进行如下修复操作。使用root进入单用户模式,运行fsck.ext4 -y /dev/sda3说明:ext4的文件系统使用fsck.etx4。这里的/dev/sda3是/根分区。运行完毕后,reboot重启系统就恢复正常。开始进入扫描、修正文件系统,这个过程有时很快,有时比较长,中间有数次停顿的过程,只需等待即可,千万不要以为死机而重启服务器。修正完文件系统后,如果没有提示重启系统,也需要reboot来重启系统。扩展知识:fsck简介fsck不仅可以对文件系统进行扫描,还能修正文件系统的一些问题。注意的是fsck扫描文件系统时一定要在单用户模式、修复模式或把设备umount后进行。建议在单用户模式下运行。如果扫描正常运行中的系统,会造成系统文件损坏。文件系统扫描工具有fsck、fsck.ext2、fsck.ext3、fsck.ext4、fsck.msdos、fsck.cramfs、fsck.ext4dev、fsck.vfat。最好是根据不同的文件系统来调用不同的扫描工具,比如ext3的文件系统使用fsck.ext3,ext4文件系统使用fsck.ext4等。fsck.ext4[语法]fsck.ext4[必要参数][选择参数][设备代号][功能]fsck.ext4命令:针对ext4文件系统进行检测修复[执行权限]root[参数]必要参数-a非互交模式,自动修复-c检查是否存在有损坏的区块。-C< > fsck.ext4命令会把全部的执行过程,都交由其逆向叙述,便于监控程序-d详细显示命令执行过程-f强制进行检查-F检查文件系统之前,先清理该保存设备块区内的数据-l< >把文件中所列出的损坏区块,加入标记-L< >清除所有损坏标志,重新标记-n非交互模式,把欲检查的文件系统设成只读-P< > 设置fsck.ext2命令所能处理的inode大小为多少-r交互模式-R忽略目录-s顺序检查-S效果和指定“-s”参数类似-t 显示fsck.ext2命令的时序信息。-v显示详细的处理过程-y关闭互动模式选择参数-b< > 指定分区的第一个磁区的起始地址/Super Block-B< > 设置该分区每个区块的大小-I设置欲检查的文件系统,其inode缓冲区的区块数目-V显示版本信息

原文地址:https://www.jb51.cc/centos/381441.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。