码迷,mamicode.com
首页 > 其他好文 > 详细

fsck 修复宿主机上面挂掉的虚拟机

时间:2016-01-05 19:10:16      阅读:1157      评论:0      收藏:0      [点我收藏+]

标签:虚拟机   修复   

fsck 修复宿主机上面挂掉的虚拟机

一、情况详解

有些时候宿主机突然挂掉,会造成有些虚拟机 启动失败,如下图所示

技术分享

这应该是文件系统破坏的问题,一般情况下还可以在虚拟机中fsck修复文件系统,但是这种情况在虚拟机中根本就没有机会fsck,所以想到通过外界方法对虚拟磁盘进行fsck。创建虚拟机使用的虚拟磁盘的类型是qcow2,开机无法fsck的话,可以通过如下两种方式



1、通过启动其它虚拟机的时候指定损坏虚拟磁盘启动再修复

2、通过qemu-nbd工具本地宿主机上修复qcow2

这里介绍第二种方式,直接在宿主机上修复损坏qcow2磁盘,利用qemu-nbd把qcow2映射为网络设备Network block device

二、修复虚拟机

1、加载nbd

modprobe nbd max_part=8  # max_part表示每个设备的分区,根据实际情况修改,默认为0

modinfo nbd   # 查看nbd相关信息filename:      

技术分享

2、映射损坏diskqcow2磁盘为nbd

qemu-nbd --connect=/dev/nbd0 /srv/cloud/one/datastores/0/245/disk.0

映射disk.qcow2为本地的nbd0设备,qcow2需要为绝对路径

ls /dev/nbd0* 映射虚拟磁盘有两个分区

/dev/nbd0  /dev/nbd0p1  /dev/nbd0p2

技术分享


本来准备修复了,但是发现发现之前的虚拟机分区是LVM设备,如果是正常分区直接修复就可以了,而LVM需要先LVM设备激活。

技术分享

激活LVM,安装

apt-get  install lvm2 -y

技术分享


激活LVM

默认状态可能LVM没有激活,如下:技术分享

激活方式

技术分享


修复指定分区

fsck -y /dev/VolGroup00/LogVol00

技术分享

取消映射

修复完成之后取消nbd映射,开启虚拟机即可,取消映射方法如下命令

技术分享


修复之后,顺利启动相关虚拟机,推荐开机之后再shutdown -F now强制修复一下,以防万一。

本文出自 “飞天鹰-----血杀组” 博客,请务必保留此出处http://749806593.blog.51cto.com/6662384/1731713

fsck 修复宿主机上面挂掉的虚拟机

标签:虚拟机   修复   

原文地址:http://749806593.blog.51cto.com/6662384/1731713

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!