文件系统是可读写的,但行为却像只读的...重新挂载可以解决这个问题吗?

文件系统是可读写的,但行为却像只读的...重新挂载可以解决这个问题吗?

CentOS 5.5

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

mkdir: cannot create directory `test': Read-only file system

数据:

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

山:

/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)

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

mount -o remount,rw /dev/disk/by-label/storage /storage

现在,文件系统又可以写入了。太好了。但是,为什么会这样呢?这是现在的挂载:

/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)

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

答案1

最有可能的是,您遇到了磁盘 IO 错误。检查/var/log/messages。查找有关中止日志并重新以只读方式挂载的消息。

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

答案2

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

解决方案是检查/proc/mounts,这是一个显示真实文件系统状态的动态内核文件。如果您在遇到此问题时这样做了,您很可能会发现您的根文件系统被重新挂载为只读。了解您的实用程序以及它们从哪里获取数据。

这是怎么回事?大多数/etc/fstab文件都会有类似这样的一行:

/dev/sda1 /               ext3    relatime,errors=remount-ro 0

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

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

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

相关内容