问题现象:接监控组人员反馈,在某主机opt上当创建目录时,提示为只读Read-only file system,不允许写入或删除,根据以往经验这种问题有三种可能:
1、挂载时未给予w权限;
2、分区出现问题,需要fsck进行修复处理;
3、硬盘故障,需通过服务器原厂工具核实是否硬盘是否出现问题,更换硬盘以免丢失数据 。
注:有些人可能还会想到使用chattr 设置权限造成不能写和通过磁盘配额进行配置,不过这两种设置报错内容和这个报错不同。
解决思路:
1、通过mount查看当前参数:
# mount
/dev/sda2 on / type ext3 (rw,acl,user_xattr)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
debugfs on /sys/kernel/debug type debugfs (rw)
udev on /dev type tmpfs (rw)
devpts on /dev/pts type devpts (rw,mode=0620,gid=5)
/dev/sda5 on /boot type ext3 (rw,acl,user_xattr)
/dev/sda9 on /home type ext3 (rw,acl,user_xattr)
/dev/sda10 on /opt type ext3 (rw,acl,user_xattr)
/dev/sda8 on /tmp type ext3 (rw,acl,user_xattr)
/dev/sda6 on /usr type ext3 (rw,acl,user_xattr)
/dev/sda7 on /var type ext3 (rw,acl,user_xattr)
通过查看可以发现,当前挂载的权限是rw权限。
2、fsck修复
[[email protected] ~]# umount /opt/
umount: /opt: device is busy
umount: /opt: device is busy
[[email protected] ~]# fuser -m /dev/sda10
/dev/sda10: 11334
[[email protected] ~]# ps auxww|grep 11334
apache 11334 0.0 0.3 14288 6404 ? S 09:47 0:00 /usr/sbin/httpd -k start -DSSL
root 12184 0.0 0.0 4128 684 pts/0 R+ 09:50 0:00 grep 11334
[[email protected] ~]# service httpd stop
Stopping httpd: [ OK ]
[[email protected] ~]# umount /opt/
[[email protected] ~]# fsck -V -a /dev/sda10
fsck 1.39 (29-May-2006)
[/sbin/fsck.ext3 (1) -- /opt] fsck.ext3 -a /dev/sda10
/opt: recovering journal
/opt: clean, 1890281/20971520 files, 6941812/20970849 blocks
3、硬盘检测
这个可以根据OEM厂商提供的针对相关系统的工具而定,常用的如HP的hpacucli 、DELL的delldset、ATAE的disk_info_test等。