文档首页/ 弹性云服务器 ECS/ 故障排除/ 磁盘空间管理/ Linux文件系统提示:Read-only file system
更新时间:2024-08-15 GMT+08:00

Linux文件系统提示:Read-only file system

问题现象

Linux操作系统云服务器删除或者修改文件时提示文件系统只读:Read-only file system,导致操作失败。

根因分析

文件系统只读的原因可能有:

  • 文件系统错误导致文件系统进入只读模式。
  • 文件系统是以只读方式进行的挂载。
  • 硬件故障,包括磁盘有坏道或者Raid卡故障等硬件问题。

操作须知

  • 修复文件系统,可能会产生数据丢失,请先备份数据后进行操作。
  • 如以下场景均不符合,请检查存储或者磁盘硬件是否存在故障。

场景一:文件系统以只读方式挂载导致删除或者修改类操作失败

  1. 执行以下命令,查看删除文件所在目录的挂载方式:

    mount |grep 挂载点

    如果结果显示挂载方式为ro,则根因为挂载方式为只读导致。

  2. 在不重启的情况下可以以读写方式重新进行挂载,执行:

    mount -o remount,rw 挂载点

    如需在下次启动时也以读写方式挂载,需修改/etc/fstab文件中第四列参数。

场景二:如果结果显示挂载方式rw,则确认是否为文件系统错误导致

  1. 执行以下命令,检查内核中关于文件系统的信息。

    dmesg |egrep "ext[2..4]|xfs"

    输出结果中如果有I/O error ... inode 的错误信息则根因为文件系统错误导致进入只读模式。

    如图所示,需要修复文件系统,请先备份数据后操作,由于文件系统在使用中无法修复,需要通过单用户模式(在该模式下磁盘未挂载)修复文件系统。

  2. 重启进入单用户模式尝试修复文件系统。
  3. 查询当前设备及文件系统

    blkid

  4. 检查文件系统(以vdb1为例)。
    • ext系列文件系统执行以下命令

      fsck -n /dev/vdb1

    • xfs系列文件系统执行以下命令

      xfs_check /dev/vdb1

    如果遇到提示当前文件系统为mounted,需要先umount文件系统。

    1. 执行以下命令,查看当前挂载信息执行

      mount

    2. 卸载设备

      umount 挂载点

  5. 修复文件系统(以vdb1为例)。
    • ext系列文件系统执行以下命令

      fsck /dev/vdb1

    • xfs系列文件执行以下命令

      xfs_repair /dev/vdb1