今天在公司发布新版本时,发布脚本忽然报Read-only file system的错误,以前一直还用的好好的…登陆到远程服务器上,发现只要涉及到修改/保存条目等须要写磁盘操做的命令都没法使用(如tar、cp、mv、rm、chmod、chown、wget下载等指令),老是提示Read-only file system,也就是说系统是只读的,什么也写不了。 服务器
查看了机器上的/etc/fstab文件,在其中发现这样的同样记录(注意errors=remount-ro段): code
1 |
/dev/sda1 / ext3 errors=remount-ro 0 1 |
这种状况一般都是因为系统发现磁盘硬件故障或文件系统中文件被损坏以后而采起的保护机制致使的。为了保护数据不破坏分区中已有内容,Linux在挂载文件系统时就只用read-only只读方式加载了。至于挂载的文件系统为何会莫名地变成以只读方式挂载的具体缘由,这就不知道了。可能的缘由有: rem
1 2 3 |
系统文件损坏; 磁盘有坏道; fstab文件配置错误,如分区格式错误错误(将ntfs写成了fat)、配置指令拼写错误等。 |
若是可以确认数据和系统的文件没有被损坏,修复fstab文件配置后只要从新R/W加载或reboot就可以恢复正常。 get
1 2 |
#以读写方式从新挂载文件系统 mount -o remount rw / |
若是机器上有重要文件,在从新加载文件系统前能够用scp命令将其备份到远程主机上: table
1 |
scp -r import_dir/import_file user@host:backup_dir |
之因此使用scp -r命令备份重要目录/文件到远程主机上,而不用tar命令打包压缩后再传输,由于在用tar命令打包压缩文件/目录时会涉及到写磁盘操做,这会引发Read-only file system的错误。 import
若是是文件系统有问题,那就须要在umount状态下执行fsck命令来检查文件系统并修复文件系统中的错误。 登录
1 2 3 |
nohup fsck -y /dev/VolGroup00/LogVol00 > /dev/shm/fscklog & # 检查好后重启 reboot |
若是是磁盘硬件损坏,最好的方法就是直接换一个新硬盘。若是你以为旧硬盘扔了惋惜,还能够将它低格以后,再从新安装系统,系统从新安装后,磁盘会从新分区。 打包
若是仅仅是想将数据备份出来并且机器又在身边的话,你能够用live-cd从光盘启动系统,而后直接备份。固然此时你也能够修改硬盘中的配置文件,如/etc/fstab。 配置