Instalace OS na virtuální disk

Aktualizace tématu článku (z dubna 2024) je v článku Instalace Win11 na VHDx. Řeší instalaci modernějších OS (Win10 a 11) na VHD.

Protože jsem potřeboval na notebooku spustit program, který nepracuje správně pod Windows 10, rozhodl jsem se na něj dostat paralelní instalaci Windows 7. Abych nemusel přeuspořádávat disk, rozhodl jsem se pro instalaci na virtuální disk (VHD). To jsem ale netušil co mě čeká. Při snaze o instalaci z USB disku instalátor skončil hlášením, abych nainstaloval ovladače CD-ROM. Jedná se zřejmě o něco v souvislosti s tím, že notebook má USB řadič, který instalátor nepodporuje (více lze najít tady). Mimo jiné díky tomu taky nefungovala v instalátoru myš. Tento zádrhel jsem se rozhodl neřešit, protože řešení by asi nebylo snadné, ale při prohledávání internetu jsem narazil na možnost instalace spouštěcího instalačního obrazu přímo na VHD.

Po několika peripetiích (především s ovladači a záplatami) se mi systém na VHD podařilo zprovoznit a tak jsem se odhodlal vytvořit další instalace do VHDX, tentokrát to už ale byla Windows 10. Nový systém je na tuto možnost o dost lépe připraven.

Původní návod "Jak na VHD boot"

Jak jsem postupoval já

Nejdřív upozornění na to, že instalaci na VHD sedmičky umožňují jen ve verzi ULTIMATE (s Home a Pro máme smůlu). Předpokladem je také mít na PC nainstalován nástroj ImageX, který je součástí balíku Windows Assessment and Deployment Kit (Windows ADK).

  1. Vytvořil jsem ve správci disků VHD virtuální disk 50GB s pevnou velikostí, ten jsem inicioval, vytvořil na něm oddíl, ten naformátoval a přiřadil mu písmeno (H:).
  2. Přepnul jsem se v příkazové řádce do adresáře s ImageX utilitkou a zadal příkaz:
    imagex /apply x:\sources\install.wim 1 y:\ (příkaz pracuje s WIM i ESD, x je písmeno jednotky s instalačkou)
  3. Poté, co se WIM na VHD úspěšně rozbalí, je třeba VHD přidat jako možnost do zavaděče příkazem:
    bcdboot y:\windows
  4. Pak už je možné provést restart, v nabídce zavaděče vybrat správnou volbu pro boot z VHD a instalaci systému dokončit.

Obvyklé umístění utility ImageX je: C:\Program Files (x86)\Windows Kits\10\Tools\bin\i386

Vzhledem k tomu, že se jedná o poměrně "mladý" notebook (ASUS X540LA), jsou oficiálně k dispozici drivery jen pro Windows 10 64bit. Nepodařilo se mi tedy rozchodit touchpad, který není plug and play. Touchpad je totiž připojen na I2C a ovladače pro Win7 nejsou k mání. Navíc aby byla funční alespoň externí myš, bylo nutné v BIOSu vypnout volbu xHCI u USB, jinak nebylo možné nainstalovat ovladače pro USB. Vypnutí xHCI by možná řešilo i v úvodu popsanou nepřítomnost myši v instalátoru Win7.

Při dalších pokusech s VHD jsem vyzkoušel vytvoření disků s Windows 10 (Pro i Home). U těch je výhodou, že je možné takto nainstalovat i verzi Home. Pro desítky je asi lepší využít virtuální disk ve formátu VHDX s dynamicky přidělovanou kapacitou (já jsem jako maximální velikost opět nastavil 50GB). Záloha takového systému je pak časově i prostorově méně náročná, VHDX by měl lépe snášet "výpadky napájení" (vynucené ukončení OS). Problémem by pak ale mohl být případně docházející prostor na mateřském disku. Při provozování takovéto instalace je tedy třeba počítat s dostatečnou rezervou kapacity na mateřském HDD, popř. VHD vytvořit na samostatné partition s dostatečnou rezervou kapacity.

Příkazy pro vytvoření VHD(X) z příkazové řádky

V instalátoru Windows je možné příkazovou řádku spustit stisknutím kombinace kláves "Shift+F10".

Spuštění nástroje DISKPART:
diskpart
Vytvoření VHD/VHDX:
create vdisk file=c:\windows7.vhd maximum=51200 type=fixed
create vdisk file=c:\windows10.vhdx maximum=51200 type=expandable
Výběr VHD pro další činnosti v DISKPART:
select vdisk file=c:\windows7.vhd
Připojení disku k souborovému systému PC:
attach vdisk
Vytvoření primární partition na VHD:
create partition primary
Naformátování VHD:
format fs=ntfs label=“Windows7″ quick
Opuštění nástroje DISKPART a příkazové řádky:
exit
exit
 
