(原创地址)html
问题描述:上周公司的私有云(底层构架是Openstack+KVM,目前稳定性还不够好,开发团队在改进中)一个估算节点死掉,之后恢复后发觉这个估算节点的全部Linux虚拟机系统都弄成只读了,复制文件提示:Read-onlyfilesystem,如图所示:node
问题原因:系统没有正常死机,使得虚拟c盘出现文件系统错误。linux
解决方式:使用fsck自动修补,具举重做以下:服务器
重启系统后使用root步入单用户模式linux为只读文件系统linux系统界面,运行
fsck.ext3-y/dev/vda3构架
说明:ext3的文件系统使用fsck.ext3,ext4文件系统使用fsck.etx4。/dev/vda3是系统/根分区。运行完毕后,reboot重启系统就恢复正常。20多台出问题的都是这样修补的linux 论坛,无失败案例。fsck.ext3开始步入扫描、修正文件系统,这个过程有时很快,有时比较长,中间有数次停顿的过程,只需等待便可,千万不要认为关机而重启服务器。修正完文件系统后,若是没有提示重启系统,也需要reboot来重启系统。工具
扩充知识:fsck简介
fsck不只才能对文件系统进行扫描,能够修正文件系统的一些问题。注意的是fsck扫描文件系统时必将要在单用户模式、修复模式或把设备umount后进行。建议在单用户模式下运行。若是扫描正常运行中的系统,会产生系统文件受损。spa
文件系统扫描工具备fsck、fsck.ext二、fsck.ext三、fsck.ext四、fsck.msdos、fsck.cramfs、fsck.ext4dev、fsck.vfat。最好是依据不一样的文件系统来调用不一样的扫描工具,好比ext3的文件系统使用fsck.ext3,ext4文件系统使用fsck.ext4等。code
/dev/vda3是ext3的文件系统linux为只读文件系统,这儿介绍fsck.ext3的参数:htm
fsck.ext3blog
[句型]
fsck.ext3[必要参数][选择参数][设备代号]
[功能]
fsck.ext3命令:针对ext3文件系统进行监测修补
[执行权限]
root
[参数]
必要参数
-a非互交模式,手动修补
-c检测是否存在有破损的区块。
-Cfsck.ext3命令会把所有的执行过程,都交由其逆向表述,以便监控程序
-d详尽显示命令执行过程
-f强制进行检测
-F检测文件系统曾经,先清除该保存设备块区内的数据
-l把文件中所列举的毁坏区块,加入标记
-L去除全部损毁标志,从新标记
-n非交互模式,把欲检测的文件系统设成只读
-P设置fsck.ext2命令所能处理的inode大小为多少
-r交互模式
-R忽视目录
-s次序检测
-S疗效和指定“-s”参数相像
-t显示fsck.ext2命令的时序信息。
-v显示详尽的处理过程
-y关掉互动模式
选择参数
-b指定分区的第一个磁区的起始地址/SuperBlock-B设置该分区每一个区块的大小-I设置欲检测的文件系统,其inode缓冲区的区块数量-V显示版本信息