2026年8月19日

虛擬機安裝Windows XP

  我之前為了使用Epson印表機,折騰了驅動好一段時間,我後來打算改使用QEMU/KVM虛擬機,我們來實做看看吧。 

系統環境 

  • Debian Testing(forky)+Linux 7.1.8+deb14 
  • Intel Core 5 120U 
  • 沒有獨顯 

前置工作 

  1. 建立一個專門放虛擬機的目錄(我是~/Data/virtual_machine) 
  2. 關閉這一個目錄的寫時複製
    sudo chattr +c ~/Data/virtual_machine 
  3. 檢查是否支援虛擬化(其值不為零)
    sudo grep -E -c '(vmx|svm)' /proc/cpuinfo 
  4. 檢查是否載入KVM模組(應不為空)
    sudo lsmod | grep kvm 

安裝虛擬機 

  我推薦直接看Ivon大大的〈Ubuntu安裝QEMU/KVM和Virt Manager虛擬機管理員〉即可。我下面就簡單帶一下 

  1. 下載需要的套件
    sudo apt install qemu-system libguestfs-tools libvirt-clients libvirt-daemon-system bridge-utils virt-manager ovmf swtpm 
  2. 修改群組
    sudo usermod -a -G libvirt $USER
    sudo usermod -a -G kvm $USER
    sudo usermod -a -G input $USER
     
  3. 啟動服務
    sudo systemctl enable libvirtd
    sudo systemctl start libvirtd
     
  4. 啟動虛擬機的網卡
    sudo virsh net-start default
    sudo virsh net-autostart default
     

安裝Windows XP 

  1. 推薦去【Windows 全攻略】各版本Windows ISO 下載下載ISO。下載32位元的Windows XP SP3 
  2. How to install Windows XP in QEMU下載給Windows XP的VirtIO的驅動(或是點這裡下載32位元的驅動),點這裡下載VirtIO的網卡驅動。 
  3. 建立虛擬機的硬碟,可以將20GB改為你想要的容量。
    qemu-img create -f qcow2 /home/xjd/Data/virtual_machine/winxp.qcow2 20G

    如果有空格,要加雙引號
    qemu-img create -f qcow2 "/home/xjd/Data/virtual_machine/Microsoft Windows XP.qcow2" 20G 
  4. 打開終端機,修改下列粗體字,將其斜線內容貼入終端機。
    qemu-system-i386 -M q35,usb=on,acpi=on,hpet=off \
    -global q35-pcihost.x-pci-hole64-fix=false \
    -m 4G -cpu host -accel kvm \
    -drive if=virtio,file="你的qcow2的位置" \
    -drive if=floppy,file="你下載的xp_q35_x86.img位置",format=raw \
    -device usb-tablet -device VGA,vgamem_mb=64 \
    -nic user,model=virtio -monitor stdio \
    -cdrom "你下載的WindowsXP SP3_ x86.iso的位置" \
    -boot d

     
  5. 進入Windows XP的安裝界面(藍底界面),立刻按下F6,我們來安裝VirtIO的驅動。按下S鍵,選擇Intel...,按下Enter。之後會回到WIndows Setup,此時再按下S,選擇RedHat...,會再次回到WIndows Setup,再按下Enter。

     
     
  6. 完成後續的安裝步驟。 
  7. 之後可以用下列命令來啟動虛擬機(-smp參數指定CPU的核心數)
    qemu-system-i386 -M q35,usb=on,acpi=on,hpet=off \
    -global q35-pcihost.x-pci-hole64-fix=false \
    -m 4G -cpu host -smp cpus=4,sockets=1,cores=4,threads=1 -accel kvm \
    -drive if=virtio,file=
    "你的qcow2的位置"  \
    -device usb-tablet -device VGA,vgamem_mb=64 \
    -nic user,model=virtio -monitor stdio
     

安裝驅動 

  1. 終端機可以看到開頭叫做「(qemu)」,我們可以在這個後面執行命令。 
  2. 執行info block,查看光碟機代號,我的是ide2-cd0
    (qemu) info block
    virtio0 (#block165): /home/xjd/Data/virtual_machine/winxp.qcow2 (qcow2)
        Attached to:      /machine/peripheral-anon/device[2]/virtio-backend
        Cache mode:       writeback

    ide2-cd0: [not inserted]
        Attached to:      /machine/unattached/device[15]
        Removable device: not locked, tray closed
     
  3. 掛載VirtIO驅動
    change ide2-cd0 /home/xjd/Data/virtual_machine/ISO/virtio-win-0.1.285.iso 
  4. 打開XP的裝置管理員,更新網卡驅動

     
  5. 在「Windows是否可以連線到WIndows Update尋找軟體」,選「不,現在不要」。這一個驅動WIndows Update沒有,並且xp的Windows Update的伺服器早就關了。 
  6. 選擇「從清單或是特定位置安裝(進階)」 
  7. 選擇「不要搜尋...」 
  8. 選擇「網路介面卡」 
  9. 選擇「從磁片安裝」,完成後續安裝。

     
  10. 其他驅動也是依樣畫葫蘆,我就不展示了。SM Bus是光碟片裡面的qemupciserial/2k8/x86/qemupciserial.inf。任選一個Red Hat的Q35驅動即可。 
  11. 可以到http://win32subsystem.live/supermium/legacy/下載supermium瀏覽器。 

最後成果 

 

參考資料 

沒有留言:

張貼留言