Howto Install QEMU With Accelerator

出自Ubuntu 正體中文 Wiki

跳轉到: 導航, 搜尋

目錄

前言

圖片:QEMUrunsNexentaOS.png
NexentaOS 運作在 QEMU 上的畫面。

QEMU 是一個開放原始碼的模擬器,能夠模擬出整個系統,可以安裝在 Windows 或 Linux 等作業系統上,並在其上獨立運行其他的作業系統。

根據官方網站的資料,QEMU 的執行效率約為實機的 10%~20%,若使用 QEMU 搭配加速模組(KQEMU)可以使運作速度達到實機的 50%~100%,與一般商業的模擬器(例如 VMware 或 Virtual PC)相當。KQEMU 為封閉的專屬軟體,但允許免費使用。Host OS 必須是 kernel 2.4.x 或 2.6.x 的 x86/AMD64 Linux 方能安裝 KQEMU。

本文將指導如何在 Ubuntu 上安裝 QEMU 和加速模組。

安裝

下載 QEMU 及加速模組

官方網站 下載最新的 QEMU (Binary distribution 或是 Source code)以及 QEMU Accelerator Module 到 /tmp 資料夾。本文中使用的檔案如下:

QEMU(Binary distribution):[http://fabrice.bellard.free.fr/qemu/qemu-0.8.2-i386.tar.gz qemu-0.8.2-i386.tar.gz]
QEMU(Source code):[http://fabrice.bellard.free.fr/qemu/qemu-0.8.2.tar.gz qemu-0.8.2.tar.gz]
QEMU Accelerator Module:[http://fabrice.bellard.free.fr/qemu/kqemu-1.3.0pre9.tar.gz kqemu-1.3.0pre9.tar.gz]

以下指令操作都將以此為例,若您下載的版本不同,請自行替換指令中對應的參數。

  • 註:Ubuntu 套件庫亦有 QEMU 套件,但該套件不支援 KQEMU 加速模組。因此若要使用加速模組,請下載 QEMU 官方的版本。

安裝 QEMU

安裝 QEMU Binary distribution

QEMU binary distribution 的安裝方式非常簡單,只要在根目錄將其解壓縮出來即可:

cd /
sudo tar zxvf /tmp/qemu-0.8.2-i386.tar.gz

自行編譯 QEMU Source code

如果你使用非 x86 平台(AMD64,PowerPC 或 SPARC),可以自行編譯 QEMU。首先安裝必要的套件:

sudo apt-get build-dep qemu
sudo apt-get install gcc-3.4 checkinstall

解壓縮並編譯 QEMU:

cd /tmp
tar zxvf qemu-0.8.2.tar.gz
cd qemu-0.8.2
./configure --cc=gcc-3.4
make

安裝 QEMU:

sudo checkinstall (如果是 AMD64 平台,請用 sudo checkinstall -A amd64)

安裝 QEMU 加速模組

安裝加速模組之前,必須先安裝編譯環境以及 Linux kernel headers:

sudo apt-get install linux-headers-`uname -r` build-essential

然後解壓縮 KQEMU 並編譯安裝:

cd /tmp
tar zxvf kqemu-1.3.0pre9.tar.gz
cd kqemu-1.3.0pre9
./configure && make && sudo make install

最後記得掛載 KQEMU 模組:

sudo modprobe kqemu

設定

每次開機之後都必須重新建立 /dev/kqemu 並掛載模組,因此,可以編輯 rc.local 使每次開機時自動執行這些動作:

sudo cp /etc/rc.local /etc/rc.local.backup
sudo gedit /etc/rc.local

將以下內容複製並貼到檔案內 exit 0 之前的空白處:

# Config RTC timer
echo 1024 > /proc/sys/dev/rtc/max-user-freq

# Create the kqemu device. No special priviledge is needed to use kqemu.
device="/dev/kqemu"
rm -f $device
mknod $device c 250 0
chmod 666 $device
modprobe kqemu

然後存檔即可。

使用 QEMU

建立 Image

使用 qemu-img 指令來建立 QEMU 使用的映像檔,基本格式是:

qemu-img create [-f format] filename size

支援的檔案格式有 raw、qcow、cow、vmdk、cloop。如果不指定檔案格式,則預設為 raw。舉例來說:

qemu-img create w32.img 4GB             # 建立一個 4GB,raw 格式,名為 w32.img 的映像檔。
qemu-img create -f qcow u606.img 8GB    # 建立一個 8GB,qcow 格式,名為 u606.img 的映像檔。

QEMU 基本操作

QEMU 的命令格式是:

qemu [options] [disk_image]

幾個常用參數的說明如下:

-hda/-hdb file  使用 'file' 作為 IDE 硬碟 0/1 的映像檔。
-hdc/-hdd file  使用 'file' 作為 IDE 硬碟 2/3 的映像檔。
-cdrom file     使用 'file' 作為 IDE CD-ROM 映像檔(不可以跟 -hdc 參數同時使用)。
-cdrom /dev/hdX 使用實體光碟機作為IDE CD-ROM,X為實際上光碟機從系統取得的代號(a,b,c or d)
-boot [a|c|d]   從'軟碟'(a),'硬碟'(c)或'光碟'(d)開機。
-m memorysize         設定虛擬機器使用多少記憶體(預設為 128MB)。
-soundhw c1,... 開啟音效支援,使用 -soundhw ? 列出可用的音效卡,若要開啟全部,請使用 -soundhw all。
-kernel-kqemu   開啟 KQEMU 完全加速模式,預設則為 User Mode。(AMD64 用戶如果是自行編譯 QEMU,必須使用 qemu-system-x86_64 才能帶此參數)

預設會有網路(User Mode),並由 DHCP 自動發配 IP。其餘參數及詳細說明請自行參閱 QEMU 的 Manual Page。以下為 QEMU 操作範例:

qemu -hda u606.img -cdrom ubuntu-6.06-alternate-i386.iso -m 384 -soundhw es1370 -boot d -kernel-kqemu

此行命令表示:

  • hda 設定為 'u606.img'
  • CD-ROM 設定為 'ubuntu-6.06-alternate-i386.iso'
  • 記憶體設定為 384MB
  • 開啟 Sound Card 'es1370'
  • 從光碟開機
  • 開啟 KQEMU 完全加速模式

QEMU 快速鍵

  • Ctrl+Alt:在 QEMU 中釋放或使用鍵盤/滑鼠。
  • Ctrl+Alt+f:切換全螢幕模式。

在 QEMU Manual Page 中可以找到更詳盡的資訊。

QEMU 週邊列表

以下列出 QEMU 模擬的 PC 週邊:

  • i440FX host PCI bridge and PIIX3 PCI to ISA bridge
  • Cirrus CLGD 5446 PCI VGA card or dummy VGA card with Bochs VESA extensions (hardware level, including all non standard modes).
  • PS/2 mouse and keyboard
  • 2 PCI IDE interfaces with hard disk and CD-ROM support
  • Floppy disk
  • NE2000 PCI network adapters
  • Serial ports
  • Creative SoundBlaster 16 sound card
  • ENSONIQ AudioPCI ES1370 sound card
  • Adlib(OPL2) - Yamaha YM3812 compatible chip
  • PCI UHCI USB controller and a virtual USB hub.

參考

如果本篇指南並沒有完全解決您的問題。您可以在 Ubuntu-TW 的 討論區 提出您的問題。將會有其他熱心的朋友盡力為您解決麻煩。也請您在發文的時候加上「我在某某教學內找不到解決方法」,然後增加一個超連結指向本頁。讓維護 wiki 的朋友可以更有效率地補足 wiki 上面的不足。

外部連結