bersama catatan peribadi & teknikalnya.

Pemasangan VM Windows 10 (Manual)

Dengan QEMU/KVM


geeky stuff
#Windows | #QEMU | #KVM
DITULIS SEMULA SEBAGAI PENAMBAH BAIK.
Merata-rata mencari pelbagai sumber rujukan demi membolehkan perkara-perkara yang saya hajati berikut:-
  1. Pemasangan melalui QEMU/KVM secara manual.
  2. Penting perkara di atas ini kerana mahu set up samba untuk perkongsian direktori / fail.
    Satu-satunya kaedah untuk berkongsi direktori / fail apabila menggunakan aplikasi GUI virt-manager / virt-viewer melalui Spice WEBDAV Daemon adalah tidak stabil bagi saya. Disebabkan itu, saya beralih kepada kaedah manual ini yang membenarkan opsyen medium kepada samba.
  3. Dan dalam masa yang sama, masih boleh set up Spice Client demi memperolehi kemudahan menyalin (Clipboard; copy & paste) di antara kedua-dua sistem hos dan tetamu.

  4. Sila pastikan sistem hos sudah bersambung dengan rangkaian Internet.

Hantaran kali ini berkisar pemasangan Windows di mesin maya.

Sebelum ini gunakan VirtualBox. Tapi susah betul nak buka fail-fail PDF sebab resolusi skrin tak padan dan mesti sentiasa ditukar tetapannya. Jenuh.

Akhirnya rajinkan diri untuk set up menggunakan QEMU/KVM.

Baiklah. Seperti biasa, rujukan paling digemari ialah ArchWiki. Menurut hemat saya, rujuk ArchWiki itu sahaja sudah mencukupi. Walaubagaimanapun, saya buat hantaran ini untuk rujukan sendiri.

Kiranya andai ada pembaca yang terbaca dan rasa ianya lebih membantu sudah tentulah ia perkara yang sangat baik.

Jadi, perkara pertama yang wajib dibuat mestilah memasang pakej qemu. Saya juga pasang pakej samba untuk kemudahan berkongsi folder di antara hos (Arch Linux) dan tetamu (Windows). Pelik pula bila guna tetamu. Bahasa Inggerisnya guest-lah.

Kemudian, sebelum mula proses pemasangan, dapatkan dahulu virtio drivers dalam bentuk fail ISO yang boleh dimuatturun dari repositori Fedora.

Mungkin boleh study dulu penerangan dari ArchWiki di sini.

Secara dasarnya pemasangan sistem Windows baru di VM melalui QEMU memerlukan baris-baris perintah seperti yang berikut:-

  1. Saya cipta imej cakera maya (virtual disk) bagi Windows dengan format qcow2 yang akan memakan ruang cakera mengikut jumlah sebenar digunakan. Saiz ruang maksimum ditetapkan adalah 50GiB.
    qemu-img create -f qcow2 windows.img 50G
  2. Salin `ovmf` ke dalam direktori rumah:
    cp /usr/share/edk2/x64/OVMF.4m.fd copyof_OVMF.4m.fd
  3. Mula load VM untuk pemasangan Windows dengan:-
 1qemu-system-x86_64 -enable-kvm \
 2    -machine type=q35,vmport=off,usb=on \
 3    -m 4G -cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time \
 4    -drive if=pflash,format=raw,file=$HOME/copyof_OVMF.4m.fd \
 5    -device intel-hda -device hda-duplex -device virtio-balloon \
 6    -usb -device usb-tablet \
 7    -vga qxl -display gtk,gl=on,show-cursor=on \
 8    -display spice-app,gl=on -device virtio-serial-pci \
 9    -spice unix=on,addr=/tmp/vm_spice.socket,disable-ticketing=on \
10    -device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0 \
11    -chardev spicevmc,id=spicechannel0,name=vdagent \
12    -device ich9-usb-ehci1,id=usb \
13    -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,multifunction=on \
14    -device ich9-usb-uhci2,masterbus=usb.0,firstport=2 \
15    -device ich9-usb-uhci3,masterbus=usb.0,firstport=4 \
16    -chardev spicevmc,name=usbredir,id=usbredirchardev1 -device usb-redir,chardev=usbredirchardev1,id=usbredirdev1 \
17    -chardev spicevmc,name=usbredir,id=usbredirchardev2 -device usb-redir,chardev=usbredirchardev2,id=usbredirdev2 \
18    -chardev spicevmc,name=usbredir,id=usbredirchardev3 -device usb-redir,chardev=usbredirchardev3,id=usbredirdev3 \
19    -nic user,model=virtio-net-pci,id=nic0,smb=/laluan-penuh-ke-direktori-dikongsi \
20    -drive index=0,media=disk,if=virtio,aio=native,cache.direct=on,file=$HOME/laluan_ke_disk.img \
21    -drive index=1,media=cdrom,file=$HOME/laluan_ke_Win10_20H2_English_x64.iso \
22    -drive index=2,media=cdrom,file=$HOME/laluan_ke_virtio-win-0.1.217.iso
23    #-daemonize

