我之前為了使用Epson印表機,折騰了驅動好一段時間,我後來打算改使用QEMU/KVM虛擬機,我們來實做看看吧。
系統環境
- Debian Testing(forky)+Linux 7.1.8+deb14
- Intel Core 5 120U
- 沒有獨顯
前置工作
- 建立一個專門放虛擬機的目錄(我是~/Data/virtual_machine)
- 關閉這一個目錄的寫時複製
sudo chattr +c ~/Data/virtual_machine - 檢查是否支援虛擬化(其值不為零)
sudo grep -E -c '(vmx|svm)' /proc/cpuinfo - 檢查是否載入KVM模組(應不為空)
sudo lsmod | grep kvm
安裝虛擬機
我推薦直接看Ivon大大的〈Ubuntu安裝QEMU/KVM和Virt Manager虛擬機管理員〉即可。我下面就簡單帶一下
- 下載需要的套件
sudo apt install qemu-system libguestfs-tools libvirt-clients libvirt-daemon-system bridge-utils virt-manager ovmf swtpm - 修改群組
sudo usermod -a -G libvirt $USER
sudo usermod -a -G kvm $USER
sudo usermod -a -G input $USER - 啟動服務
sudo systemctl enable libvirtd
sudo systemctl start libvirtd - 啟動虛擬機的網卡
sudo virsh net-start default
sudo virsh net-autostart default
安裝Windows XP
- 推薦去【Windows 全攻略】各版本Windows ISO 下載下載ISO。下載32位元的Windows XP SP3
- 到How to install Windows XP in QEMU下載給Windows XP的VirtIO的驅動(或是點這裡下載32位元的驅動),點這裡下載VirtIO的網卡驅動。
- 建立虛擬機的硬碟,可以將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 - 打開終端機,修改下列粗體字,將其斜線內容貼入終端機。
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
- 進入Windows
XP的安裝界面(藍底界面),立刻按下F6,我們來安裝VirtIO的驅動。按下S鍵,選擇Intel...,按下Enter。之後會回到WIndows
Setup,此時再按下S,選擇RedHat...,會再次回到WIndows Setup,再按下Enter。
- 完成後續的安裝步驟。
- 之後可以用下列命令來啟動虛擬機(-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
安裝驅動
- 終端機可以看到開頭叫做「(qemu)」,我們可以在這個後面執行命令。
- 執行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
- 掛載VirtIO驅動
change ide2-cd0 /home/xjd/Data/virtual_machine/ISO/virtio-win-0.1.285.iso - 打開XP的裝置管理員,更新網卡驅動
- 在「Windows是否可以連線到WIndows Update尋找軟體」,選「不,現在不要」。這一個驅動WIndows Update沒有,並且xp的Windows Update的伺服器早就關了。
- 選擇「從清單或是特定位置安裝(進階)」
- 選擇「不要搜尋...」
- 選擇「網路介面卡」
- 選擇「從磁片安裝」,完成後續安裝。
- 其他驅動也是依樣畫葫蘆,我就不展示了。SM Bus是光碟片裡面的qemupciserial/2k8/x86/qemupciserial.inf。任選一個Red Hat的Q35驅動即可。
- 可以到http://win32subsystem.live/supermium/legacy/下載supermium瀏覽器。
最後成果
參考資料
- Btrfs。Arch Wiki。
- How to install Windows XP in QEMU
- QEMU。Arch Wiki。




沒有留言:
張貼留言