1、问题描述

由于自己电脑出现卡顿,虚拟机非正常关机,于是电脑关机重启之后再次打开虚拟机报错如下:

对文件“G:\VMware\CentOS0918-s005.vmdk”的操作失败。
如果此文件位于远程文件系统上,请确保网络连接和磁盘所在的服务器均运行正常。如果此文件位于可移动介质中,请重新连接该介质。
选择“重试(R)”可尝试重新执行该操作。
选择“取消”可终止此会话。
选择“继续(C)”可将错误转发给客户机操作系

在这里插入图片描述
由于当时没截图,图片来源:https://blog.csdn.net/shumeigang/article/details/111942109

2、报错原因

这主要是非正常关虚拟机造成的,具体原因如下:虚拟机为了防止有多虚拟机共用一个虚拟磁盘(就是后缀为.vmdk那个文件)造成数据的丢失和性能的削弱,每次启动虚拟机时会给每个虚拟磁盘加一个磁盘锁(也就是后缀为.lck的那个文件夹)对虚拟磁盘文件进行锁定保护,在关掉虚拟机时又会自动删除那个磁盘锁文件。当虚拟机非正常关闭,就会出现一个文件夹带有缀.lck,不会自动删除,才会引起这样报错。

3、解决方法

进入目录G:\VMware\,这个目录是我VMware的安装目录,其实也就是上面报错的文件“G:\VMware\CentOS0918-s005.vmdk”所在的目录,然后把这个目录下的*.lck的文件删除,重新启动虚拟机就可以了。

在这里插入图片描述
*.vmdk是不可以轻易删除的,这是虚拟机的磁盘文件,删除了虚拟机有可能会挂掉【我本人没尝试过,艺高人胆大者可以去删一删,记得到评论席分享你的体验过程,哈哈哈哈】

4、个人产生问题以及解决问题的过程

产生以上报错的原因自然是电脑死机强制重启导致的,通过使用我上面提到的解决方法之后,虚拟机可以正常的启动了,但是我自己的虚拟机不知道为何原因,只要我不启动Linux中docker容器的mysql,就一切正常,只要我一启动mysql就还会报以上的错误,通过百度尝试了不少方式都没能解决,也没把.vmdk修复好,于是我尝试重新启动一个新的mysql容器,结果虚拟机就没有报错了。具体原因能力有限,不得而知,大概是mysql容器出现错误或者损坏了吧。接下来只需要把旧mysql的数据拷贝到新的mysql应该问题就解决了。解决本次错误花费了一整天的时间,比较痛苦,劝解大家不要轻易非正常关闭虚拟机,而且需要定期备份,虚拟机的自动保护还是有必要开启的,不然就像我一样那么痛苦了。

又经过了几个小时的排查,在我逐一转储数据库结构和数据的时候,发现sys数据库的sys_config表损坏了,我想把sys转储的,结果一运行就报错对文件“G:\VMware\CentOS0918-s005.vmdk”的操作失败,罪魁祸首已找到,不过这个mysql还是要删除的,重新使用新的mysql保险一些。

【Mysql非正常关闭导致无法启动以及如何在这情况下将数据转储出来请看我 的另一篇文章:https://blog.csdn.net/qq_47768542/article/details/115742768

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