Total Pageviews

Friday, 23 December 2011

QEMU是一套模拟处理器的自由软件/在centos 下安装qemu 虚拟器

QEMU是一套由Fabrice Bellard所编写的模拟处理器的自由软件。它与Bochs,PearPC近似,但其具有某些后两者所不具备的特性,如高速度及跨平台的特性。经由kqemu这个开源的加速器,QEMU能模拟至接近真实电脑的速度。QEMU有两种主要运作模式:
User mode模拟模式,亦即是使用者模式。QEMU能启动那些为不同中央处理器编译的Linux程序。而Wine及Dosemu是其主要目标。
System mode模拟模式,亦即是系统模式。QEMU能模拟整个电脑系统,包括中央处理器及其他周边设备。它使得为系统源代码进行测试及除错工作变得容易。其亦能用来在一部主机上虚拟数部不同虚拟电脑。
使用kqemu可使QEMU能模拟至接近实机速度,但其在虚拟的操作系统是Microsoft Windows 98或以下的情况下是无用的。

经过八年开发之后,模拟处理器的自由软件QEMU正式发布了1.0版。 八年前,Fabrice Bellard启动了QEMU项目,最初设想在非x86平台上运行x86 Linux二进制程序,随后转变成跨架构的全系统模拟器,能在不同主机平台模拟14种不同的目标架构。

包括IA-32(x86) PC、x86-64 PC、MIPS R4000、Sun的SPARC sun4m和SPARC sun4u,ARM和PowerPC等等。它是Xen和KVM虚拟机的核心。

下载地址:http://wiki.qemu.org/download/qemu-1.0.tar.gz
----------------------------------------------------------------
在centos 下安装qemu 虚拟器


QEMU是一個由GNU所發展的模擬器,關於QEMU的介紹請參考此 篇
以下紀錄在 CentOS 下安裝與使用QEMU的步驟
本文架設環境:
系統: CentOS 5.4 Desktop
 Kernel: 2.6.18-164.el5PAE

目錄

[隱藏]

[編輯] 系統安裝

安裝步驟:
  1. 安裝 Fedora 必須要先準備安裝的iso,點選擇你適合的站台或是直接至CentOS正體英文站下載
  2. 燒錄到光碟片或是製作LiveUSB
  3. 設定從光碟(或USB)開機
  4. 選擇語系
  5. 開始設定
  6. 第一次登入
  7. 更新全系統並重新啟動
    [che@local]$ sudo yum update -y && reboot

[編輯] 安裝QEMU

    • 透過 yum 安裝
    [che@local]$ sudo yum install qemu qemu-kvm
    • 原始碼編譯與安裝
  1. 官方網站下載頁面下載最新的 source code
    [che@local]$ wget http://download.savannah.gnu.org/releases/qemu/qemu-0.12.3.tar.gz
  2. 解壓縮原始碼
    [che@local]$ tar zxf qemu-0.12.3.tar.gz
  3. 編譯與安裝
    [che@local]$ cd qemu-0.12.3  
    [che@local]$ sudo ./configure --prefix=/usr/local/qemu --enable-kvm    
    [che@local]$ sudo make         
    [che@local]$ sudo make install
  4. 刪除不需要再用到的原始碼
    [che@local]$ cd ../  
    [che@local]$ sudo rm -rf qemu-0.12.3
  5. 將qemu的路徑加入系統(或User自己)的路徑 (如果你在安裝時沒有加上 --prefix 這個參數,那你可以略過這個步驟)
    [che@local]$ sudo vi /etc/profile 或是 [che@local]$ vi ~/.profile
    
    (加入以下內容)
    
    PATH=/usr/local/qemu/bin:$PATH
    export PATH 
    
    (存檔並離開)
    
    [che@local]$ source /etc/profile 或是 [che@local]$ source ~/.profile

[編輯] 安裝加速器KQEMU

在CentOS裡,KQEMU只有一種安裝方式:
  • 原始碼編譯&安裝
  1. 官方網站下載頁面下載最新版的 kqemu原始碼
    [che@local]# wget http://wiki.qemu.org/download/kqemu-1.3.0pre11.tar.gz
  2. 解壓縮source code
    [che@local]# tar zxf kqemu-1.3.0pre11.tar.gz
  3. 編譯與安裝
    [che@local]# cd kqemu-1.3.0pre11
    [che@local]# ./configure 
    [che@local]# make 
    [che@local]# make install

[編輯] 模組掛載

  • KVM
