Linux虚拟机文件系统突然变成只读

虚拟机Linux在svn checkout代码过程中出现错误,“/”文件系统突然变成只读,dmsg可以看到内核出现IO错误。重启虚拟机表示磁盘错误,用命令“fsck / -y”修复磁盘错误。这种情况出现过几次,有时修复磁盘之后可以继续启动,后来干脆就无法启动了。

重新安装虚拟机并checkout代码,也很容易出现这个问题。宿主系统运行任务比较多,系统比较慢。有一次svn checkout出错,在宿主系统(Ubuntu)用iotop看进程IO状况,发现updatedb.mlocate写入速度很大,达到10M/s以上。

这个页面解析了原因:High I/O causing filesystem corruption

当宿主系统和虚拟机的IO都比较繁忙时,虚拟机的IO请求得不到及时的响应。虚拟机Linux不知道自己运行在虚拟机里面,会认为是磁盘IO错误,为了保护磁盘数据会remount分区为只读。

解决方法见上面的链接,不过都比较高级(使用直接IO、修改内核参数、使用LVM分区等)。

简单解决办法:

1) 不要在宿主系统和虚拟机同时运行高IO任务(别以为你的i7电脑很厉害);

2) 备份虚拟机(复制vmdk文件或使用VirtualBox快照),就算出错了也容易恢复。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值