仮想化 · 2 min read · Dec 14, 2025

Manjaro/ArchlinuxにKVM/QEMUをインストールする方法

KVMKernel-based Virtual Machineの略で、Linuxカーネルモジュールに基づく仮想化のための技術ソリューションです。KVMは、ハードウェア仮想化拡張Intel VTまたはAMD-VをサポートするLinux x86マシン上で動作するオープンソースのソフトウェアソリューションです。KVMカーネルモジュールは、バージョン2.6.20以降のLinuxカーネルに搭載されており、FreeBSDやIllumosなどの他のオペレーティングシステムにもポートされています。

KVM技術は、Linuxマシンをハイパーバイザー仮想化に変換し、ホストマシンと呼ばれます。ホストマシン上では、仮想マシン(VM)と呼ばれる複数の隔離されたシステムを作成できます。各仮想マシンは独自のシステム(Linux、Windows、またはBSDなど)を持ち、メモリ、CPU、ネットワークカード、ディスク、グラフィックなどのプライベートな仮想化ハードウェアも持っています。

QEMUとは?

QEMUまたはQuick Emulatorは、ハードウェア仮想化のためのオープンソースのシステムエミュレーターおよび仮想化ツールです。一般的に、仮想マシンを実行するためにKVMカーネルモジュールと共に仮想化ツールとして使用されます。ゲストマシン/仮想マシンのパフォーマンスを向上させるために、Intel VTやAMD-Vなどのハードウェア仮想化拡張を活用します。QEMU/KVM仮想化は、主にデータセンターでハイパーバイザーとして使用されます。

このガイドでは、Manjaro/ArchlinuxマシンでKVM/QEMU仮想化を設定する方法を学びます。また、仮想マシンを管理するためのデスクトップユーザーインターフェースであるGUIアプリケーション「virt-manager」を使用して最初の仮想マシンを作成する方法も学びます。

前提条件

  • x86または64ビットアーキテクチャを持つManjaro/Archlinux。
  • 仮想化サポート(Intel VTまたはAMD-V)を持つCPU/プロセッサ。
  • sudoルート権限を持つ非ルートユーザー。

システムアーキテクチャとCPU仮想化サポートの確認

まず、マシンのアーキテクチャとIntel CPU用の仮想化アクセラレーションIntel VTおよびAMD CPU用のAMD-Vのハードウェアサポートを確認します。

  1. 次のコマンドを実行して、システムのアーキテクチャを確認します。
uname -m

次のような出力が得られます。

Linux machine1 5.4.134-1 #1 SMP PREEMPT Tue Jul 06 08:10:03 UTC 2021 x86_64 GNU/Linux

ご覧のとおり、現在「x86_64」または「64ビット」アーキテクチャのLinuxシステムを使用しており、カーネルバージョンは「5.4」です。

  1. 次に、次のコマンドを実行してハードウェア仮想化サポートを確認します。
sudo lscpu | grep Virtualization

Intelプロセッサの場合、次のような出力が表示されます。

Virtualization:                  VT-x

AMDプロセッサの場合、以下のような出力が表示されます。

Virtualization:                  AMD-V
  1. オプションとして、次のコマンドを使用してマシンでネストされた仮想化を有効にできます。
sudo modprobe -r kvm_intel  
sudo modprobe kvm_intel nested=1

その後、次のコマンドを実行してネストされた仮想化を確認します。

cat /sys/module/kvm_intel/parameters/nested

出力が「Y」または「1」の場合、ネストされた仮想化機能が有効になっています。そうでない場合は、「そのようなファイルやディレクトリはありません」というエラーメッセージが表示されます。

QEMUおよびVirt-Managerパッケージのインストール

  1. qemuおよびvirt-managerパッケージをインストールするには、以下のコマンドを実行します。
sudo pacman -S qemu virt-manager libvirt virt-viewer dnsmasq vde2 bridge-utils openbsd-netcat ebtables libguestfs

manjaroシステムでは、「iptables」と「ebtables」の間にパッケージの競合があります。「y」と入力して、デフォルトのiptablesパッケージを削除し、「ebtables」および「nftables」に置き換えます。

