设为首页 收藏本站
查看: 837|回复: 0

[经验分享] 受损虚拟机的修复方法

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-1-19 11:07:09 | 显示全部楼层 |阅读模式
作为VMware虚拟化环境管理员,你肯定遇到过虚拟机无法启动的情况。实施排错时,你需要对虚拟机的内部进行检查。而LibguestfsLinux工具集可以在这种情况下为你提供帮助。

利用Libguestfs找出损坏的虚拟机文件

Libguestfs允许在虚拟机上挂载任何类型的文件系统,以便修复启动故障。作为一款管理KVM环境中虚拟机的原生Linux工具,默认情况下并不适用于所有VMware平台。所以管理员不会将其作为首选的工具,但是却值得花费一些时间来配置和使用。

使用Libguestfs,首先需要使用Libvirt.Libvirt是一个管理接口,可以和KVM、Xen和其他一些基于Liunx的虚拟机相互连接。Libguestfs的功能更加强大,可以打开Windows虚拟机上的文件。这意味着除了能够使用libguestfs,你还需要一些关于虚拟机操作系统内部架构的知识。但是首先你需要将虚拟机迁移到libguestfs可用的环境当中,也就是Linux环境。

为了将虚拟机迁移到Linux当中,你可以使用SSH连接到ESXi主机,这意味着你首先需要启用ESXi主机上的SSH访问方式。

完成之后,在Linux平台上运行下面的scp命令:scp–r192.168.178.30:/vmfs/volumes/datastore1/Windows*

使用guestfish操作虚拟机

完成虚拟机磁盘镜像文件的复制之后,可以在libguestfs中使用guestfish这样的工具将其打开,这样就可以直接在vmdk文件上进行操作了。使用guestfish-rw -a/path/to/windows.vmdk命令来在虚拟机中创建一个连接到文件系统的交互式shell.在新出现的窗口中,你可以使用特定的命令来操作虚拟机文件。
第一个任务就是找到可用的文件系统:
> run
> list-filesystems
/dev/sda1: ntfs
/dev/sda2: ntfs

当你使用guestfish shell找到可用文件系统类型之后,就可以进行挂载了。使用命令mount /dev/sda2 /来挂载二个分区的内容--在Linux中是/dev/sda2--到guestfish根目录下。在guestfish中,你不能像在其他shell环境中一样操作目录。挂载的分区就是根目录,你不能使用cd命令来切换目录,这意味着所有的路径必须是完全限定路径,从根目录开始。在guestfishshell当中可以使用像ls、cat、more、download这样的命令,来查看和下载文件以及目录,输入help可以看到完整的命令信息。在完整所有操作之后可以使用exit来关闭guestfishshell.

Virt-rescue提供了直接访问方式

在libguestfs工具中,还有许多其他可用的工具。virt-rescue命令--是使用正常的Linux文件系统工具来实现ad-hoc变化的最佳命令--可以在安全shell中启动虚拟机。你可以在虚拟机中操作这些文件,就像对挂载的文件系统上进行操作一样,其提供了对虚拟机内容更加直接的访问方式。

为了在虚拟机上使用virt-rescue命令进行操作,使用virt-rescure加上客户端主机名来打开virt-rescueshell,之后就进入了>模式。

如果需要在虚拟机中挂载系统文件,可以使用fdisk -l /dev/sda命令来查看虚拟机的分区情况,之后再使用命令mount/dev/sda1 /sysroot挂载你想要访问的分区。这样你就可以通过更改来修复虚拟机的内容了。

虚拟机修复之后,关闭virt-rescueshell,将虚拟机重新移动到ESXi服务器的数据存储当中。虚拟机返回原位置之后,如果之前的操作一切顺利,你就应该可以访问它了。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-41052-1-1.html 上篇帖子: 服务器虚拟化和LUN:为VMware配置存储 下篇帖子: Vmware虚拟机迁移出现503serviceunavailable错误解决办法 虚拟机 修复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表