VMware Workstation: блокировка файлов виртуальной машины
После аварийной перезагрузки компьютера с гипервизором VMware Workstations перестала запускаться часть виртуальных машин с ошибкой блокировки файлов ВМ:
The process cannot access the file because another process has locked a portion of the file Cannot open the disk 'D:VMtestVM1testVM1.vmdk' or one of the snapshot disks it depends on.
Ошибка указывает что файлы дисков виртуальной машины (или снапшоты) заблокированы другим процессом. При этом с помощью стандартных средств Windows не удается найти процесс, который заблокировал файл.
Причина проблемы в этом случае в архитектуре блокировок файлов от изменений в VMware Workstation. При запуске виртуальной машины, гипервизор должен заблокировать файлы дисков, чтобы предотвратить к ним одновременный доступ и обеспечить целостность данных. Для всех файлов, которые заблокированы гипервизором в данный момент в текущем каталоге создается новая папка с именем файла и суффиксом .lck. В этом каталоге будут хранится lck файлы устройств. Наличие lck файлов указывает процессам VMware, что данный файл используется.
При выключении ВМ, эта блокировка снимается и каталоги .lck удаляются. Однако, если хост с гипервизором VMware перезагрузился нештатно, файлы ВМ останутся заблокированными. При при следующей попытке запуска ВМ, гипервизор будет считать, что файлы ВМ используются другим процессом.
Решение – удалить каталоги
.lck
из папки виртуальной машины.
Список заблокированных файлов ВМ можно получить с помощью PowerShell:
Get-ChildItem D:VMtestVM1 -Recurse -Include *.lck|select directory,name
В данном примере видно, что заблокированы файл конфигурации ВМ (
vmx
), файл виртуального диска (
vmdk
), и резервная копия файла подкачки ВМ (
vmem
).
Чтобы снять блокировку, удалите все lck файлы виртуальной машины. После этого ВМ должна запуститься успешно.
Если к ВМ подключено несколько виртуальных дисков, они могут находится в каталоге, который отличается от каталога ВМ. Удалите lck файлы для всех дисков.
Qiziqarli malumotlar
VMware Workstation: блокировка файлов виртуальной машины