以下は、知っておくべき重要なパッケージです:

  • qemu: オープンソースのマシンエミュレーターおよび仮想化ツール。
  • virt-manager; 仮想マシンを管理するためのGUIアプリケーション。
  • libvirt: KVM、QEMUなどの仮想化エンジンを制御するためのAPI。
  • dnsmasq: 軽量DNSフォワーダーおよびDHCPサーバー。
  • bridge-utils: Linuxイーサネットブリッジを構成するためのユーティリティ。
  • libguestfs: 仮想マシン(VM)ディスクイメージを変更するためのツールセット。
  1. 次に、以下のコマンドを使用してlibvirtdサービスを開始および有効にします。
sudo systemctl enable --now libvirtd

次のような出力が得られます。

Created symlink /etc/systemd/system/multi-user.target.wants/libvirtd.service → /usr/lib/systemd/system/libvirtd.service.  
Created symlink /etc/systemd/system/sockets.target.wants/virtlockd.socket → /usr/lib/systemd/system/virtlockd.socket.  
Created symlink /etc/systemd/system/sockets.target.wants/virtlogd.socket → /usr/lib/systemd/system/virtlogd.socket.  
Created symlink /etc/systemd/system/sockets.target.wants/libvirtd.socket → /usr/lib/systemd/system/libvirtd.socket.  
Created symlink /etc/systemd/system/sockets.target.wants/libvirtd-ro.socket → /usr/lib/systemd/system/libvirtd-ro.socket.
  1. その後、以下のコマンドを実行してlibvirtdサービスの状態を確認します。
sudo systemctl status libvirtd

次のような出力が得られます。libvirtdサービスがアクティブで実行中であることが確認できます。

? libvirtd.service - Virtualization daemon  
     Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; disabled; vendor preset: disabled)  
     Active: active (running) since Fri 2021-07-23 10:33:25 UTC; 6s ago  
TriggeredBy: ? libvirtd-ro.socket  
             ? libvirtd.socket  
             ? libvirtd-admin.socket  
       Docs: man:libvirtd(8)  
             https://libvirt.org  
   Main PID: 16828 (libvirtd)  
      Tasks: 19 (limit: 32768)  
     Memory: 16.4M  
        CPU: 226ms  
     CGroup: /system.slice/libvirtd.service  
             ??16828 /usr/bin/libvirtd --timeout 120

非ルートユーザーにKVM/QEMU仮想化を使用させる

デフォルトでは、ユーザー「root」だけが仮想マシンを作成および管理できます。非ルートユーザーが仮想マシンを作成および管理できるようにするには、以下のlibvirtd設定に従う必要があります。

  1. 以下のコマンドを実行してlibvirtd設定を編集します。
sudo nano /etc/libvirt/libvirtd.conf

オプション「unix_sock_group」のコメントを外し、グループ名を「libvirt」として入力します。

# Set the UNIX domain socket group ownership. This can be used to  
# allow a 'trusted' set of users access to management capabilities  
# without becoming root.  
#  
# This setting is not required or honoured if using systemd socket  
# activation.  
#  
# This is restricted to 'root' by default.  
unix_sock_group = "libvirt"

その後、オプション「unix_sock_rw_perms」のコメントを外し、パーミッションをデフォルトの「0770」のままにします。

# Set the UNIX socket permissions for the R/W socket. This is used  
# for full management of VMs  
#  
# This setting is not required or honoured if using systemd socket  
# activation.  
#  
# Default allows only root. If PolicyKit is enabled on the socket,  
# the default will change to allow everyone (eg, 0777)  
#  
# If not using PolicyKit and setting group ownership for access  
# control, then you may want to relax this too.  
unix_sock_rw_perms = "0770"

設定を保存するには、Ctrl+xボタンを押し、yと入力してからenterを押します。

  1. 次に、以下のコマンドを使用してユーザーを「libvirt」グループに追加します。
