Як знають всі адміністратори VMware vSphere, віртуальний диск віртуальної машини представляється як мінімум у вигляді двох файлів:
- <имя ВМ>.vmdk - заголовний, він же індексний, він же файл-дескриптор віртуальго диска, який містить інформацію про геометрії диска, його тип та інші метадані
- <имя ВМ>-flat.vmdk - безпосередньо диск з даними ВМ
Практика показує, що непоодинокі випадки, коли адміністратори VMware vSphere втрачають заголовки VMDK з деяких причин, іноді незрозумілим, і залишається тільки диск з даними ВМ (не дивно, адже в нього йде запис, він залочений).
Нижче наведена коротка процедура по відновленню дескрипторного VMDK-файлу для існуючого flat-VMDK, щоб відновити працездатність віртуальної машини. Докладну інструкцію можна прочитати в KB 1002511.
Для тих, хто не любить:
1. Визначаємо точний розмір в байтах VMDK-диска з даними (щоб геометрія нового створеного дескриптора йому відповідала):
ls -l <имя диска>-flat.vmdk
2. Створюємо новий віртуальний диск (цифри - це отриманий розмір в байтах, тип thin для економії місця, lsilogic - контролер):
vmkfstools -c 4294967296 -a lsilogic -d thin temp.vmdk
3. Перейменовуємо дескрипторна VMDK-файл створеного диска в той файл, який нам потрібен для вихідного диска. Видаляємо щойно створений порожній диск даних, який вже не потрібен (temp-flat.vmdk).
4. Відкриваємо перейменований дескрипторна файл VMDK і міняємо виділені жирним рядки:
# Disk DescriptorFile
version = 1
CID = fb183c20
parentCID = ffffffff
createType = "vmfs"
# Extent description
RW 8388608 VMFS "vmdisk0-flat.vmdk"
# The Disk Data Base
#DDB
ddb.virtualHWVersion = "4"
ddb.geometry.cylinders = "522"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.adapterType = "lsilogic"
ddb.thinProvisioned = "1"
Тобто, міняємо просто ім'я flat VMDK-файлу і прибираємо рядок про те, що диск thin provisioned, якщо він у вас спочатку був flat.
Все - машину можна запускати.