Конвертация raw в vmdk с доп условиями

Понадобилось увеличить диск на одной из виртуалок с CentOS "на лету", без переустановки/копирования имеющейся системы.
Иду в свойства диска в vSphere Client'е и вижу, что тип диска - IDE, и размер диска серенький. Не дает esxi менять размер IDE-дисков.
Значит надо его превратить в SCSI. Возможно, достаточно было отредактировать .vmdk текстовый заголовочный файл, но я пошел "издалека", чтобы иметь на будущее опыт полного конверта.
qemu-img convert -O vmdk -o adapter_type=lsilogic old-disk-flat.vmdk new-disk.vmdk
Диск конвертится, текстовый заголовок пишется прямо в начало нового бинарного vmdk.
Цепляю его к свежесозданной виртуалке, и... при "Power On" получаю "Unsupported or invalid disk type 7", "стартовать не буду, идите на хрен".
Гугль дает ссылку на Knowledge Base вмвари, делаю как там написано:
/vmfs/volumes/0d5f3365-5366eb67/my-virtual-disk # vmkfstools -v 1 -i my-virtual-disk.vmdk my-virtual-disk-1.vmdk
DISKLIB-VMFS  : "./my-virtual-disk.vmdk" : open successful (14) size = 85030141952, hd = 378202870. Type 8
DISKLIB-DSCPTR: Opened [0]: "my-virtual-disk.vmdk" (0xe)
DISKLIB-LINK  : Opened 'my-virtual-disk.vmdk' (0xe): monolithicSparse, 167936000 sectors / 80.1 GB.
DISKLIB-CHAINESX : ChainESXOpenSubChain: numLinks = 1, numSubChains = 1
DISKLIB-CHAINESX : ChainESXOpenSubChain:(0) fid = 378202870, extentType = 0
DISKLIB-LIB   : Opened "my-virtual-disk.vmdk" (flags 0xe, type monolithicSparse).
Destination disk format: Thin
Cloning disk 'my-virtual-disk.vmdk'...
DISKLIB-LIB   : CREATE: "my-virtual-disk-1.vmdk" -- vmfs capacity=0 (0 bytes) adapter=lsilogic info=cowGran=0 allocType=1 objType=file policy=''
DISKLIB-LIB   : Failed to clone disk using Object Cloning
DISKLIB-LIB   : CREATE: "my-virtual-disk-1.vmdk" -- vmfs capacity=167936000 (80.1 GB) adapter=lsilogic info=cowGran=1 allocType=1 objType=file policy=''
DISKLIB-LIB   : CREATE: Creating disk backed by 'default'
Clone: 10% done.DISKLIB-DSCPTR: "my-virtual-disk-1.vmdk" : creation successful.
DISKLIB-VMFS  : "./my-virtual-disk-1-flat.vmdk" : open successful (17) size = 98304, hd = 0. Type 3
DISKLIB-VMFS  : "./my-virtual-disk-1-flat.vmdk" : closed.
DISKLIB-VMFS  : "./my-virtual-disk-1-flat.vmdk" : open successful (131608) size = 85983232000, hd = 375646971. Type 3
DISKLIB-DSCPTR: Opened [0]: "my-virtual-disk-1-flat.vmdk" (0x20218)
DISKLIB-LINK  : Opened 'my-virtual-disk-1.vmdk' (0x20218): vmfs, 167936000 sectors / 80.1 GB.
DISKLIB-LIB   : Opened "my-virtual-disk-1.vmdk" (flags 0x20218, type vmfs).
DISKLIB-LIB   : Failed to create native clone on destination handle : One of the parameters supplied is invalid (1).
Clone: 100% done.DISKLIB-VMFS  : "./my-virtual-disk-1-flat.vmdk" : closed.
DISKLIB-VMFS  : "./my-virtual-disk.vmdk" : closed.

AIOMGR-S : stat o=7 r=185 w=0 i=3 br=10731008 bw=0
AIOMGR-U : stat o=2 r=1 w=0 i=2567 br=2048 bw=0
OBJLIB-LIB: ObjLib cleanup done.
Подключаю очередной созданный образ к виртуалке, включаю, и таки загружается без вопросов.
Окошко размера диска теперь активное, можно там что-то написать. Пишу нужный размер, ресайзится за несколько секунд.
Захожу в саму виртуалку, пишу
resize2fs /dev/sdb
Размер раздела автоматически увеличивается до максимально возможного.


22.08.2017

на главную