Native Boot Windows 10 VHDX
Saat hajatan diskon Tokopedia di penghujung bulan Ramadhan kemarin, saya membeli sebuah externel HDD 4 TB. Sebagian alasan karena memang membutuhkan sarana pemyimpanan yang lebih lega, sebagian karena tergiur iming-iming diskon serta cashback dan sebagian lagi karena impulse alias termakan iklan.
Selanjutnya, semua berkas yang jarang diakses dari SSD dan HDD di caddy dipindahkan ke HDD luar tersebut. Dan akhirnya SSD dan HDD caddy pun mulai terasa lega kembali.
But, unused space is wasted space.
Akhirnya, guna memanfaatkan ruang kosongnya, SSD ini akan dibentuk menjadi dua bagian untuk dual boot Linux dan Windows.
Dual boot bukanlah hal yang aneh, dan sejujurnya tidak menyenangkan. Namun kini saya bukan akan menjajal dual boot dengan cara memasang Windows secara umumnya memasang Windows, melainkan dengan memasang Windows ke dalam berkas VHDX dan kemudian boot langsung ke dalamnya.
VHD dan VHDX adalah format virtual hard disk ciptaan Microsoft. Yang menarik dari VHD(X) adalah kemampuannya untuk di-boot secara langsung oleh bootloader (native boot) dan fitur differencing yang membuat ia berlaku layaknya virtual machine.
Menggunakan fitur native boot, kita seakan memiliki banyak HDD untuk memasang banyak versi Windows. Walau tentu saja tidak untuk semua generasi Windows.
Yang lebih menarik adalah fitur differencing. Pernah menggunakan fitur snapshot di VirtualBox atau virtual machine lainnya? Nah, seperti itulah differencing VHD(X) ini. Jadi jika ada galat dalam sistem Windows, kita tidak harus memasang ulang Windows-nya, melainkan cukup kembali boot ke berkas VHD(X) dasar.
Mungkin, atau pastinya, memasang Windows ke VHD ini akan terkena penalti dalam hal kinerja dibanding memasang Windows secara langsung ke diska, namun dengan kedua keunggulan di atas nampaknya masih layak dicoba. Terlebih, saya akan memasang VHD ini ke dalam SSD. Sepertinya kegegasan SSD akan menutupi overhead dari VHD(X).
Cukuplah pendahuluannya, mari kita lanjutkan ke teknis pemasangan Windows 10 64 bit LTSB ke VHDX agar bisa di-boot secara langsung dari SSD.
Langkah paling awal tentunya membagi SSD untuk menyediakan ruang bagi masing-masing sistem operasi yang akan multibooted. Jangan lupa berikan flag
boot
(di Windows disebut active) ke partisi Windows. Jika menggunakangparted
, cukupklik kanan partisinya ➜ Manage Flags ➜ centang pilihan boot
.Berikutnya, siapkan berkas ISO Windows. Uraikan (extract) di partisi berformat NTFS yang mudah dijangkau. Bermodal Windows ISO tersebut, jangan lupa untuk membuat bootable Windows berupa keping cakram atau USB flash disk. Bootable Windows-nya bisa berupa installer, Windows PE atau lainnya asal bisa membuat kita menjalankan
Command Prompt
.Reboot ke bootable Windows yang telah dibuat kemudian buka jendela
Command Prompt
. Caranya beragam, tergantung bootable Windows yang digunakan. Misal jika menggunakan installer biasa, ketika muncul jendelaWindows Setup
, tekan tombolSHIFT
+F10
secara berbarengan.Jalankan
diskpart
.diskpart
Ketahui seluruh partisi yang dikenali Windows.
list volume
DISKPART> list volume Volume ### Ltr Label Fs Type Size Status Info ---------- --- ----------- ----- ---------- ------- --------- -------- Volume 0 E CES_X64FREV UDF CD-ROM 3412 MB Healthy Volume 1 D CD-ROM 0 B No Media Volume 2 C Windows NTFS Partition 120 GB Healthy System
Misal partisi yang akan kita gunakan untuk boot dan menyimpan berkas VHD(X) adalah
Volume 2
yang ber-drive letter C.Buat berkas VHDX berukuran 25 GB dan berjenis tetap.
create vdisk file=C:\windows_10_x64_base.vhdx maximum=25600 type=fixed
Pilih berkas VHDX yang baru saja dibuat untuk kemudian dikaitkan.
select vdisk file=C:\windows_10_x64_base.vhdx attach vdisk
Misal VHDX dikaitkan ke drive letter K.
Kemudian kita buat partisi dalam VHDX.
create partition primary active
Dan kita format.
format fs=ntfs quick label='Windows 10 x64' assign letter=C exit
Jika tidak bisa
assign letter
karena drive letter telah terpakai, abaikan saja. Nanti Windows akan otomatis mengalokasikan huruf yang kosong.Ketahui ada berapa edisi Windows yang terdapapat dalam installer.
Misal hasil uraian ISO Windows pada langkah kedua tadi kita simpan diC:\winten
.Dism /Get-WimInfo /WimFile:C:\winten\sources\install.wim
Deployment Image Servicing and Management tool Version: 10.0.14393.0 Details for image : C:\winten\sources\install.wim Index : 1 Name : Windows 10 Enterprise 2016 LTSB Description : Windows 10 Enterprise 2016 LTSB Size : 12.120.640.762 bytes The operation completed successfully.
Dari contoh hasil di atas, diketahui bahwa berkas ISO yang dipakai hanya memiliki satu edisi Windows, yakni Windows 10 Enterprise 2016 LTSB pada indeks 1.
Install Windows dengan cara menerapkan isi citra berkas
install.wim
menggunakan bantuanDism
.\Dism /Apply-Image /ImageFile:C:\winten\sources\install.wim /Index:1 /Compact /ApplyDir:K:\
Di sini kita memasang Windows 10 dengan fitur CompactOS agar ukuran sistem Windows-nya menjadi lebih ringkas. Secara default,
Dism
hanya akan memampatkan menggunakan kompresor XPRESS4K. Kompresi yang lebih tinggi bisa dicapai menggunakan kompresor LZX. Kita bisa menerapkan kompresi LZX menggunakan bantuan perkakascompact.exe
dalam sistem Windows 10.Setelah citra berkas
install.wim
semuanya diterapkan ke partisiK:
di VHDX, saatnya untuk memasang bootloader.Pindah ke partisi VHDX.
cd K:\Windows\System32
Pasang PBR (partition boot record) di partisi ini. Saya tidak memasang boot record ke MBR karena berniat untuk chain loading bootloader Windows oleh GRUB2.
bootsec /nt60 K:\ /force
Salin dan mutakhirkan BCD (Boot Configuration Data).
bcdboot K:\Windows /s C:\
Saatnya reboot dan kembali boot ke sistem Linux untuk memutakhirkan GRUB agar bisa chain loading boot manager Windows.
Mengapa memilih GRUB sebagai bootloader utama? Pertama, karena bootloader Windows tidak mengenali bootloader sistem operasi lain, dan kedua, saya lebih percaya kehandalan GRUB.Agar GRUB bisa mencari bootloader OS lain di partisi lain, pastikan paket
os-prober
telah terpasang. Selanjutnya, mutakhirkan GRUB.sudo update-grub
Kini mestinya partisi Windows tempat VHDX berada telah dikenali GRUB. Reboot komputer dan boot ke VHDX Windows untuk melanjutkan tahap pemasangan.
Selesai pemasangan Windows, lanjutkan ke pemasangan program-program dan lakukan pengaturan penyetelannya.
Jika dirasa telah sempurna, kita lanjutkan ke tahap differencing berikut.
Ulangi langkah 3, 4 dan 5 di atas.
Buat berkas VHDX untuk menyimpan data selisih (differences).
create vdisk file=C:\windows_10_x64_diff.vhdx parent=C:\windows_10_x64_base.vhdx
Seperti yang tampak di atas, membuat citra VHDX differencing tidak perlu menyatakan ukurannya. Karena ukurannya akan mengikuti ukuran berkas
parent
.\Pilih dan kaitkan berkas VHDX baru ini.
select vdisk file=C:\windows_10_x64_diff.vhdx attach vdisk
Misal, VHDX dikaitkan di Z. Mutakhirkan BCD agar awas terhadap VHDX anyar.
cd Z:\Windows\System32 bcdboot Z:\Windows /s C:\
Nah, selesai sudah.
Kini Windows secara default akan boot kewindows_10_x64_diff.vhdx
dan tiap perubahan dalam sistem Windows akan disimpan ke berkaswindows_10_x64_diff.vhdx
tersebut. Dan sekiranya sistem Windows mengalami galat kita cukup membuat berkas VHDX diff yang anyar. Mirip-mirip dengan snapshot di VirtualBox lah….
Tutorial di atas hanyal setitik puncak dari sebuah gunung es di lautan. Masih banyak cara untuk menjadikan native boot VHD ini lebih mengesankan, misal dengan multiple boot Windows 7, 8 dan 10. Atau menggunakan bootloader pihak ke tiga seperti grub4dos dan easyBCD agar bisa boot Windows XP, berkas ISO atau bahkan distro-distro linux.
Sejujurnya, teknologi native boot VHD ini lumayan mengesankan, andai saja dunia Linux memiliki teknologi yang sepadan.