mieki256's diary



2021/11/08(月) [n年前の日記]

#1 [ubuntu][linux] QEMU+KVMを少し触ってた

Ubuntu Linux 20.04 LTS x64 をインストールしてあるサブPC(CPU: AMD A8-3850)上で、仮想マシン QEMU + KVM を少しだけ触ってた。

参考ページ。 :

KVM が使える状態か調べる。 :

cpu-checker というパッケージをインストールすると、kvm-ok というツールが使えるようになるらしい。これで KVM が利用できる環境かどうかを確認できる。

sudo apt install cpu-checker
$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

CPU情報その他を調べていくことでも確認できる模様。

$ lscpu | grep -Ei "(vt-x|amd-v)"
仮想化:                              AMD-V

$ grep -E "(vmx|svm)" /proc/cpuinfo
flags: ... svm ... svm_lock ...

$ lsmod | grep kvm
kvm_amd                98304  0
ccp                    86016  1 kvm_amd
kvm                   663552  1 kvm_amd

AMD A8-3850 も、一応 KVM を使えるようだなと…。古いCPUだから無理かなと思ったけど大丈夫そう。

必要なパッケージをインストール。 :

各ページを参考にして色々インストール。何がどういうパッケージなのかは把握してない…。

sudo apt install qemu-kvm qemu libvirt-clients libvirt-daemon-system libvirt-daemon virtinst bridge-utils libguestfs-tools virt-top virt-manager virt-viewer
sudo apt install qemu-system qemu-system-arm

念のために再起動。
sudo reboot

サービスとして動いてるか確認。Active になっていればいいらしい。
$ sudo systemctl is-active libvirtd
active

or 

$ systemctl status libvirtd

グループに追加。 :

自分のアカウントを、kvmグループ、libvirtグループ、libvirt-qemuグループに追加。

今回、libvirt には既に追加されていて、kvm、libvirt-qemu の追加だけをすれば良かった。
$ sudo gpasswd -a $(whoami) libvirt
$ sudo gpasswd -a $(whoami) kvm
$ sudo gpasswd -a $(whoami) libvirt-qemu

or 

$ sudo adduser `id -un` libvirt
$ sudo adduser `id -un` kvm
$ sudo adduser `whoami` libvirt-qemu

グループに追加されているか確認。
$ groups $(whoami)

ブリッジ接続とやらを追加。 :

巷の記事を眺めるとブリッジ接続を追加してる場合が多いので一応追加してみる。ただ、後述するけど、結局このブリッジ接続とやらは使わなかった。

_KVMのインストールと仮想ブリッジの作成 | Server-bff.net
_Ubuntu 20.04へKVMのインストールと、bridge接続の構成 - Symfoware

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
...
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
...
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
...
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
...
5: vmnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
...
6: vmnet8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
...

今回の環境では、enp1s0 というのがNICにつけられた名前らしい。

netplan なるものの設定をして、ブリッジ接続とやらを増やす。

オリジナルの設定ファイルをバックアップ。
$ cd /etc/netplan/

$ ls -al
合計 20
drwxr-xr-x   2 root root  4096  8月  6  2019 .
drwxr-xr-x 187 root root 12288 11月  8 05:43 ..
-rw-r--r--   1 root root   104  8月  6  2019 01-network-manager-all.yaml

$ sudo cp /etc/netplan/01-network-manager-all.yaml /etc/netplan/01-network-manager-all.yaml.orig

設定ファイルを編集。
sudo vi /etc/netplan/01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system
network:
  ethernets:
    enp1s0:
      dhcp4: yes
      dhcp6: yes
  bridges:
    br0:
      interfaces: [enp1s0]
      dhcp4: yes
      dhcp6: yes
  version: 2
#  renderer: NetworkManager

設定を反映。
$ sudo netpaln apply

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
...
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
...
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
...
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
...
5: vmnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
...
6: vmnet8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
...
7: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
...

br0 が追加された。

しかし、OSを再起動したら、vmnet* が消滅した…。これはよろしくない気がする…。

設定ファイル、/etc/netplan/01-network-manager-all.yaml の内容を元に戻すことにした。
$ sudo vi /etc/netplan/01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager

仮想マシンを作成できない。 :

デスクトップ上で仮想マシンマネージャを起動して、仮想マシンを新規作成しようとしたけれど、Debian 11 bullseye や Ubuntu 18.04 LTS のインストール用isoを指定しても次に進めない…。OSの種類を自動検出せずに Generic と打ち込んで選ばないといかんらしい。

仮想ディスクの作成でもハマった。容量を指定するだけではダメで、手動で保存場所を作成しないといかんようだなと…。/var/lib/libvirt/images/ 以下に仮想ディスクイメージを作成した。今回は /var/lib/libvirt/images/Ubuntu1804/ubuntu1804.qcow2 を作成。

ゲストOSが動かない。 :

ゲストOSとして Ubuntu Linux 18.04 LTS をインストールしてみたけれど、起動時のスプラッシュ画面?のまま次の画面に移行しない…。処理が遅くて時間がかかっているのか、それとも無限ループに陥っているのか…。

アンインストールした。 :

せっかくインストールしたゲストOSも起動しないし、そもそも QEMU + KVM を今後使うかどうかも微妙な気がしてきたので、アンインストールしておいた。

$ sudo apt purge qemu-kvm qemu libvirt-clients libvirt-daemon-system libvirt-daemon virtinst bridge-utils libguestfs-tools virt-top virt-manager virt-viewer qemu-system qemu-system-arm

$ sudo apt autoremove

以下の警告が出てきた。
dpkg: 警告: libvirt-daemon-system の削除中、ディレクトリ '/var/lib/libvirt/qemu' が空でないため削除できませんでした
dpkg: 警告: libvirt-daemon-system の削除中、ディレクトリ '/var/lib/libvirt/images' が空でないため削除できませんでした
dpkg: 警告: libvirt-daemon-system の削除中、ディレクトリ '/etc/libvirt' が空でないため削除できませんでした

OS再起動後、手作業で各フォルダを削除。

以上です。

過去ログ表示

Prev - 2021/11 - Next
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project