[che@local]$ sudo modprobe kvm 
[che@local]$ sudo modprobe kvm_intel (AMD CPU的電腦請自行改成kvm_amd)

[編輯] 建立Image檔案

建立一個image有兩種方式,一種是使用qemu-img,另外一種是使用dd
  • qemu-img 
    指令: qemu-img create -f 格式 檔名 容量
    範例:
[che@local]$ qemu-img create -f qcow2 xp1.img 20G  
[che@local]$ qemu-img create -f raw /usr/local/vms/xp2.dev 10G
建立的imgage檔並不一定要是*.img,但是為了方便管理,建議還是取一個有規則的命名方式
  • dd
    指令: dd if=/dev/zero of=檔名 bs=單位時間內 讀/寫 所用的大小(預設是512MB,要加單位) count=容量(不用加單位)
    範例:
dd if=/dev/zero of=disk.img bs=1G count=5

[編輯] 安裝 Virtual Machines(VM)

指令: qemu-kvm -hda image檔的完整或相對路徑 -cdrom ISO檔的完整或相對路徑 -m 記憶體大小(單位:MB) -smp CPU數目 -boot d(安裝必用 d(光碟))
註記:
     1. image檔及ISO檔如果在當前目錄只需打檔名即可。
2. 分配的記憶體大小跟CPU個數不是在這邊就完全定死,啟動 VM 時可以重新給定。
範例:
[che@local]$ qemu-kvm -hda xp1.img -cdrom XP.iso -m 512 -smp 2 -boot d 
[che@local]$ qemu-kvm -hda xp2.img -cdrom ../../XP.iso -m 1024 -smp 512 -boot d

[編輯] 網路設定

指令格式: -net nic -net user/tap
  • 浮動IP(DHCP)
啟動時 VM 時在指令最後加入下列指令
-net nic -net user
  • 指定IP(tap)
Qemu 要使用指定IP讓 VM 上網的話,會去讀取一個預設的script暨設定檔(預設讀取位置:/etc/qemu-ifup),預設不會自己產生,須手動設定。
  1. 新增並修改qemu-ifup
[che@local]# sudo vi /etc/qemu-ifup
加入下列內容
#!/bin/bash

#新增一張虛擬網卡 其IP為 XXX.XXX.XXX.254,此網卡為 VM 的 gateway
#指令格式:sudo /sbin/ifconfig $1 XXX.XXX.XXX.254(不一定要254,看使用者而定)
sudo /sbin/ifconfig $1 192.168.10.254

#指定IP讓 VM 可以使用
#指令格式:sudo route add -host XXX.XXX.XXX.XXX dev $1
sudo route add -host 192.168.10.1 dev $1  # xp1.img
sudo route add -host 192.168.10.2 dev $1  # xp2.img

#讓 xxx.xxx.xxx.0 網段的所有IP經由 eth0 這張網卡轉送
sudo echo "1" > /proc/sys/net/ipv4/ip_forward

#讓 xxx.xxx.xxx.0 網段的所有IP經由 eth0 這張網卡轉送與進出
#指令格式:sudo iptables -t nat -A POSTROUTING -o 可使用的實體網卡 -s XXX.XXX.XXX.0/24 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -o eth0 -s 192.168.10.0/24 -j MASQUERADE

#讓指定IP可以用遠端桌面連線方式進入
#指令格式:sudo iptables -t nat -A PREROUTING -i 可使用的實體網卡 -p tcp --dport XXXX(阜號) -j DNAT --to XXX.XXX.XXX.XXX:3389
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 5678 -j DNAT --to 192.168.10.1:3389
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6789 -j DNAT --to 192.168.10.2:3389
    2.  修改權限,讓它可以執行
[che@local]# sudo chmod 755 /etc/qemu-ifup

[編輯] 啟動Virtual Machines(VM)

指令: qemu-kvm -hda image檔的完整路徑 -m 記憶體大小 -smp CPU數目 -boot 開機方式(c(硬碟),d(光碟),n(網路)) -net nic -net user(DHCP)/tap(指定IP)
範例:
[che@local]$ qemu-kvm -hda xp1.img -m 512 -smp 2 -boot c -net nic -net user
[che@local]$ qemu-kvm -hda ../../xp2.img -m 1024 -smp 4 -boot c -net tap
 
from http://lab509.pdpc.cs.pu.edu.tw/wiki/index.php/QEMU%28CentOS%29


No comments:

Post a Comment