Kloning Massal Windows Bagian 1: Mempersiapkan Disk Image

Mensetup Windows secara manual, menginstall satu persatu software yang kita butuhkan, dan mengubah setting setiap software butuh waktu cukup lama. Jika kita perlu melakukan ini pada banyak komputer, maka kita bisa melakukan cloning. Contoh perlunya memakai cloning ini misalnya untuk sebuah kompetisi, untuk dipakai di sekolah, untuk didistribusikan ke karyawan.

Tulisan ini adalah pengalaman cloning laptop di IOI 2022. Baca juga tulisan saya sebelumnya mengenai penggunaan Rasbperry Pi Pico untuk setup UEFI dan IP address. IOI 2022 merupakan lomba yang sifatnya Hybrid: online dan offline di Yogyakarta. Untuk menyamakan environment, semua peserta bekerja di dalam virtual machine Linux. Jadi laptop Windows di sini tujuannya untuk menjalankan VMware yang akan menjalankan Linux.

Hasil cloning laptop di IOI 2022

Di tulisan ini saya ingin menunjukkan salah satu cara mempersiapkan cloning massal komputer (terutama laptop) dengan OS Windows 11 (berlaku juga untuk Windows 8/10) dengan software yang sudah kita tentukan sebelumnya. Ada banyak cara cloning Windows, dan sekilas akan saya jelaskan berbagai pendekatan yang ada, dan kenapa saya memilih pendekatan yang saya pilih.

Langkah untuk cloning ada dua: mempersiapkan image, dan kemudian mengclone image tersebut ke target. Istilah image di sini maksudnya adalah file yang berisi salinan sebuah disk/partition dari sebuah komputer.

Sebagai catatan: Artikel ini ditulis di tahun 2022. Jika Anda membaca artikel ini beberapa tahun dari sekarang, mungkin sudah ada versi Windows baru, dan mungkin sudah ada cara yang lebih baik untuk melakukan cloning ini.

Membuat Image

Secara umum yang perlu dilakukan untuk membuat image adalah:

  • Menginstall Windows
  • Menginstall update
  • Menginstall aplikasi
  • Mengubah setting-setting yang diperlukan
  • Menambah driver ekstra jika diperlukan
  • Menjalankan sysprep untuk men-generalisasi image
  • Membuat disk image

Langkah pembuatan image ini bisa dilakukan di hardware yang sebenarnya, atau menggunakan virtual machine (VM). Menggunakan hardware yang sebenarnya akan lebih mudah dalam hal device driver, tapi akan sulit untuk coba-coba.

Jika kita menggunakan VM, maka kita bisa memakai fitur snapshot, agar bisa mencoba-coba konfigurasi, dan jika gagal tinggal mengulangi lagi. Jika menggunakan hardware langsung, maka proses coba-coba jadi lebih lama.

Disable Secureboot

Ini hanya untuk laptop yang akan diclone, di laptop tujuan cloning, secure boot bisa diaktifkan. Dari pengalaman, jika Secure Boot dinyalakan, laptop tertentu akan gagal diclone (gagal boot di komputer tujuan setelah diclone).

Menginstall Windows

Laptop dengan logo Windows biasanya memiliki lisensi built in di dalam UEFI-nya (dalam entry SLIC). Pastikan instalasi yang dilakukan sesuai dengan edisi Windows yang didukung oleh laptop. Ini sangat penting juga untuk yang ingin membuat image dengan menggunakan virtual machine.

Saat ini VMWare belum mendukung Virtual Machine Windows 11. Tapi kita bisa membuat Virtual Machine Windows 10, lalu modifikasi file vmx-nya. Langkahnya:

  • buat VM seperti biasa untuk Windows 10, pastikan memori minimal 4GB dan disk space minimal 64 GB
  • Jangan distart, hentikan VMware (exit)
  • Edit file vmx, tambahkan baris managedVM.autoAddVTPM = "software"
  • Start VM dan teruskan instalasi

Untuk laptop: ada banyak driver spesifik untuk sebuah laptop, jika sudah punya laptop yang terinstall Windows dari produsennya, kita bisa mengekstrak semua driver dengan:

dism /Online /Export-Driver /Destination:d:\drivers

Ini cukup menghemat waktu dibandingkan harus menginstall driver satu per satu.

Di komputer tertentu, NVME atau SSD butuh driver khusus. Tanpa driver itu Windows tidak bisa mengenali disk sama sekali, dan instalasi akan gagal. Jadi kalau ingin membuat image berdasarkan virtual machine, pastikan driver dimasukkan ke Windowsnya.

Instalasi aplikasi dan konfigurasi Sistem

Langkah ini tidak perlu penjelasan khusus: install semua software yang dibutuhkan. Kadang ada software yang bermasalah ketika diclone, solusinya tergantung masing-masing software.

Saat ini di Windows 11 sudah ada package manager yang bernama “winget”. Dengan ini kita bisa menginstall berbagai software langsung dari command line. Ini sangat memudahkan proses scripting.

Contoh untuk mencari WinSCP:

winget search winscp

Dan untuk menginstall:

winget install WinSCP.WinSCP

Beberapa konfigurasi sistem yang dilakukan untuk IOI misalnya:

  • mendisable sleep (agar tidak bingung ketika lomba jika komputer mati)
  • mendisable lock screen
  • mematikan WIFI (semua harus via ethernet)
  • mematikan bluetooth

Sysprep

