Windows 10 บน KVM — ภาพรวมระบบ
สร้าง Windows 10 VM ตัวเดียว ใช้ได้ทั้ง เปิดคู่มือ HTML เก่า (IE11) และ ทดสอบ i2 Analyst’s Notebook 9.4 บน ThinkPad P15 Gen 1 (Arch, i3wm)
ใช้ทำอะไร (Purpose)
| เป้าหมาย | ผล |
|---|---|
| เปิด HTML เก่าที่เบราว์เซอร์ใหม่เปิดไม่ได้ (Honda eSM Civic FD) | ✅ เปิดด้วย IE11 ทั้งจากแผ่นและจาก C:\HondaESM |
| ทดสอบเปิดโปรแกรม i2 AN 9.4 (ไม่ใช้ license) | ✅ เปิดได้ |
| ไม่ต้องสลับเมาส์/คีย์บอร์ด, copy/paste ข้ามเครื่อง | ✅ ด้วย SPICE guest tools |
| ปลอดภัยจาก Win10 ที่หมด support | ✅ ตัดเน็ต VM ถาวร |
Diagram ทั้งระบบ
┌──────────────────────── ThinkPad P15 (Arch Linux, host) ────────────────────────┐
│ │
│ virt-manager (GUI) ─┐ │
│ ├──> libvirtd ──คุม──> QEMU/KVM ──> VM "win10-i2" │
│ virsh (CLI) ────────┘ │ │ │
│ │ ├─ sda: win11.clean-install (overlay)
│ │ │ └─ backing: win11.qcow2 (ฐาน)
│ │ ├─ sdb: CD ← สลับ ISO ได้ │
│ │ │ ├ Win10_22H2...iso │
│ │ │ ├ civic-fd-manual.iso│
│ │ │ └ i2-an-940.iso │
│ │ └─ NIC e1000e 52:54:00:xx:xx:xx
│ │ │ link = DOWN ✂ │
│ └─> virbr0 192.168.122.x/24 ──X──────┘ │
│ (NAT + dnsmasq DHCP) ──> wlp0s20f3 ──> Internet │
│ │
│ /var/lib/libvirt/images/ ← ที่เก็บดิสก์ VM และ ISO ทั้งหมด │
└──────────────────────────────────────────────────────────────────────────────────┘
ภายใน VM:
IE11 ──> C:\HondaESM\HondaEsm.html (คู่มือ, ตอบ "No" ตอนถามปิดหน้าต่าง)
.NET 3.5 (DISM จากแผ่น Windows) ──> i2 Analyst's Notebook 9.4Snapshot tree (จุดย้อนกลับ)
clean-install ← Win10 Pro ลงเสร็จ ยังไม่มีอะไร
└ spice-tools ← + SPICE guest tools, NAT ยังเปิด
└ ie11-working ← + IE11 เปิด Honda eSM ได้
└ i2-installed ← + .NET 3.5 + i2 AN 9.4
└ before-debloat ← ก่อนลบแอปขยะ
└ debloated ← ลบ Appx 23 ตัวแล้ว ⭐ จุดล่าสุดยืนยันจริงด้วย virsh -c qemu:///system snapshot-list win10-i2 --tree (6 ชั้น)
สเปค VM ที่ใช้จริง
| รายการ | ค่า | เหตุผล |
|---|---|---|
| OS | Windows 10 Pro 22H2 English x64 | Pro มี Group Policy, RDP |
| Firmware | BIOS (ไม่ใช่ UEFI) | snapshot ทำได้ปกติ |
| RAM / CPU | 8192 MiB / 4 vCPU | เหลือให้ Arch 40GB |
| Disk | 128 GiB qcow2 (thin) | ใช้จริงราว 12 GB |
| Disk bus / NIC | SATA / e1000e | Windows มีไดรเวอร์ในตัว |
| Network | default NAT แต่ link down | กัน Edge อัปเดตปิด IE + ปลอดภัย |
ลำดับไฟล์ในชุดนี้
| ไฟล์ | เรื่อง |
|---|---|
00-overview.md | ภาพรวม (ไฟล์นี้) |
01-kvm-libvirt-setup.md | KVM, libvirt, กลุ่มผู้ใช้, kernel mismatch |
02-vm-create-and-install.md | สร้าง VM, ค่าที่ต้องเช็ค, ลง Windows, SPICE |
03-network-nat-and-isolation.md | virbr0, NAT, MAC 52:54:00, ตัดเน็ต VM |
04-snapshots-internal-external.md | snapshot สองแบบ, backing chain, sparse file |
05-iso-hash-and-filesystems.md | hash, ISO9660 vs UDF, สร้าง ISO, สลับแผ่น |
06-ie11-legacy-html.md | เปิด Honda eSM ด้วย IE11, debug launcher |
07-offline-install-dotnet-i2.md | .NET 3.5 ออฟไลน์ด้วย DISM, ติดตั้ง i2 |
08-debloat-appx.md | ลบแอปขยะด้วย dry run + regex |
99-command-reference.md | สรุปคำสั่งทั้งหมด (ใช้หลังเข้าใจแล้ว) |
จุดพลาดจริงที่เจอทั้งรอบ (สรุป)
| # | อาการ | สาเหตุจริง | ไฟล์ |
|---|---|---|---|
| 1 | Unable to create bridge virbr0: Package not installed | อัปเคอร์เนลแล้วไม่รีบูต | 01 |
| 2 | รีบูตแล้วเข้า AwesomeWM | display manager เลือก session ผิด | 01 |
| 3 | failed to get domain 'win10-i2' | virt-manager ตั้งชื่อ VM เป็น win11 | 02 |
| 4 | ทายว่า domrename จะ error แต่ผ่าน | libvirt รุ่นใหม่ยอมแล้ว | 04 |
| 5 | ดิสก์ชี้ไป win11.clean-install | snapshot จาก GUI เป็นแบบ external | 04 |
| 6 | bsdtar มองไม่เห็นไฟล์ในแผ่นคู่มือ | แผ่นเป็น UDF ล้วน | 05 |
| 7 | mv ISO ก่อนเทียบ hash | ลำดับผิด ต้องเทียบก่อนย้าย | 05 |
| 8 | ดับเบิลคลิก esmstart.exe แล้วเงียบ | launcher เรียก IE ไม่สำเร็จ | 06 |
| 9 | 'Start-Process' is not recognized | อยู่ใน cmd ไม่ใช่ PowerShell | 06 |
| 10 | i2 Setup ขอเน็ตลง .NET 3.5 | NetFx3 เป็นฟีเจอร์เสริม | 07 |
| 11 | (กันไว้) regex People จะจับ PeopleExperienceHost ของระบบ | ต้องใส่ $ | 08 |
คำถามชวนคิด
- ถ้าวันหนึ่งต้องการให้ VM ตัวนี้ต่อ license server ของ i2 ใน LAN หน่วยงาน (ผ่านสาย
enp0s31f6) แต่ยังไม่อยากให้ Edge อัปเดต จะออกแบบ network อย่างไร ระหว่าง NAT, bridge, หรือ isolated network ที่มี route เฉพาะ - ถ้ายึดโน้ตบุ๊ก Linux ของผู้ต้องสงสัยที่มีโครงสร้างแบบเดียวกับเครื่องนี้ ข้อมูลใดในระบบ host บอกได้ว่า VM เคยออกเน็ตเมื่อไหร่ และผ่านการ์ดเน็ตตัวไหน
- ระบบนี้มีจุดล้มเหลวเดียว (single point of failure) ตรงไหนบ้าง ถ้าจะ backup ทั้ง VM ไปไว้ใน HDD 1TB ต้องก๊อปไฟล์อะไรบ้างให้กู้กลับมาใช้ได้ครบ