当linux操作系统启动出现root用户也无法进行任何的文件写操作时,无论什么用户(包括root)写文件保存或者删除文件,且对操作文件或目录都有写权限时,还任然报错:E212: Can’t open file for writing 或者 Read-only file system。
1、root用户在home目录下创建test文件,保存时报错如下:
2、root用户删除
[root@hadoop01 home]# ll /etc/.pwd.lock
-rw——-. 1 root root 0 Jun 1 2002 .pwd.lock
[root@hadoop01 home]# rm -rf /etc/.pwd.lock
rm: cannot remove `/etc/.pwd.lock’: Read-only file system
[root@hadoop01 home]# mount -o remount rw / (这一步是关键的一步,让“/”根文件系统重新挂载并有可读写模式)
[root@hadoop01 home]# rm -rf /etc/.pwd.lock
[root@hadoop01 home]#
造成这个问题的原因大多数是因为非正常关机后导致文件系统受损引起的,在系统重启之后,受损分区就会被Linux自动挂载为只读。解决的方法是通过fsck来修复文件系统,然后重启即可,以下是以针对/dev/xvde1分区,ext4文件系统分区的一个操作案例:
fsck.ext4 -y /dev/xvde1
本文只着重强调一点:要针对出问题的分区进行操作,在挂载了多个硬盘的机器上要仔细分辨一下。
报错read-only file system的原因是你所在的分区只有读权限, 没有写权限
mount为挂载分区命令,mount -o remount -w 重新挂载分区并增加写权限,增加读写权限即为 -rw
问题:
push 某个文件到目标板(比如/data目录下)时,提示其目录是只读的;可通过如下命令,将目标目录临时变更为可读写模式:
解决方法:
mount -o remount -rw /data
【扩展:】
重新挂载为已经挂载了的文件系统(以读写权限挂载),需要注意的是,挂载点必须是一个已经存在的目录,这个目录可以不为空。一般用于此目录下的文件为ro权限,需要临时变更为可修改权限。
参数:
-o <选项> 指定挂载文件系统时的选项,有些也可写到在 /etc/fstab 中。常用的有:
defaults 使用所有选项的默认值(auto、nouser、rw、suid)
auto/noauto 允许/不允许以 –a选项进行安装
dev/nodev 对/不对文件系统上的特殊设备进行解释
exec/noexec 允许/不允许执行二进制代码
suid/nosuid 确认/不确认suid和sgid位
user/nouser 允许/不允许一般用户挂载
codepage=XXX 代码页
iocharset=XXX 字符集
ro 以只读方式挂载
rw 以读写方式挂载
remount 重新安装已经安装了的文件系统
loop 挂载“回旋设备”以及“ISO镜像文件”
1、mount:
用于查看哪个模块输入只读,一般显示为:
[root@localhost ~]# mount
/dev/cciss/c0d0p2 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/cciss/c0d0p7 on /home type ext3 (rw)
/dev/cciss/c0d0p6 on /var type ext3 (rw)
/dev/cciss/c0d0p3 on /usr type ext3 (rw)
/dev/cciss/c0d0p1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/dm-0 on /home/book/upload/BookFile1 type ext3 (rw)
/dev/dm-1 on /home/book/upload/BookFile2 type ext3 (rw)
/dev/dm-2 on /backup type ext3 (rw)
/dev/dm-3 on /home/book/upload/BookFile3 type ext3 (ro)
2、如果发现有ro,就重新mount,或者umount以后再remount
3、umount /dev/dm-3
如果发现有提示“device is busy”,找到是什么进程使得他busy
fuser -m /mnt/data 将会显示使用这个模块的pid
fuser -mk /mnt/data 将会直接kill那个pid
然后重新mount即可。
4、还有一种方法是直接remount,命令为
mount -o rw,remount /mnt/data。