类别:虚拟机 / 日期:2021-02-23 / 浏览:1003 / 评论:0
自己的 HomeLab 在做虚拟机迁移,是直接通过 SCP 将虚拟机文件直接 Copy 到新服务器的。迁移之后,在新机器上启动虚拟机,提示无法打开虚拟机磁盘。马上 SSH 到服务器,查看虚拟机磁盘文件,只剩下了 -flat.vmdk 文件,回到 WebUI 上看文件是 File 格式的,并非虚拟机磁盘文件。确认 -flat.vmdk 文件所依赖的 vmdk 丢失。
故障描述
解决虚拟机磁盘文件 vmdk 丢失,只剩下 -flat.vmdk 文件的情况。通过 -flat.vmdk 恢复 vmdk 文件。
处理过程
提示
以下操作有一定的危险性,建议做好备份后再进行操作。不要直接对生产环境执行操作。
1.使用 SSH 登录到 ESXI 服务器。查找到 -flat.vmdk 文件所在位置。如图 SeafileServer-data1-flat.vmdk
即为目标-flat.vmdk 文件。
2.创建一个新的 vmdk 文件,大小和 -flat.vmdk 文件保持一致。命令为 vmkfstools -c 磁盘文件大小 -a lsilogic 磁盘名称
根据上图的-flat.vmdk 文件大小,这里我应该执行如下的命令。
1 | vmkfstools -c 3298534883328 -a lsilogic SeafileServer_data.vmdk |
如下图创建完毕,重新查看虚拟机磁盘文件可以看到新建的 vmdk 和 -flat.vmdk 文件了。
3.偷梁换柱。将原来有数据的 -flat.vmdk 替换新建虚拟机磁盘文件的 -flat.vmdk 文件。(注意一定要使用 mv,且替换的应该是 -flat.vmdk 文件。)
1 | mv SeafileServer-data1-flat.vmdk SeafileServer_data-flat.vmdk |