본문 바로가기

Virtual Machine

[VMware]Error: Cannot open the disk. Module Disk power on failed. Failed to start the virtual machine.

\



 

해결책

 

VMware로 가상 머신을 실행하다가 호스트 PC에서 파워가 꺼져버리게 된다면 위와 같은 오류가 발생할 수 있다. 이때, disk 경로로 가서 *.lck 폴더를 삭제하면 문제는 해결된다.



 


원인분석

가상머신은 실제 디스크가 아닌 가상 디스크를 사용한다. 에러 메시지에 써 만약에 여러 개의 가상머신이 가상 디스크를 동시에 읽고 쓴다면 크래시 일관성(crash-consistency)[1]이 발생할 수 있다. 그래서 VMware Workstation에서 lock file[2]들을 이용하여 이 문제를 보호한다.

VMware Workstation에서 사용하는 locking 방식은 리눅스와 윈도우에서 각각 다르게 적용하기 때문에 각 운영체제에 파일을 공유하는 시스템일 경우에는 보호가 안된다. 따라서 윈도우와 리눅스에 파일을 제공하는 레파지토리일 경우에는 각 가상머신은 한번에 한 명의 사용자만 실행을 해야 한다는 것에 주의하자.

가상머신이 정상적으로 종료되면, 생성한 lock file들을 자동으로 삭제한다. 만약에 lock file들을 지우지 못한다면 그것이 남아서 가상 디스크파일을 (*.vmdk) 보호한다. 예를 들면, 가상머신이 종료되기 이전에, 호스트 PC에서 강제 종료 혹은 모종의 이유로 크래시가 난 경우 lock file이 지워지지 않고 남아있을 수 있다.

가상머신을 다시 실행했을 때 lock file이 남아 있다면. 다음 두가지 조건을 모두 만족하면 lock file이 지워진다.

1.     lock file이 가상머신을 실행한 같은 호스트에서 생성한 경우

2.     lock file을 생성한 프로세스가 실행하고 있지 않는 경우.

이러한 조건 중 하나라도 맞지 않으면 ‘Module ‘Disk’ power on failed, Failed to start virtual machine’ 대화 상자가 나타난다. 그래서 안전하다고 생각되면 수동으로 lock file들을 삭제할 수 있다.


 lock file 확장자

윈도우 호스트 : *.lck

리눅스 호스트 : *.WRITELOCK



VMware 권장사항

물리적 디스크 파티션도 lock으로 보호된다. 그러나 호스트 운영 체제는 이 잠금 규칙을 인식하지 못하므로 이를 준수하지 않는다. 이러한 이유로 VMware는 가상 시스템의 물리적 디스크를 호스트 운영 체제와 동일한 실제 디스크에 설치하지 말 것을 강력히 권장한다



reference

[1] http://pages.cs.wisc.edu/~remzi/OSTEP/file-journaling.pdf

[2] https://www.vmware.com/support/ws5/doc/ws_disks_lockfiles.html