Linux 服务器报错:config error: [errno 30] read-only file system 常见问题与解决方案
一、问题概述
在 Linux 服务器运维过程中,经常会遇到这样的错误提示:
config error: [errno 30] read-only file system: '/var/log/dnf.log': '/var/log/xx.log'
这个错误表明系统的文件系统被挂载为只读模式,导致无法写入日志文件和其他重要数据。当遇到这种情况时,服务器的正常运行会受到严重影响,需要及时诊断和解决。

二、问题现象分析
2.1 典型错误表现
2.2.1 无法创建或修改文件
touch test.txt
touch: cannot touch 'test.txt': Read-only file system
2.2.2 日志文件无法写入
/var/log 目录下的日志停止更新
应用程序因无法写入日志而报错
2.2.3 系统服务异常
数据库服务启动失败
Web 服务器无法正常运行
各种守护进程异常退出
2.2 问题诊断步骤
# 查看当前挂载状态
mount | grep " / "
# 或者查看具体的挂载信息
cat /proc/mounts | grep " / "
如果输出中包含ro(read-only),说明根文件系统确实被只读挂载了。
三、EXT4文件格式解决方案详解
3.1 重新挂载为读写模式
如果只是临时的挂载问题,可以尝试重新挂载:
# 尝试重新挂载根文件系统为读写模式
mount -o remount,rw /
# 如果失败,可以尝试:
mount -n -o remount,rw /
3.2 文件系统检查和修复
如果重要数据请先行进行备份再执行下列自动修复命令
fsck.ext4 -y /dev/对应卷(设备)
四、XFS 文件系统修复
4.1. 常规修复
# 卸载文件系统
umount /dev/sda1
# 检查文件系统完整性
xfs_check /dev/sda1; echo $?
# 执行修复
xfs_repair /dev/sda1
# 重新挂载
mount /dev/sda1 /mnt
4.2 强制修复(日志损坏时)
# 注意:-L参数会清除日志,可能导致数据丢失
xfs_repair -L /dev/sda1
# 重新检查
xfs_check /dev/sda1
五、常见原因分类
根据大量的实践经验,文件系统自动转为只读模式通常由以下原因引起:
5.1. 文件系统损坏
典型场景:
- 系统非正常关机或断电
- 磁盘 I/O 错误持续发生
- 文件系统元数据损坏
错误日志特征
dmesg | grep -i "EXT4-fs error"
# 可能看到类似信息:
# EXT4-fs error (device sda1): ext4_journal_check_start:56: Detected aborted journal
# EXT4-fs (sda1): Remounting filesystem read-only
5.2. 磁盘硬件故障
常见硬件问题:
- 硬盘出现物理坏道
- SSD 寿命耗尽(P/E 周期超限)
- RAID 阵列降级或重建失败
- 磁盘控制器故障
诊断命令:
# 检查磁盘SMART状态(需要安装smartmontools)
smartctl -a /dev/sda
# 查看内核错误日志
dmesg | grep -i error
5.3. 磁盘空间耗尽
当磁盘空间被完全占用时,ext4 文件系统也可能自动转为只读模式:
# 检查磁盘空间使用情况
df -h
# 检查inode使用情况
df -i
5.4. 配置文件错误
/etc/fstab 配置问题:
- 挂载选项语法错误
- 文件系统类型指定错误
- UUID 或设备路径不正确
六、预防措施
6.1 监控告警设置
使用 Prometheus + Grafana 监控
关键监控指标:
- 磁盘使用率(df 使用率)
- inode 使用率
- 文件系统错误次数
- 磁盘 I/O 错误
告警规则示例:
groups:
- name: filesystem
rules:
- alert: HighDiskUsage
expr: (node_filesystem_avail_bytes / node_filesystem_size_bytes) < 0.1
for: 5m
labels:
severity: critical
annotations:
summary: "High disk usage on {{ $labels.mountpoint }}"
description: "Disk usage is above 90% on {{ $labels.mountpoint }}"
- alert: FilesystemReadOnly
expr: node_filesystem_readonly == 1
for: 1m
labels:
severity: critical
annotations:
summary: "Filesystem {{ $labels.mountpoint }} is read-only"
6.2 总结与建议
1. 理解保护机制:errors=remount-ro 是 ext4 的保护机制,不是故障本身
2. 数据安全第一:遇到只读问题时,首先考虑数据备份
3. 系统性排查:从软件配置到硬件状态进行全面检查
4. 预防胜于治疗:建立完善的监控和维护机制