sudo usermod -a -G libvirt username
  1. その後、新しい設定を適用するためにlibvirtdサービスを再起動します。
sudo systemctl restart libvirtd

これで、「libvirt」グループ内のすべてのユーザーが仮想マシンを作成および構成できるようになります。

virt-managerでQEMU/KVMインストールを確認する

アプリケーション「virt-manager」をアプリケーションメニューから開きます。

  1. virt-managerアプリケーションでメニュー「Edit -> Connection Details」をクリックします。

QEMU/KVMの接続詳細を確認

  1. タブ「Overview」では、virt-managerが自動的に「qemu:///system」に接続することがわかります。

virt-managerがシステム内のQEMU/KVMに自動的に接続します

  1. タブ「Virtual Networks」に移動すると、「default」ネットワーク構成が表示されます。
  • インターフェース: virbr0
  • ブート時の自動起動: はい
  • IPアドレス: 192.168.122.0/24
  • DHCP IPアドレスの範囲: 192.168.122.2 - 192.168.122.254
  • ネットワークタイプ: NAT

NATを使用したQEMU/KVMのデフォルトネットワーク構成

  1. 次に、タブ「Storage」に移動すると、「default」プールストレージ構成が表示されます。
  • タイプ: ファイルシステムディレクトリ
  • サイズ: ディスクに依存
  • ロケーション: /var/lib/libvirt/images
  • ブート時の自動起動: はい

すべての仮想マシンイメージは、このデフォルトストレージ「/var/lib/libvirt/images」に利用可能です。

デフォルトのQEMU/KVMストレージ

  1. 次に、ボタン「+」をクリックしてISOイメージファイル用の新しいプールストレージを作成します。すべてのISOファイルオペレーティングシステムはこのプールで利用可能になります。

以下のストレージ構成に従ってください。

  • 名前: ISO
  • タイプ: dir: ファイルシステムディレクトリ
  • ターゲットパス: /path/directory/to/your/iso/

オペレーティングシステム用のISOファイルの新しいストレージを作成

Finish」ボタンをクリックしてプロセスを完了します。その後、新しい仮想マシンを作成する準備が整いました。

virt-managerを使用して新しい仮想マシンを作成する

  1. virt-managerアプリケーションで、ボタン「+」をクリックして新しい仮想マシンを作成します。

virt-managerで新しい仮想マシンを作成

  1. インストール用のISOイメージを使用するために「Local install media」を選択し、「Forward」ボタンをクリックして続行します。

ローカルメディアISOタイプのインストールを選択

  1. Browse」ボタンをクリックしてISOファイルを選択します。

インストールしたいISOオペレーティングシステムをブラウズ

プールストレージ「ISO」を選択し、インストール用のISOファイル(この例では「Debian 10」)を選択し、「Choose Volume」をクリックします。

インストール例としてOS ISOファイルを選択Debian 10

オプション「Automatically detect from the installation media/source」のチェックを外し、インストールしたいオペレーティングシステムの名前を入力します(この例では「Debian 10」)、その後再度「Forward」ボタンをクリックして続行します。

インストールしたいオペレーティングシステムのタイプを選択

  1. 仮想マシンのメモリとCPUの量を選択し、「Forward」をクリックします。

仮想マシンのメモリとCPU構成

  1. 仮想マシンのディスクサイズを選択し、「Forward」をクリックします。

仮想マシンのディスクサイズを選択

  1. 設定を再確認し、「Finish」ボタンをクリックしてインストールを開始します。

仮想マシンを作成してインストールすることを確認

  1. 現在、仮想マシンはQEMU/KVM仮想化で稼働しており、OSのインストールを続行できます。

仮想マシンはQEMU/KVM仮想化で稼働しています

結論

おめでとうございます!Manjaro/ArchlinuxマシンでQEMU/KVM仮想化を設定する方法を学びました。また、仮想マシンを作成するためのvirt-managerアプリケーションの使用方法も学びました。これで、好みのオペレーティングシステムで仮想マシンを作成できます。他のLinuxディストリビューション、Windows、またはBSDファミリーのOSを使用できます。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。