问题描述:
使用VMware时遇到错误:“未能锁定文件 无法打开磁盘 ..\*.vmdk 或者某一个快照所依赖的磁盘。”
问题出现的原因:
虚拟磁盘(.vmdk)本身有一个磁盘保护机制,为了防止多台虚拟机同时访问同一个虚拟磁盘(.vmdk)带来的数据丢失和性能削减方面的隐患,每次启动虚拟机的时候虚拟机会使用扩展名为.lck(磁盘锁)文件对虚拟磁盘(.vmdk)进行锁定保护。当虚拟机关闭时.lck(磁盘锁)文件自动删除。但是可能由于您非正常关闭虚拟机,这时虚拟机还没来得及删除您系统上的.lck(磁盘锁)文件,所以当下次您启动虚拟机的时候出现了上述错误。
解决方案:
1、删除虚拟机配置文件和虚拟磁盘文件夹的所有以.lck结尾的文件以及文件夹。
2、但是很多人发现虚拟机目录下并没有*.lck结尾的文件但虚拟机磁盘依然打不开,这是怎么回事呢?
答案其实很简单,这就和你的文件系统的删除文件机制有关系(不详细说明),虽然在表面上看不见(显示系统文件也如此),但是*.lck却在你的主控文件表(MFT)中,其实对应的文件早已删除,只是由于因磁盘文件系统故障,MFT中的对应关联还在,所以你只要对你的虚拟磁盘所在的磁盘分区进行磁盘检查(chkdsk ?:/f),过程中你会发现一些提示"CHKDSK发现主控文件表(MFT)位图中有标记为已分配的可用空间,正在更正文件系统错误..."有的磁盘则提示"正在校验索引页...,发现*个未被索引的文件..."这就是那个*.lck及其他的虚拟机文件在关闭虚拟机后未被正确删除(索引残留)的缘故,当磁盘检查完成后,你会发现虚拟机磁盘的错误提示没有了。