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 的磁盘错误通常是一件坏事。希望您更换了驱动器。