Mengkloning langsung sebuah sistem bisa saja langsung dilakukan tanpa persiapan, tapi akan ada ID unik yang ikut terclone. Jika tujuan cloning misalnya hanya sekedar memindahkan Windows ke drive baru, maka ini memang kita inginkan.

Untuk kloning ke banyak komputer/laptop, kita ingin agar ID ini unik atau dihasilkan ulang. Untuk itu kita butuh program bernama sysprep (program ini bawaan Windows).

Teorinya program ini sangat sederhana: akan menghapus hal-hal spesifik komputer ini, supaya ketika windows booting, maka Windows akan menggenerate ulang berbagai ID, dan juga akan melakukan scanning berbagai hardware baru. Kita juga bisa memberikan file unattend.xml yang berisi jawaban dari pertanyaan ketika Windows dimulai.

Fitur sysrep menurut Microsoft

File unattend.xml ini bisa dibuat manual dengan mengedit langsung XML, tapi cara yang benar adalah mengguankan Windows System Image Manager. Contoh file unattend.xml seperti ini, password di sini tidak rahasia (ioi).

Ketika sistem dimulai, yang dilakukan adalah:

  • menyembunyikan halaman EULA
  • menskip halaman pembuatan akun baru (karena akun sudah dibuat)
  • segala macam OOBE (out of box experience) diskip
  • mensetup AutoLogon, agar ketika booting, user ioi langsung login
  • bahasa diset English US
  • Jangan hapus driver yang sudah terinstall (karena semua laptopnya sama persis, drivernya juga sama persis)
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="oobeSystem">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<OOBE>
<HideEULAPage>true</HideEULAPage>
<HideLocalAccountScreen>true</HideLocalAccountScreen>
<SkipMachineOOBE>true</SkipMachineOOBE>
<SkipUserOOBE>true</SkipUserOOBE>
<HideOnlineAccountScreens>true</HideOnlineAccountScreens>
<HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
</OOBE>
<AutoLogon>
<Password>
<Value>aQBvAGkAUABhAHMAcwB3AG8AcgBkAA==</Value>
<PlainText>false</PlainText>
</Password>
<Enabled>true</Enabled>
<LogonCount>1000</LogonCount>
<Username>ioi</Username>
</AutoLogon>
</component>
<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputLocale>en-US</InputLocale>
<SystemLocale>en-US</SystemLocale>
<UILanguage>en-US</UILanguage>
<UserLocale>en-US</UserLocale>
<UILanguageFallback>en-US</UILanguageFallback>
</component>
</settings>
<settings pass="generalize">
<component name="Microsoft-Windows-PnpSysprep" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DoNotCleanUpNonPresentDevices>true</DoNotCleanUpNonPresentDevices>
<PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
</component>
</settings>
<cpi:offlineImage cpi:source="wim:e:/install.wim#Windows 10 Home Single Language" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>
view raw Unattend.xml hosted with ❤ by GitHub

Cara menjalankan sysprep (sebagai admin):

cd \windows\system32\sysprep
.\sysprep /oobe /generalize /shutdown /unattend:c:\unattend.xml

Jadi setelah menjalankan sysprep, sistem akan shutdown. Jangan jalankan Windows, buat clone sistem tersebut dengan booting OS khusus untuk membuat clone (bisa WinPE, bisa CloneZilla, bisa juga software komersial). Ketika startup kali pertama, maka setup windows akan diteruskan. Jika semua sudah diskip dengan Unattend.xml, maka sistem langsung siap pakai.

Masalah yang ditemui ketika Sysprep adalah: jika ada software yang tidak terinstall untuk semua user, maka prosesnya akan gagal. Saat ini yang selalu membuat gagal adalah OneDrive. Jika ada kasus seperti ini, coba lihat isi Phanter\setuperr.log dan lihat nama package yang bermasalah

Dalam kasus di atas, kita perlu menghapus package OneDrive dengan Remove-AppxPackage di Powershell:

Remove-AppxPackage -Package Microsoft.OneDriveSync_21220.1024.5.0_neutral__8wekyb3d8bbwe

Distribusi Image: Solusi Microsoft, Open Source, dan Third Party

Secara umum ada tiga solusi utama distribusi image:

  • Menggunakan solusi dari Microsoft: menggunakan server MDT. Sangat rumit, butuh setup server, active directory, dsb. Tidak bisa cloning device yang memiliki banyak OS. Cocok untuk perusahaan berbasis Windows.
  • Menggunakan solusi third party komersial
  • Menggunakan solusi berbasis opensource (biasanya berbasis Linux), misalnya CloneZilla.

Saya memilih solusi terakhir, karena saya lebih mengerti apa yang dilakukan oleh software cloningnya, dan saya tidak ingin membayar untuk solusi third party komersial.

Di tulisan berikutnya, saya akan memberikan petunjuk bagaimana menggunakan CloneZilla untuk cloning massal.

Bagaimana dengan Linux?

Jika kita nekat mengclone Linux, maka kemungkinan besar semua hal akan berjalan normal, tapi beberapa celah keamanan mungkin akan muncul, misalnya: SSH Host key akan terclone. Untuk mencegah ini, kita bisa memakai virt-sysprep.

Saya tidak akan membahas detail, karena ada terlalu banyak distribusi Linux dan masing-masing memiliki cara konfigurasi sendiri. Saat ini yang paling gampang disetting adalah Ubuntu. Ada mode installasi yang bernama oem-install di mana kita bisa mengkonfigurasi hal-hal tertentu sebelum cloning.

Tinggalkan Balasan

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.