Перейти к основному содержанию

VMware — удалить LCK файл

VMware

Файлы .lck создаются гипервизором (обычно VirtualBox или VMware) для предотвращения одновременного доступа к виртуальной машине из нескольких мест. При аварийном завершении они не удаляются автоматически.

К примеру, вы мигрировали виртуальную машину, а операция была неожиданно прервана. На хосте-получателе при этом создалась папка для виртуальной машины, часть данных скопировалась, при этом в папке имеется блокирующий LCK файл. Теперь эта папка превратилась в недвижимость, удалить её нельзя, файлы в ней тоже не удаляются, файл с расширением .lck тоже не удаляется.

Нам нужно удалить файл с расширением LCK. После этого можно будет удалить всю лишнюю папку с ненужными файлами.

Как удалить файл .lck?

Сделаем это из консоли. Запускаем на гипервизоре службу SSH, коннектимся к консоли.

Переходим в директорию с виртуальной машиной, например:

cd /vmfs/volumes/имя_хранилища/имя_машины/
ll

Находим внутри наш LCK файл, к примеру, это vm1.vmx.lck. Попробуем его удалить:

rm vm1.vmx.lck

# подтверждаем удаление
# rm: remove 'vm1.vmx.lck'? y

Он удалится, или мы получим ошибку:

can't remove 'vm1.vmx.lck': Device or resource busy

Проблема в том, что файл .lck всё ещё заблокирован процессом ESXi. Это типичная ситуация после аварийного завершения миграции или сбоя VM.

Узнаем какой процесс использует этот файл:

lsof | grep vm1.vmx.lck

Если lsof отсутствует:

ls -la /proc/*/fd/* 2>/dev/null | grep vm1

Видим ID процесса, убиваем:

kill -9 ID_процесса

Теперь удалится:

rm vm1.vmx.lck

После удаления .lck файла можно почистить ненужные директории через UI.

Теги

 

Похожие материалы

Установка и настройка vSphere Replication 8.2.0

vSphere Replication 8.2.0 позволяет создавать резервные копии виртуальных машин в vCenter. В случае сбоя системный администратор может запустить реплицированную копию виртуалки. Копия отстаёт по времени от основной машины, это отставание можно регулировать в настройках от 5 минут до 24 часов. Установим и настроим.