Zvětšení disku je možné provést příkazem EXPAND v rámci nástroje DISKPART, po vybrání příslušného disku příkazem SELECT VDISK. Pak ještě bude třeba provést zvětšení partition ve správci disků.
expand vdisk maximum=102400
Konverze disku VHD na VHDX je možná pomocí Hyper-V nebo příkazem z PowerShell:
Convert-VHD -Path ‘E:\Virtual Hard Disk-1.vhd‘ -DestinationPath E:\Virtual-HD.vhdx
Konverze fixního disku na dynamický - opět PowerShell:
Convert-VHD –Path c:\my-vhdx.vhdx –DestinationPath c:\new-vhdx.vhdx –VHDType Dynamic
 

Odstranění OS instalovaného na VHD

Pokud se potřebujeme OS nainstalovaného na VHD(x) zbavit nebo jej pouze odpojit, je možné tak učinit např. pomocí záložky "Spuštění počítače" v okně "Konfigurace systému" (msconfig).

Související problémy, nekompatibilita etc

Hyper-V a VMware: pro konverze VHD je třeba nainstalovat Hyper-V, aby příkazy v PowerShellu byly funkční. Bohužel, pokud je na stejném PC nainstalován virtualizační nástroj od VMware, nebude možné z něj po nainstalování Hyper-V virtuální stroje spouštět. Řešením tedy je Hyper-V nainstalovat, provést potřebné konverze a opět jej odinstalovat, nebo Hyper-V nainstalovat do virtuálního stroje, vyhrazeného pro konverze. Toto je celkem mrzuté, nejlepší je tedy provádět konverze na PC, kde bude nainstalován pouze Hyper-V.
Nástroj Hyper-V je dostupný jen ve verzi Pro (Win10).

Windows 7: pro instalaci na VHD je možné použít pouze verzi Ultimate nebo Enterprise. Nicméně vytvoření a spuštění tohoto systému je možné i z verze Home. VHDX není podporováno.

Windows 8 a 8.1: na VHD(X) je možné instalovat Pro verzi, Home zatím neověřeno.

Windows 10: pro instalaci na VHD(X) je možné použít verzi Home i Pro.

Odkazy na související weby

Web s ovladači k různým PC (drivery jsou obsaženy ve spustitelných EXE souborech, doufám, že obslužný program neobsahuje malware, nebo jiné breberky):

https://drp.su/en/laptops/asus/x540la?os=windows-8.1-x64

Potíže při instalaci (UEFI/GPT)

Po několika úspěšných instalacích OS na VHD a VHDX se mi stala nepříjemná věc. Chtěl jsem na notebook dostat ještě instalaci Win10 v 32b verzi (1709). Po předchozích zkušenostech jsem neočekával žádné potíže, a tak jsem instalaci na VHDX provedl standardním způsobem. Problém nastal, jakmile jsem zadal poslední příkaz (bcdboot g:\windows). Jeho provedení trvalo poněkud déle, ale hlavně, po restartu nebylo možné OS bootovat - nedošlo ke spuštění nabídky zavaděče. Selhaly i pokusy o opravu zavaděče z instalačního disku a příkazové řádky.

Abych se dopátral příčiny, zkopíroval jsem ISO na jiné PC a z tohoto ISO vytvořil instalační flešku. Z této flešky ale nebylo možné na notebooku instalaci spustit. Vyvodil jsem z toho tedy (nesprávně), že ISO obsahovalo nějak poškozené soubory zavaděče a příkazem "bcdboot" jsem toto poškození zkopíroval i do zavaděče na notebooku.

Abych na notebooku opravil zavaděč, provedl jsem instalaci čistého 64b OS do VHDX (tady nebude rozhodující, jestli do již existujícího, nebo do vytvoříeného při instalaci), při prvním restartu během instalace je pak již dostupný i původní OS na fyzickém disku.

Určitě existuje i způsob, jak zavaděč opravit jednodušeji, mně se to ale bohužel nepodařilo a byl jsem vděčný alespoň za tuto možnost. Zkusil jsem ještě na notebooku spustit instalaci OS Win8 32bit z originální instalačky a také to nebylo možné. Zřejmě tedy notebook (ASUS X540L) 32b systémy nepodporuje. Funkci ISO jsem pak ještě zkusil ve VMware playeru a tam fungoval, takže předpoklad vadného ISO souboru byl nesprávný. Dalším pátráním po příčině problému jsem zjistil, že problém je v omezeních UEFI/GPT (více zde). Povolení CSM v BIOS/UEFI pak umožnilo bootování z instalačky Win8. Je tedy možné, že nakonec zavaděč nebyl poškozený, ale byl pouze přepsán na 32b verzi, kterou notebook se zakázaným CSM odmítl spustit.

Související odkazy:
https://www.servispckupka.cz/jak-opravit-bootloader-mbr-gpt-windows.php
https://technet.microsoft.com/cs-cz/library/dd744347(v=ws.10).aspx
https://support.microsoft.com/cs-cz/help/814070/how-to-establish-and-boot-to-gpt-mirrors-on-64-bit-windows
https://www.cnews.cz/easybcd-lek-na-problemy-s-bootovanim-windows/