ordinarykuma的blog

虛擬機安裝Windows XP

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

系統環境

前置工作

  1. 建立一個專門放虛擬機的目錄(我是~/Data/virtual_machine)
  2. 關閉這一個目錄的寫時複製
sudo chattr +c ~/Data/virtual\_machine
  1. 檢查是否支援虛擬化(其值不為零)
sudo grep -E -c '(vmx|svm)' /proc/cpuinfo
  1. 檢查是否載入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
  1. 修改群組
sudo usermod -a -G libvirt $USER  
sudo usermod -a -G kvm $USER  
sudo usermod -a -G input $USER
  1. 啟動服務
sudo systemctl enable libvirtd  
sudo systemctl start libvirtd
  1. 啟動虛擬機的網卡
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
  1. 打開終端機,修改下列粗體字,將其斜線內容貼入終端機。
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
  1. 進入Windows XP的安裝界面(藍底界面),立刻按下F6,我們來安裝VirtIO的驅動。按下S鍵,選擇Intel...,按下Enter。之後會回到WIndows Setup,此時再按下S,選擇RedHat...,會再次回到WIndows Setup,再按下Enter。

  2. 完成後續的安裝步驟。

  3. 之後可以用下列命令來啟動虛擬機(-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
  1. 掛載VirtIO驅動
change ide2-cd0 /home/xjd/Data/virtual\_machine/ISO/virtio-win-0.1.285.iso
  1. 打開XP的裝置管理員,更新網卡驅動

  2. 在「Windows是否可以連線到WIndows Update尋找軟體」,選「不,現在不要」。這一個驅動WIndows Update沒有,並且xp的Windows Update的伺服器早就關了。

  3. 選擇「從清單或是特定位置安裝(進階)」

  4. 選擇「不要搜尋...」

  5. 選擇「網路介面卡」

  6. 選擇「從磁片安裝」,完成後續安裝。

  7. 其他驅動也是依樣畫葫蘆,我就不展示了。SM Bus是光碟片裡面的qemupciserial/2k8/x86/qemupciserial.inf。任選一個Red Hat的Q35驅動即可。

  8. 可以到http://win32subsystem.live/supermium/legacy/下載supermium瀏覽器。

最後成果

參考資料

#Debian #Linux