No. Keterangan
qemu-system-x86_64 bagi sistem x64 untuk emulator sistem penuh.
-enable-kvm untuk feature sedia ada dalam QEMU yang akan meningkatkan kelajuan sistem di VM.
-machine type=q35 untuk chipset moden.
vmport=off untuk menutup VMWare IO port emulation.
usb=on diambil dari penerangan yang terdapat di Deprecated features:-
-usbdevice (since 2.10.0)
The -usbdevice DEV argument is now a synonym for setting the -device usb-DEV argument instead. The deprecated syntax would automatically enable USB support on the machine type. If using the new syntax, USB support must be explicitly enabled via the -machine usb=on argument.
-m 4G merujuk kepada jumlah RAM dalam GiB yang diperuntukkan kepada VM serta command -cpu sebagaimana terdapat pada Tips and Tricks di ArchWiki.
Opsyen -drive bersama pembolehubah if=pflash untuk bootloader dengan perisian tegar UEFI.
Opsyen -device intel-hda -device hda-duplex untuk audio.

Sementara itu, driverBalloon yang boleh didapati dari CDROM virtio-win adalah untuk dikemaskini selepas siap pemasangan (buka Device Manager).

-usb -device usb-tablet untuk integrasi tetikus, Mouse Integration.
Grafik QXL membuatkan paparan pixel skrin nampak lebih cantik (sharp, akan dibantu oleh spice-guest-tools). show-cursor=on untuk mengatasi isu cursor tak kelihatan. No visible Cursor.
Baris seterusnya saya dapatkan melalui pembacaan dari beberapa sumber yang ada saya nyatakan di bawah halaman ini.
-device virtio-serial-pci mesti disertakan sekali. Jika tidak, ralat yang merencatkan pelaksaan qemu akan berlaku. Drivervioserial ini perlu dikemaskini melalui CDROM virtio-win pasca-pemasangan (buka Device Manager).

Ada dua kali jugalah variable gl=on tu. Satu dekat gtk dan satu lagi dekat spice-app. Begitulah manusia. Tak pernah rasa cukup dengan yang satu. Rasa macam tak yakin gitu. Itu yang saya letak dua-dua variable tu. Selagi dibenarkan kita letak saja walaupun berulang.

Seandainya -display spice-app tidak membuka tetingkap Remote Viewer seperti dalam foto ini secara spontan, boleh cuba sama ada;

  • Tentukan konfigurasi melalui fail mimeapps.list; atau
  • Jalankan perintah remote-viewer spice+unix:///tmp/vm_spice.socket di terminal selepas baris perintah di atas dijalankan. Mesti pasang pakej virt-viewer untuk perolehi akses kepada remote-viewer ini.
Enable saluran untuk spice-vdagent yang bertujuan untuk mendapatkan fungsi clipboard bagi sistem hos dan tetamu (akan dibantu oleh spice-guest-tools).
Barisan-barisan berisikan opsyen -device ich9-usb-ehci1 dan -chardev spicevmc,name=usbredir pula adalah untuk perkongsian port USB sekiranya ada keperluan untuk memajukan peranti yang dihubungkan melalui port, misalnya kamera web (built-in / USB webcam).
Baris -nic user,model=virtio-net-pci,id=nic0,smb=/laluan-penuh-ke-direktori-dikongsi adalah untuk mendapatkan rangkaian internet berserta kemudahan berkongsi direktori / fail di antara kedua-dua sistem.

DriverNetKVM perlu dikemaskini dari CDROM virtio-win apabila pemasangan sudah selesai (buka Device Manager).

-drive pertama dengan media berformat disk sebagai tempat simpanan sistem operasi dan data serta enable virtio sebagai driver.
-drive kedua merujuk kepada fail ISO bagi memasang sistem Windows, media berformat cdrom.
-drive ketiga untuk load CDROM virtio yang diperolehi dari repositori Fedora seperti yang dijelaskan di atas. Ia diperlukan untuk load driver ketika pemasangan.
-daemonize untuk jalankan QEMU dalam mod daemon.

Mengakses cakera simpanan untuk pemasangan:
Custom: Install Windows only (advanced) Load driver OK (untick) Hide drivers that aren't compatible with this computer's hardware Browse CD Drive (E:) virtio-win-0.1.2NN viostor w10 amd64 OK Red Hat VirtIO SCSI controller (E:\viostor\w10\amd64\viostor.inf) Next (Scanning will run) Next

  • Jika hanya untuk eksperimentasi di VM, pilih sahaja I don't have a product key semasa pemasangan. Sistem tetap dapat dipasang malahan boleh dikemaskini.

  • Rangkaian Internet masih belum bersambung sewaktu proses pemasangan. Untuk itu, perlu log masuk dengan memilih I don't have Internet Continue with limited setup.

❗ PENTING ❗
Apabila pemasangan sudah siap dan driver untuk Ethernet Controller yang boleh didapati dari CD virtio-win (NetKVM) bagi tujuan mendapatkan sambungan Internet juga sudah dikemaskini, buka aplikasi Microsoft Edge untuk muat turun spice-guest-tools-latest.exe dan pasang ia di sistem tetamu (Windows).

Ambil perhatian, wajib quote laluan penuh ke direktori perkongsian selepas baris smb= ini, e.g. /home/pengguna/nama-direktori. Jika tidak, penambahan lokasi rangkaian di sistem tetamu akan menemui kegagalan.
Folder yang dikongsi boleh dicapai dengan menambah lokasi network:
This PC Add a network location Next Choose a custom network location Next Internet or network address:
 
  Next Type a name for this network location:
 
  Next Finish
Hah, boleh-lah nak install Microsoft Office melalui fail ISO yang telah diekstrak ke dalam shared folder itu.

Selesai sudah penerangan bagi tujuan ini.

Kali terakhir dikemaskini:
Top