QEMU(Quick EMUlator) ソフトウエア技術で特定ハードウエア環境を提供するエミュレーションソフト。
CentOS だと yum で仮想環境を簡単に構築できるのだが、やっぱり土台の仮想化部分は最新アプリを使いたいので、
ここではコンパイルして用意することにします。
VirtualBoxからQEMUへQEMU/VirtualBox
母体はCentOS7です
QEMU本体 をインストールする。本家様 http://wiki.qemu.org/Main_Page
最新ソースを入手して、コンパイルするので開発環境はインストール済みとします。っが、zlib-devel glib2-develを別途インストール
[root@c ~]# yum install zlib-devel glib2-devel pixman-devel
[root@c ~]# mkdir -p /opt/src && cd /opt/src
[root@c src]# curl -O https://download.qemu.org/qemu-4.0.0.tar.xz
[root@c src]# xz -cd qemu-4.0.0.tar.xz | tar xf - && chown -R root:root qemu-4.0.0 && cd $_
[root@c qemu-4.0.0]# ./configure --target-list=x86_64-softmmu --prefix=/opt/qemu-4.0.0
[root@c qemu-4.0.0]# make && make check && make install
[root@c qemu-4.0.0]# (cd /opt && rm -f qemu && ln -s qemu-4.0.0 qemu)
「--target-list」の指定で、システムモードで動く仮想マシン(?)とかユーザモードで動くマシンを作れる。モードの違いは母体にアクセスできる範囲。ユーザモードだと特権で使いないデバイスとかがあるみたい。「x86_64-softemu」はシステムモード向けの「qemu-system-x86_64」を作り、「x86_64-linux-user」はユーザモードな「qemu-x86_64」を作る
今後updateしても同じパスを使うために
[root@c ]# (cd /usr/bin; ln -sv /opt/qemu/bin/* . )
`./ivshmem-client' -> `/opt/qemu/bin/ivshmem-client'
`./ivshmem-server' -> `/opt/qemu/bin/ivshmem-server'
`./qemu-ga' -> `/opt/qemu/bin/qemu-ga'
`./qemu-img' -> `/opt/qemu/bin/qemu-img'
`./qemu-io' -> `/opt/qemu/bin/qemu-io'
`./qemu-nbd' -> `/opt/qemu/bin/qemu-nbd'
`./qemu-system-x86_64' -> `/opt/qemu/bin/qemu-system-x86_64'
[root@c ]# (cd /usr/libexec; ln -sv /opt/qemu/libexec/* . )
`./qemu-bridge-helper' -> `/opt/qemu/libexec/qemu-bridge-helper'
[root@c ]# (cd /usr/share; ln -sv /opt/qemu/share/qemu . )
`./qemu' -> `/opt/qemu/share/qemu'
[root@c ]#
これでインストールは完了
デーモンではないので自動起動らはありません
下記にてその一覧が表示されます。
[root@c ~]# qemu-system-x86_64 -machine help
Supported machines are:
pc Standard PC (i440FX + PIIX, 1996) (alias of pc-i440fx-4.0)
pc-i440fx-4.0 Standard PC (i440FX + PIIX, 1996) (default)
:
q35 Standard PC (Q35 + ICH9, 2009) (alias of pc-q35-4.0)
:
[root@c ~]#
参照先 https://qiita.com/st10/items/dbe6fa9c20a61af690ba
apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst libosinfo-bin virt-manager
「/etc/netplan/01-network-manager-all.yaml」の中身が
network:
version: 2
renderer: NetworkManager
ならdesktop版でしてnmtuiでbr0を作ってその中に物理nicを加える. ipも物理nicのipを付ける.
server版なら「/etc/netplan/」のファイルを直接いじって「netplan apply」を実行する
network:
ethernets:
enp0s31f6:
dhcp4: false
dhcp6: false
bridges:
br0:
interfaces:
- enp0s31f6
dhcp4: false
addresses:
- 192.168.1.4/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 192.168.1.1
search: []
version: 2
root@ubuntu:~# ip a
:
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000
link/ether 00:0c:29:a2:19:2d brd ff:ff:ff:ff:ff:ff
altname enp3s0
:
6: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:a2:19:2d brd ff:ff:ff:ff:ff:ff
inet 192.168.0.68/24 brd 192.168.0.255 scope global dynamic noprefixroute br0
valid_lft 42959sec preferred_lft 42959sec
root@ubuntu:~#
root@ubuntu:~# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000c29a2192d yes ens160
virbr0 8000.525400229ee5 yes virbr0-nic
root@ubuntu:~#
あとは「virt-manager」で構築