Исправление ошибки Cannot open the disk or… VMware ESX cannot find the virtual disk… в VMware vSphere.

Недавно была такая проблема – виртуальная машина на VMware, отказывалась запускаться и выдавалась ошибка как на этом скриншоте (скриншот не мой – свою ошибку я не заскриншотил ибо надо было быстро всё восстанавливать):

Из данной ошибки видно, что ESX не может найти виртуальный диск <vm_name>.vmdk и соответственно виртуальная машина не запускается. <vm_name> – имя искомой вирт. машины. Поковырявшись в браузере датастора, я обнаружил, что есть файл <vm_name>-flat.vmdk, на котором – слава японским богам – судя по размеру были все данные. Поковырявшись в гугле, я обнаружил, что <vm_name>.vmdk – это конфиг, а <vm_name>-flat.vmdk – это собственно сам файл с данными. Приступим к восстановлению этого пропавшего конфига:
1) При помощи консоли (ssh или putty) заходим по ssh на ESX хост:
ssh root@<hostname_IP>

2) Переходим в папку, в которой находятся файлы нашей виртуальной машины:

cd /vmfs/volumes/<your_volume>/<VM_directory>

3) Теперь нам необходимо узнать точный размер flat диска:

ls -l <vm_name>-flat.vmdk 

-rw——- 1 root root 36106127360 Nov 21 21:07 <vm_name>.vmdk

Запоминаем размер (в примере – 36106127360)!

4) Далее при помощи команды vmkfstools нужно создать новый (временный) vmdk файл с именем, например, temp.vmdk и точным размером файла flat (то что мы узнали в предыдущем пункте), тип диска выберем thin (тонкий – то есть растущий по мере наполнения его данными) и адаптером lsilogic.

vmkfstools -c 36106127360 -d thin -a lsilogic temp.vmdk

5) У вас должно получиться два файла – temp.vmdk и temp-flat.vmdk. Последний файл нам не нужен, удалим его:

rm temp-flat.vmdk

6) Теперь переименуем temp.vmdk в нужное нам название, то есть в <vm_name>.vmdk:

mv temp.vmdk <vm_name>.vmdk

7) Vmdk файл – это конфигурационный файл диска, соответственно нам необходимо его отредактировать. При помощи редактора VI открываем файл:

vi <vm_name>.vmdk

Находим в нем строчку:

RW 31457280 VMFS «temp-flat.vmdk»

Соответственно изменяем «temp-flat.vmdk» на «<vm_name>.vmdk». Сохраняемся и выходим из редактора ([Esc], :wq).

Все, возносим хвалу японским богам и успешно запускаем нашу виртуальную машину 🙂

http://geckich.blogspot.com/

Leave a Reply

Your email address will not be published. Required fields are marked *