文件系统损坏导致虚拟机无法正常启动的问题及解决方法
来源:互联网 发布:我的世界方块数据值 编辑:程序博客网 时间:2024/05/17 02:58
简介
计算机的文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易,文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念,用户使用文件系统来保存数据不必关心数据实际保存在硬盘(或者光盘)的地址为多少的数据块上,只需要记住这个文件的所属目录和文件名。
在使用中, 会遇到文件系统损坏的故障, 直接导致 Azure 平台的虚拟机无法正常启动和访问, 以下是关于此类问题的描述及解决方法.
关于文件系统,详情参见如下:
文件系统
注意:本文档讨论的文件系统以 CentOS 作为范例, 其他版本的 Linux 略有不同, 请注意差别.
文件系统损坏常见问题
范例1:
Checking all file systems. [/sbin/fsck.ext4 (1) -- /] fsck.ext4 -a /dev/sda1 /dev/sda1 contains a file system with errors, check forced . /dev/sda1: Inodes that were part of a corrupted orphan linked list found. /dev/sda1: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY
范例2:
EXT4-fs (sda1): INFO: recovery required on readonly filesystem EXT4-fs (sda1): write access will be enabled during recovery EXT4-fs warning (device sda1): ext4_clear_journal_err:4531: Filesystem error recorded from previous mount: IO failure EXT4-fs warning (device sda1): ext4_clear_journal_err:4532: Making fs in need of filesystem check .
解决方案之 root 文件系统损坏
A = 文件系统故障所在的虚拟机
B = 临时虚拟机
- 在 Azure 经典管理门户上停止运行虚拟机 A.
- 在同一个 cloud service 里创建一台临时 Linux 虚拟机 B.
- 删除虚拟机 A, 但是选择保留磁盘.
- 在 Azure 经典管理门户上,选择虚拟机 B -> 附加磁盘 -> 选择虚拟机 A 的系统磁盘.
- 以管理员身份登陆虚拟机 B.
- 执行:
# fdisk -l
- 确认虚拟机 A 的系统磁盘作为新的磁盘设备附加在虚拟机 B 上.假定虚拟机A的系统磁盘为 /dev/sdc, root 文件系统为 /dev/sdc1
执行以下步骤, 进行备份文件系统信息:
# fdisk -l /dev/sdc > /var/tmp/fdisk_before.log # dumpe2fs /dev/sdc1 > /var/tmp/dumpe2fs_before.log # tune2fs -l /dev/sdc1 > /var/tmp/tune2fs_before.log # e2fsck -n /dev/sdc1 > /var/tmp/e2fsck._beforelog
执行以下命令, 进行文件系统修复:
# fsck -yM /dev/sdc1
解决方案之常规文件系统损坏
A = 文件系统故障所在的虚拟机
B = 临时虚拟机
- 在 Azure 经典管理门户上停止运行虚拟机 A.
- 在同一个 cloud service 里创建一台临时 Linux 虚拟机 B.
- 删除虚拟机 A, 但是选择保留磁盘.
- 在 Azure 经典管理门户上,选择虚拟机 B -> 附加磁盘 -> 选择虚拟机 A 的系统磁盘.
- 以管理员身份登陆虚拟机 B.
- 执行:
# fdisk -l
- 确认虚拟机 A 的系统磁盘作为新的磁盘设备附加在虚拟机 B 上.假定虚拟机 A 的系统磁盘为 /dev/sdc, root 文件系统为 /dev/sdc1
执行如下命令,将虚拟机A的系统磁盘挂载到临时虚拟机上:
# mkdir /mnt/temp_fs # mount /dev/sdc1 /mnt/temp_fs # cp /mnt/temp_fs/etc/fstab /mnt/temp_fs/etc/fstab.org # vi /mnt/temp_fs/etc/fstab 将文件系统损坏的条目注释掉,保存修改, 退出 vi. # umount /dev/sdc1
在 Azure 经典管理门户上分离虚拟机 A 的系统磁盘.
- 在 Azure 经典管理门户上基于虚拟机 A 的系统磁盘, 重建虚拟机 A.
- 以管理员身份登录虚拟机 A.
执行以下命令, 进行文件系统修复:
# fsck -yM <file system>;
文件系统修复完毕以后, 恢复 /etc/fstab 被注释的对应条目, 重启虚拟机. 立即访问http://market.azure.cn
阅读全文
0 0
- 文件系统损坏导致虚拟机无法正常启动的问题及解决方法
- 虚拟机下Ubuntu非正常关机导致文件系统损坏的一种解决方案
- Linux:记一次异常断电导致的系统无法正常启动(文件系统故障)
- Linux 内核超时导致虚拟机无法正常启动
- Linux 内核超时导致虚拟机无法正常启动
- Linux 内核超时导致虚拟机无法正常启动
- 【案例】如何处理Linux虚拟机文件系统损坏无法进入系统的问题
- Oracle表空间文件损坏导致的数据库异常关闭并启动失败问题的解决方法
- 非正常关机时,innodb故障导致mysql无法启动的解决方法
- 一个由于文件权限问题导致的SQL Server 2008 无法正常启动的问题
- 一次权限修改导致的RAC无法正常启动的问题的解决
- Ubuntu10.04升级到11之后导致 VM 无法正常启动的问题
- Centos中将openjdk切换为Oracle Jdk导致Tomcat无法正常启动的问题
- 虚拟机无法识别U盘的问题及解决方法
- 关于VMware克隆的linux虚拟机eth0网卡无法正常启动的问题
- VMware下ubuntu系统一直莫名其妙地连接无线网络导致Hadoop集群无法正常启动的解决方法
- 虚拟机无法启动的问题
- 虚拟机无法启动的问题
- [POJ]3017 单调队列 + set
- txt文件导入mysql
- java正则实现身份证号码匹配
- .XML之三 简单xml文档对象模型
- Android JNI编程入门
- 文件系统损坏导致虚拟机无法正常启动的问题及解决方法
- Hadoop YARN配置参数剖析(4)—Fair Scheduler相关参数
- Solr中使用游标进行深度分页查询以提高效率(适用的场景下)
- java中如何连接mysql数据库
- StringBuffer
- 对数串进行比较,组合出来最大的一个组合数
- Android OCR识别身份证,银行卡等证件信息
- jother编码
- android studio 问题记录