Bukan. Artikel ini bukan akan mengupas bagaimana membuat installer Windows melalui GNU/Linux. Melainkan akan menerangkan bagaimana memasang Windows 7 (juga 8, 8.1 dan 10) langsung dari dalam lingkungan sistem operasi GNU/Linux, khususnya Debian Sid.

Sebenarnya telah lama saya menggunakan cara ini. Pernah membuat thread-nya di Kaskus, juga artikel di beberapa blog lama (yang kini lumayan saya abaikan). Sekarang saya akan menulis ulang artikel-artikel tersebut disini, karena kebetulan belum lama ini mesti memasang Windows di ThinkPad T420 dan lumayan kerepotan ketika menggunakan easy2boot dan WinNTSetup3.

Here’s my story

ThinkPad T420 ini akan digunakan bersama. Jadi saya tidak bisa memaksakan single boot Linux karena dipastikan banyak yang akan mengeluh. Meski sebenarnya jika dipasang Windows pun pasti tetap akan ada yang complain :D. HDD telah diganti SSD dan diformat menjadi 4 partisi; 2 NTFS dan 2 ext4.

Siapkan Prasyarat

  1. Berkas ISO Microsoft Windows 7.
    Sayangnya, setelah rilis Windows 10 kita tidak lagi bisa mengunduh berkas ISO Microsoft Windows 7 secara resmi dari Digital River. So, now you’re on your own
  2. Install paket wimtools.
    wimtools adalah perkakas untuk memanipulasi berkas WIM (Windows Imaging) yang biasa digunakan dalam installer Windows.

    aptitude install wimtools
    

Siapkan Partisi Windows

Gunakan gparted atau partitioner favorit Anda lainnya untuk membuat partisi khusus bagi Windows. Ingat, backup!. Bermain dengan partisi adalah urusan serius. Selalu cadangkan data penting sebelum menyunting partisi. Berikut urutan yang mesti dilakukan:

  • Siapkan (buat) partisi
  • Format partisi baru ini ke NTFS
  • Normalnya, installasi Windows menyaratkan dipasang pada partisi aktif agar Windows dapat memasang bootloader/boot manager dengan benar. Jadi, beri partisi NTFS ini tanda (flag) boot.
    Sebenarnya dalam kasus kita tidak akan berpengaruh banyak, karena kita akan menggunakan GRUB2 sebagai bootloader.

Install Windows

  • Buat titik kait untuk bekerja sementara dengan ISO dan partisi Windows.

    mkdir /tmp/{iso,hdd}
    
  • Kaitkan berkas ISO Windows 7.

    mount -o loop windows_iso /tmp/iso
    
  • Terdapat banyak edisi Windows dalam sebuah berkas ISO, ketahui index edisi Windows dengan perintah:

    wimlib-imagex info /tmp/iso/sources/install.wim
    
  • Misal jika kita hendak memasang edisi Ultimate yang ada di indeks ke-5 ke partisi /dev/sda2:

    wimlib-imagex apply /tmp/iso/sources/install.wim 5 /dev/sda2
    
  • Kaitkan partisi Windows untuk mempersiapkan berkas yang dibutuhkan partisi tersebut agar bisa boot.

    mount /dev/sda2 /tmp/hdd
    mkdir /tmp/hdd/sources
    cp -r /tmp/hdd/Windows/Boot/PCAT /tmp/hdd/Boot
    cp /tmp/hdd/Boot/bootmgr /tmp/hdd
    

    Sayangnya belum ada aplikasi Linux yang mampu menyunting berkas BCD, karenanya, agar partisi Windows ini mampu booting sementara kita pakai BCD dan berkas recovery (winRE.wim) dari berkas ISO agar nanti partisi boot ke Windows Recovery Environment dan kita memperbaiki BCD dari sana.

    cp /tmp/hdd/Windows/Boot/DVD/PCAT/{boot.sdi,BCD} /tmp/hdd/Boot
    cp /tmp/hdd/Windows/System32/Recovery/winRE.wim /tmp/hdd/sources/boot.wim
    

Langkah Tambahan, unattendend install

Anda bisa melewati langkah ini dan langsung menuju langkah Finishing jika hendak memasang Windows secara normal.
Sesuai namanya, unattendend install berarti proses pemasangan Windows yang tidak memerlukan campur tangan manusia. Proses pemasangan berjalan otomatis dengan cara kita menyediakan berkas jawaban bagi installer sehingga tidak diperlukan memasukkan jawaban secara manual.

Rujuk laman technet.microsoft.com untuk memahami bagaimana membuat berkas jawaban secara mandiri, atau bisa juga menggunakan layanan dari windowsafg.no-ip.org.

Salin berkas jawaban yang telah dibuat:

cp Unattend.xml  /tmp/hdd/Windows/System32/sysprep

Berkas Unattend.xml dapat berisi data yang penting, karenanya baik kita buat script untuk menghapusnya jika pemasangan Windows telah usai.
Buat sebuah script, misalnya SetupComplete.cmd untuk menghaapus berkas yang tidak lagi diperlukan, bahkan untuk menerapkan registry tweaking.

mkdir /tmp/hdd/Windows/Setup/Scripts
cp SetupComplete.cmd /tmp/hdd/Windows/Setup/Scripts

Finishing

Proses pemasangan Windows telah selesai. Lepaskan partisi dan berkas ISO Windows dari kaitannya.
Masukkan partisi Windows 7 ke dalam GRUB:

sudo update-grub

Reboot

Hidupkan ulang komputer.
Komputer akan restart beberapa kali:

  • restart pertama komputer akan boot ke Windows Recovery Environment dan akan mencoba memperbaiki BCD.
  • boot kedua Windows akan mulai installasi tahap pertama
  • boot ketiga Windows akan mulai installasi tahap akhir

Catatan

GNU/Linux tidak menulis data secara rapat berimpitan (contiguous) sebagaimana Windows. Karenanya setelah Anda mengikuti tutorial ini dan berhasil masuk Windows, langkah pertama yang harus dilakukan adalah defrag Windows.

Lampiran