Linux实例在修改文件时遇到“Read-only file system ***”错误怎么处理?

问题现象

重启ECS实例后,实例操作系统正常运行,但执行chartmkdircat等命令时,提示Read-only file system错误。

  • 使用chattr命令修改sshd_config文件时,提示Read-only file system ***。Read-only file system

  • 使用mkdir命令创建一个目录时,提示cannot create directory 'test':Read-only file system ***

    mkdir

  • 使用cat命令查看文件时,提示cannot create temp file for here-document:Read-only file system ***

    cat

可能原因

该问题可能是由以下原因导致:

  • 该实例的/etc/fstab文件中将根文件系统/配置为只读挂载ro,使系统或进程因无法正常写入文件,导致实例启动失败或系统服务无法正常运行。

  • 该实例的/etc/fstab文件中的根文件系统/未配置挂载,导致重启实例后,根文件系统/会被默认为只读挂载ro,使系统或进程因无法正常写入文件而导致实例启动失败或系统服务无法正常运行。

解决方案

修改/etc/fstab中文件系统挂载选项

  1. 使用VNC方式远程登录ECS实例。

    具体操作,请参见连接方式概述

  2. 查看挂载选项。

    cat /etc/fstab
    • 如下图所示,表示根文件系统/挂载模式为只读ro,需要将挂载模式修改为可读写rwro模式

    • 如下图所示,表示根文件系统/未配置挂载模式,根文件系统/会被默认为只读挂载ro,需要将挂载模式修改为可读写rw

      image

  3. 修改挂载模式为可读写rw

    mount -o remount rw /
  4. 修改/etc/fstab文件中根文件系统/挂载模式为可读写rw

    1. 打开/etc/fstab配置文件。

      vim /etc/fstab
    2. 修改根文件系统/挂载模式为可读写rw

      修改挂载模式为rw

    3. 按Esc键,输入:wq保存修改。

    4. 重启实例使修改生效。

      reboot