SASA DESIGN

Open Your mind, Open Your Source Code!

QEMU в Дебиан

13 юни, 2008 – 3:09 pm

Източник: Myfreesoft forum

QEMU е великолепен заместител на VMWARE. Ето и основните стъпки при инсталирането и използването му:

1. Инсталиране

Код:
apt-get install qemu kqemu uml-utilities bridge-utils


2. Зареждане на модула kqemu за да имаме ускорение на работата с виртуалната машина

Код:
modprobe kqemu

Може да добавите kqemu в /etc/modules, за да се вдига при зареждане на системата

3. Създаване на img файл

Код:
mkdir $HOME/qemu_imgs
cd $HOME/qemu_imgs
qemu-img create -f qcow deb.img 1G

Така създавам img файл, чиято максимална големина ще е 1G и на него ще инсталирам дебиан Smile

4. Инсталиране на ОС в/у създаденото виртуално у-во

Код:
qemu -hda deb.img -cdrom debian-iso.img -boot d

5. Конфигуриране на network bridge
- проверяваме за поддръжка на TUN/TAP в ядрото, т.е. трябва да имаме CONFIG_TUN=m или CONFIG_TUN=y в конфига

Код:
grep CONFIG_TUN= /boot/config-`uname -r`

При мен е като модул, т.е.

Код:
gaara@debian:~/temp$ grep CONFIG_TUN= /boot/config-`uname -r`
CONFIG_TUN=m
gaara@debian:~/temp$

- добавяме в /etc/network/interface настройката на bridge-а (трябва да сте root)

Код:
………………………………
# The bridge network interface(s)
auto br0
iface br0 inet static
address 192.168.1.2
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
bridge_ports ppp0 #понеже съм на pppoe
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off

- редактираме файла /etc/qemu-ifup, като изтриваме всичко и добавямес ледните редове (трябва да сте root)

Код:
#!/bin/sh

echo „Executing /etc/qemu-ifup“
echo „Bringing up $1 for bridged mode…“
sudo /sbin/ifconfig $1 0.0.0.0 promisc up
echo „Adding $1 to br0…“
sudo /usr/sbin/brctl addif br0 $1
sleep 2

- редактираме /etc/sudoers (трябва да сте root), като добавяме

Код:
# Cmnd alias specification
Cmnd_Alias QEMU=/sbin/ifconfig,/sbin/modprobe,/usr/sbin/brctl,/usr/sbin/tunctl
# User privilege specification
root ALL=(ALL) ALL
gaara ALL=NOPASSWD: QEMU

като вместо gaara, слагате вашият потребител, т.е. изхода от whoami Razz

6. Задаваме права за изпълнение на /dev/net/tun и /etc/qemu-ifup (трябва да сте root)

Код:
debian:/home/gaara# chmod 755 /dev/net/tun
debian:/home/gaara# chmod 755 /etc/qemu-ifup

7. Отиваме в директорията, в която инсталирахме вируталната ОС и създаваме скрипта qemu-tap

Код:
cd $HOME/qemu_imgs
touch qemu-tap
gedit/kedit/vim/nano qemu-tap #един от всичките редактори

В скрипта поставяте следните редове

Код:
#!/bin/sh
# script to manage tap interface allocation
# for linux kernels >= 2.6.18

# set up a tap interface for qemu
# USERID – uid qemu is being run under.
USERID=`whoami`
iface=`sudo tunctl -b -u $USERID`

# generate a random mac address for the qemu nic
# shell script borrowed from user pheldens @ qemu forum
ranmac=$(echo -n DE:AD:BE:EF ; for i in `seq 1 2` ; \
do echo -n `echo „:$RANDOM$RANDOM“ | cut -n -c -3` ;done)

# specify which NIC to use – see qemu.org for others
model=ne2k_pci
# model=ne2k_isa

# start qemu with our parameters
qemu $@ -net nic,vlan=0,macaddr=$ranmac,model=$model \
-net tap,vlan=0,ifname=$iface

# qemu has stopped – no longer using tap interface
sudo tunctl -d $iface &> /dev/null

8. Зареждаме tun модула и стартираме скрипта:

Код:
sudo modprobe tun
sh qemu-tap -hda deb.img -localtime

Настройката на виртуалната мрежа е както следва:
- IP 192.168.1.3 или каквото си пожелаете, стига да е по-голямо от 2 в 4-ят октет
- NETMASK 255.255.255.0
- GW 192.168.1.2
- DNS-те са ви като на реалната машина

Остана само да изпълним:

Код:
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

QEMU – Debian – Linux – TUN/TAP – network bridge
FAQ
The Qemu Howto

Напиши коментар