Ubuntu 17.04におけるQEMU環境でのネットワーク接続タイプには大きく分けて次の3種類あります。
・ユーザーモード(userモード) ※ゲスト側IPアドレスは10.0.2.x
・TAPモード
・Bridgeモード
QEMU仮想マシンをホスト側の物理ネットワークと同じネットワークアドレス体系にするネットワーク接続をここでは「QEMUブリッジ接続」と呼ぶことにします。
このQEMUブリッジ接続はBridgeモードとTAPモードの両方で実現できます。
ここではUbuntu 17.04 LiveのQEMU環境でQEMU仮想マシンをホスト(Ubuntu 17.04 Live実機)側の物理ネットワークと同じネットワークアドレス体系にするTAPモードでの「QEMUブリッジ接続」手順を紹介します。
尚、ここで紹介する手順はUbuntu 17.04系全般(Ubuntu MATE 17.04等)やUbuntu 17.10系全般でもそのまま使用できます。
1.マシン環境
sudo apt-get install -y qemu bridge-utils |
cat /etc/network/interfaces ※以下の3行だけの内容になっています
|
sudo apt-get install -y net-tools |
sudo sh -c "echo 'auto enp5s0'>>/etc/network/interfaces" sudo sh -c "echo 'iface enp5s0 inet manual'>>/etc/network/interfaces" sudo sh -c "echo 'iface br0 inet dhcp'>>/etc/network/interfaces" sudo sh -c "echo 'bridge_ports enp5s0'>>/etc/network/interfaces" /etc/network/interfacesへの上記以外の設定追加は省略可能です(bridge_maxwaitオプションを指定しない場合、ブリッジが利用可能になるまでの最大待ち時間は32秒となります) cat /etc/network/interfaces # interfaces(5) file used by ifup(8) and ifdown(8) auto lo iface lo inet loopback auto enp5s0 iface enp5s0 inet manual auto br0 iface br0 inet dhcp bridge_ports enp5s0 |
sudo ifup br0 |
sudo ifconfig br0 192.168.0.170 netmask 255.255.255.0 sudo route add default gw 192.168.0.1 br0 |
sudo service networking restart sudo ifup br0 |
sudo sh -c "echo 'u1704live'>/etc/hostname" cat /etc/hostname sudo hostname u1704live sudo sh -c "echo '192.168.0.170 u1704live'>>/etc/hosts" cat /etc/hosts |
#!/bin/sh /sbin/ifconfig $1 0.0.0.0 promisc up /usr/sbin/brctl addif br0 $1 |
echo '#!/bin/sh'>./myqemubr-ifup echo '/sbin/ifconfig $1 0.0.0.0 promisc up'>>./myqemubr-ifup echo '/sbin/brctl addif br0 $1'>>./myqemubr-ifup cat myqemubr-ifup sudo cp ./myqemubr-ifup /etc/myqemubr-ifup sudo chmod 755 /etc/myqemubr-ifup |
sudo sh -c "echo '#'\!'/bin/sh'>/etc/myqemubr-ifup" sudo sh -c "echo '/sbin/ifconfig $1 0.0.0.0 promisc up'>>/etc/myqemubr-ifup" sudo sh -c "echo '/sbin/brctl addif br0 $1'>>/etc/myqemubr-ifup" cat /etc/myqemubr-ifup sudo chmod 755 /etc/myqemubr-ifup |
sudo qemu-system-x86_64 -net nic,model=ne2k_pci -net tap,ifname=tap0,script=/etc/myqemubr-ifup 他のパラメタ ※model値は任意です。 ※TAPのインターフェース名はゲストOSの種類に関係なくtap0以外にtap1やtap2等も指定できます(tap2の指定例)。 |
qemu-img create -f qcow2 qu1704.qcow2 4G ※ここで作成されるqu1704.qcow2は196,672バイトとなります。 |
sudo qemu-system-x86_64 -cpu core2duo -m 2048 -hda qu1704.qcow2 -cdrom /dev/sr0 -boot order=d -k ja -net nic,model=ne2k_pci -net tap,ifname=tap0,script=/etc/myqemubr-ifup |
sudo apt-get install -y kvm sudo apt-get install -y libvirt-bin sudo userdel -r libvirt-qemu sudo apt-get install -y virt-manager passwd sudo passwd root ※rootユーザでGUIログインする場合は必須 |
sudo ifconfig br0 192.168.0.170 netmask 255.255.255.0 sudo route add default gw 192.168.0.1 br0 |
sudo ifconfig br0 192.168.0.170 netmask 255.255.255.0 |
sudo route add default gw 192.168.0.1 br0 |
pulseaudio: pa_context_connect() failed pulseaudio: Reason: Connection refused pulseaudio: Failed to initialize PA contextaudio: Could not init `pa' audio driver |
#!/bin/bash cd sudo apt-get update sudo apt-get install -y qemu bridge-utils sudo apt-get install -y net-tools sudo cp /etc/network/interfaces /etc/network/interfaces.back sudo sh -c "echo 'auto enp5s0'>>/etc/network/interfaces" sudo sh -c "echo 'iface enp5s0 inet manual'>>/etc/network/interfaces" sudo sh -c "echo 'iface br0 inet dhcp'>>/etc/network/interfaces" sudo sh -c "echo 'bridge_ports enp5s0'>>/etc/network/interfaces" cat /etc/network/interfaces sudo ifup br0 sudo ifconfig br0 192.168.0.170 netmask 255.255.255.0 sudo route add default gw 192.168.0.1 br0 sudo sh -c "echo 'u1704live'>/etc/hostname" cat /etc/hostname sudo hostname u1704live sudo sh -c "echo '192.168.0.170 u1704live'>>/etc/hosts" cat /etc/hosts echo '#!/bin/sh'>./myqemubr-ifup echo '/sbin/ifconfig $1 0.0.0.0 promisc up'>>./myqemubr-ifup echo '/sbin/brctl addif br0 $1'>>./myqemubr-ifup cat myqemubr-ifup sudo cp ./myqemubr-ifup /etc/myqemubr-ifup sudo chmod 755 /etc/myqemubr-ifup |
cd cp /media/ubuntu/.../u1704livebr0.sh ./ chmod 755 u1704livebr0.sh ./u1704livebr0.sh |