文件系统是可读写的,但行为就像只读......重新安装修复了吗?

Jak*_*son 4 filesystems centos read-only

CentOS 5.5

我刚刚遇到一个实例,其中我的 /storage 目录应该是一个只读文件系统。我收到错误:

mkdir: cannot create directory `test': Read-only file system
Run Code Online (Sandbox Code Playgroud)

df:

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      141G   21G  114G  16% /
/dev/sda1              99M   13M   82M  14% /boot
tmpfs                1001M     0 1001M   0% /dev/shm
/dev/sdb1             1.4T  307G  999G  24% /storage
/dev/sdd1             1.4T  329G  978G  26% /media/hddblack
/dev/sdc1             1.4T  329G  978G  26% /media/hddsilver
Run Code Online (Sandbox Code Playgroud)

山:

/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sdb1 on /storage type ext3 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sdd1 on /media/hddblack type ext3 (ro)
/dev/sdc1 on /media/hddsilver type ext3 (ro)
Run Code Online (Sandbox Code Playgroud)

/storage 显然是一个读写文件系统。接下来我尝试了这个:

mount -o remount,rw /dev/disk/by-label/storage /storage
Run Code Online (Sandbox Code Playgroud)

现在,文件系统又可以写了。万岁。除了,它为什么这样做?这是现在的坐骑:

/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sdb1 on /storage type ext3 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sdd1 on /media/hddblack type ext3 (ro)
/dev/sdc1 on /media/hddsilver type ext3 (ro)
Run Code Online (Sandbox Code Playgroud)

几乎相同的事情......有什么想法会导致这种情况或我应该查看哪些日志以找出问题所在?

Mar*_*ner 7

很可能您遇到了磁盘 IO 错误。检查/var/log/messages。查找有关中止日志和重新安装只读的消息。

PS:如果是这种情况,您最好备份数据。


Dr.*_*ius 5

您的诊断步骤的问题:如果您的根文件系统是只读的,那么/etc/mtab也是只读的。猜猜mount读什么来获取文件系统状态:)

解决方案是检查/proc/mounts,它是一个动态内核文件,显示真实的文件系统状态。如果您在遇到此问题时已经这样做了,您很可能会发现您的根文件系统以只读方式重新安装。了解您的公用事业公司以及他们从何处获取数据。

怎么会这样?大多数/etc/fstab文件都有类似于以下内容的行:

/dev/sda1 /               ext3    relatime,errors=remount-ro 0
Run Code Online (Sandbox Code Playgroud)

注意“errors=remount-ro”选项。如果出现任何文件系统错误,根文件系统将以只读模式重新挂载。

假设/var/logs是可写的,或者您启用了离线系统日志记录,您应该也会发现记录的事件。

能够触发 remount-ro 的磁盘错误通常是一件坏事。希望你换了你的驱动器。