Jak již jsem psal, na notebooku používám pro virtualizaci Sunovský VirtualBox a to hlavně kvůli jeho nativní podpoře konkurenčních formátů. Dnes jsem řešil s Dell/EMC podporou problém na FC SAN, nakonec jsme skončili u WebEx session. Low-level nástroje, které specialisté používají, jsou často nekompatibilní s Windows Vista, o W7 ani nemluvě. Takže jsem si vyrobil virtuální mašinu s WXP Fundamentals for Legacy PCs, nainstaloval do něj všechny potřebné nástroje. Konzultant byl spokojený, protože viděl přesně to, co měl, nezdržoval ho žádný balast okolo a já jsem si naopak po celou dobu mohl spokojeně na notebooku pracovat a jen tak po očku sledovat v okně virtuálu, na čem zrovna konzultant pracuje. Po skončení prací jsem však zjistil, že původně cca 3GB VHD soubor narostl na 5,6 GB. Pokud mám tento virtuál udržovat na notebooku, tak je samozřejmě žádoucí zdrcnout VHD na co nejmenší velikost. VirtualBox přes CLI příkaz umí nativně shrinknout pouze svůj vlastní VDI formát. Jak ale naložit s VHD?
Rovnou napíšu, že jsem si měl přečíst dokumentaci, ušetřil bych si krapet času. Věren pravidla, že manuály se přeci čtou, až když všechny pokusy selžou, jsem se pustil do bádání. VirtualBox podporuje VHD a všude se píše, že nativně. Tak co vzít tento VHD soubor a shrinknout ho ve Windows Virtual PC, ze kterého VHD původně pochází? Shrink ve Virtual PC se obecně skládá ze tří kroků:
- defragmentace virtuálního OS
- příprava před vlastním shrinkem (precompact.iso)
- shrink pomocí nástroje ve Virtual PC
Defragmentaci virtuálního OS jsem provedl ve VirtualBoxu a to pomocí MyDefrag. Druhý krok se mi nechtělo provádět ve Virtual PC, ve kterém by zlobily nainstalované VirtualBox utility, takže jsem ve spuštěném virtuálním OS pro VirtualBoxem normálně přimontoval precompact.iso z adresáře c:\Program Files (x86)\Windows Virtual PC\Integration Components\.
Po doběhnutí jsem zavřel VirtualBox, spustil Virtual PC, v němž jsem ještě měl konfigurační soubor virtuálu s VHD souborem, který již nyní používám ve VirtualBoxu, zvolil v plovoucím menu Settings, Hard Disk 1 a následně tlačítko Modify… Zde jsem zvolil tlačítko Compact. Výsledkem byl soubor zmenšený z 5,6 GB na 2,8 GB. Soubor jde bez problémů použít ve VirtualBoxu.
Co když bych ale již Windows PC nainstalované neměl? Zde již přišel ke slovu UserManual.pdf k VirtualBoxu. U popisu CLI funkce “VBoxManage modifyhd” je zmíněno použití příkazu “sdelete –c”. Hledám, co to je a ona je to utilita ze Sysinternals. Takže krok 2 lze ve VirtualBoxu provést buď výše popsaným precompact.iso nebo spuštěním příkazu:
sdelete –c c:
VirtualBox sice neumí shrink VHD souboru, ale podporuje klonování z/do formátu VDI, VMDK, VHD, případně i RAW. Odzkoušel jsem, že s obdobným výsledkem jako shrink ve Virtual PC skončí tento příkaz:
cd “C:\Program Files\Sun\VirtualBox\”
VBoxManage.exe clonehd c:\vmdata\vstupni.vhd c:\vmdata\vystupni.vhd –format VHD –type normal
Je pouze potřeba počítat s dostatečným místem na disku, neboť původní soubor zůstane zachován. Převod mezi jednotlivými typy virtuálních souborových systémů je docela parádní. S trochou snahy je tak možné převádět virtuální disky mezi jednotlivými virtualizačními nástroji.