[KVM] 在 Ubuntu 上使用 kvm 指令建立新的 VM,安裝 Windows XP
剛裝好了 KVM/QEMU,先照著書上寫的方式,
用命令列模式來建立一下 VM 吧~
命令列模式下也可以區分為使用 virsh 這個高階的指令,
或是直接用 kvm 的低階指令,這篇使用的是 kvm 指令~
1. 建立 .qcow2 硬碟檔
我們需要先準備一個檔案,用來代表這個 VM 使用的硬碟,
一般來說 QEMU 使用的是 qcow2 格式,
可以用 qemu-img create 指令來建立,例如:
testuser@localhost ~/qemu $ qemu-img create WinXPSP3_zhtw.qcow2 100G Formatting 'WinXPSP3_zhtw.qcow2', fmt=raw size=107374182400 testuser@localhost ~/qemu $ ll -h -rw-r--r-- 1 jeff_lai jeff_lai 100G Jul 27 16:24 WinXPSP3_zhtw.qcow2
上面的指令建立了一個 100G 容量的硬碟檔,不過格式並不是預想的 qcow2,
而是 raw 檔,導致這個檔案就直接占據了 100GB 的大小…
要真正建立 qcow2 格式,得加上 -f qcow2 的參數才行,
這樣建立出來的是動態調整大小的硬碟檔,一開始只有不到兩百 KB:
testuser@localhost ~/qemu $ qemu-img create -f qcow2 WinXPSP3_zhtw.qcow2 100G Formatting 'WinXPSP3_zhtw.qcow2', fmt=qcow2 size=107374182400 encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16 testuser@localhost ~/qemu $ ll -h -rw-r--r-- 1 jeff_lai jeff_lai 194K Jul 27 16:24 WinXPSP3_zhtw.qcow2
2. 使用這個 .qcow2 硬碟檔來安裝 Windows XP
執行下面的 kvm 指令,
-m 選項指定記憶體是 768 MB,
-cdrom 選項指定光碟機要插入 WinXP 的安裝光碟,
-boot 選項指定用光碟機來開機
(a = 軟碟, c = 硬碟, d = 光碟,想成是 Windows 的 a: c: d: 就很好記了),
-hda 選項指定第一顆硬碟用的是我們剛剛建立出來的 .qcow2 檔案:
testuser@localhost ~/qemu $ kvm -m 768 -cdrom ~/WinXP_Pro_SP3_x86.iso -boot d -hda WinXPSP3_zhtw.qcow2 Could not initialize SDL(No available video device) - exiting
咦… 怎麼出現 Could not initialize SDL(No available video device) 的錯誤?
原來是因為我是透過 ssh 連線到 Ubuntu 上,執行上面的 kvm 指令,
讓它找不到顯示設備的關係…
直接到 Ubuntu 桌面的終端機上執行上面的指令,就沒問題了,
會跳出一個 QEMU 的視窗來開始安裝 Windows XP:
安裝過程沒什麼太大的問題,可以用鍵盤操作,
只是看不到滑鼠游標,但點下滑鼠時視窗似乎有些反應 (取得焦點或失去焦點)…
在 WindowsXPUnderQemuHowTo 這篇看到了解法,
先執行下面的指令,設定 SDL_VIDEO_X11_DGAMOUSE 這個環境變數:
export SDL_VIDEO_X11_DGAMOUSE=0
這樣之後再執行 kvm 指令,就可以成功看到滑鼠游標,也能正常操作了~
(只不過還是會有一些不太同步的問題,有時滑鼠移動到某些位置時,
會發現 VM 裡的滑鼠指標沒辦法跟上,得想辦法移來移去讓它同步)
接下來進到 Windows XP 裡面,會發現網路不通,也沒有網路卡…
參考了 QEmu 1.4.0: no more internet 這篇,
可以加上 -net 選項,指定使用 Realtek 的網卡,例如:
kvm -m 768 -boot c -net user -net nic,model=rtl8139 -hda WinXPSP3_zhtw.qcow2
這樣就能成功上網囉~