====== libvirt+qemu+KVM ======
===== 概要 =====
* VirtualBox や VMWare のように仮想 PC を実行する環境。
* KVM は Linux のカーネルモジュールであるため、Linux 環境 (ホスト) でしか使えない。
* VirtualBox や VMWare と異なり、仮想 CPU や仮想 I/O などを ''libvirt''、''KVM''、''qemu'' がそれぞれ担当している。
* ''libvirt'': 仮想マシン管理ツール (仮想 PC のリスト表示や仮想 PC の起動・停止など)
* ''KVM'': 仮想化支援モジュール。仮想ハードウェアを提供するツール。
* ''qemu'': CPU や、ネットワーク及びビデオデバイスなどのエミュレータ。
* 参考サイト:
* [[https://qiita.com/saikoro-steak/items/05c88fdc385712ccce89 | KVMの仕組み - Qiita]]
* [[http://zacodesign.net/blog/?p=1393 | 【仮想化】KVMとqemuとlibvirtの違い・関係 – ZacoDesign]]
* [[http://archlinux-blogger.blogspot.com/2016/02/qemukvm-libvirt.html | QEMU/KVM, libvirtのインストールと設定 | 普段使いのArch Linux]]
* libvirt+qemu+KVM はインストールの手順が少々多いが、一度インストールすると、VirtualBox や VMWare と遜色なく使える。
* ここでは Ubuntu 16.04 相当の環境で、libvirt+qemu+KVM を構築する手順を紹介する。
===== インストール =====
* [[ツール/libvirt_qemu_kvm/Ubuntu_16.04|Ubuntu 16.04]]
* [[ツール/libvirt_qemu_kvm/Ubuntu_18.04|Ubuntu 18.04]]
* Ubuntu 20.04\\
$ sudo apt install qemu-kvm virt-manager gir1.2-spiceclientgtk-3.0 spice-vdagent libvirt0
===== 既存イメージファイルの変換 =====
* これまで使っていた仮想 PC イメージ (''Windows.vmdk'') の変換について。
- 必要パッケージをインストールする。\\ $ sudo apt install qemu-utils
- 変換する。\\ $ qemu-img convert -p -f vmdk -O raw Windows.vmdk Windows.img
* [[http://blog.kenichimaehashi.com/?article=13515946480 | VMware のディスクイメージ (VMDK) を KVM (qemu) で使えるように変換する - Kenichi Maehashi's Blog]]
===== バックアップ&リストア =====
* [[https://mseeeen.msen.jp/backup-and-restore-virtual-image-for-kvm/ | KVMの仮想イメージをバックアップ・リストアする方法]]
===== その他の設定 =====
==== フォルダの共有 ====
* ホストマシンとゲストマシンの間でフォルダを共有する方法
- ホスト (LinuxMint) 上に Samba をインストールする。
- 共有したいフォルダを Samba で共有状態にしておく。
- ゲスト (Windows) 上で、エクスプローラから ''\\ホスト名'' で共有設定したフォルダが表示される。
- 表示されたフォルダを右クリックし、''ネットワークドライブの割当'' から、ネットワークドライブの設定をする。
* [[https://support.microsoft.com/ja-jp/help/4026635/windows-map-a-network-drive | ネットワーク ドライブの割り当て]]
* ネットワークドライブ上のファイルを実行したい場合には、Samba の設定で、''acl allow execute always = Yes'' を ''global'' なり、個別のフォルダの設定なりに記述しておく必要がある。
* [[http://www.katsuster.net/index.php?arg_act=cmd_show_diary&arg_date=20150930&arg_range=1&arg_direction=0 | コグノスケ]]
* [[https://www.upken.jp/kb/samba-share-execute.html | Samba4 の共有フォルダーにあるアプリケーションが起動できない事象の対処]]
* [[https://unix.stackexchange.com/questions/188721/execute-a-exe-on-a-samba-share | permissions - Execute a .exe on a samba share - Unix & Linux Stack Exchange]]
* Ubuntu 18.04 相当の場合は、Firewalld の設定も忘れないように (詳しくは [[ツール/libvirt_qemu_kvm/Ubuntu_18.04|Ubuntu 18.04 のインストール方法]] を参照)。
==== ディスクの高速化 ====
* [[https://qiita.com/flny/items/2ae2053ef64a78e95856#virtio%E3%82%92%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B | KVM 上の Windows7 をチューニングする - Qiita]]
==== KVM の操作コマンド ====
* [[https://qiita.com/TsutomuNakamura/items/22d9d2629a8eb9360865 | VirshコマンドによるKVMゲストOSの管理 - Qiita]]
==== Windows ゲストで解像度や音を良くする ====
* [[http://bluearth.cocolog-nifty.com/blog/2017/12/windows10-qxl-s.html | ゲストOS - Windows10 〜 QXLドライバー や SPICE agent とか: 個人的健忘録 from 2013]]
* [[https://sites.google.com/site/hymd3a/linux/kvm-spice | kvm+spiceでゲストのサウンドを聞く - ひゃまだのブログ]]
==== クリップボードを共有する ====
- [[https://www.spice-space.org/download.html | SPICE - Download]] の ''Guest'' → ''Windows binaries'' から ''Windows guest tools'' をダウンロードする。
- Guest (Windows) 側でインストールする。
==== ゲスト側のネットワーク固定 ====
* [[https://kana-linux.info/linux/kvm%E3%81%ABdhcp%E3%81%A7%E5%9B%BA%E5%AE%9Aip%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B | KVMにDHCPで固定IPを設定する | ITのおもちゃ箱]]
===== その他の情報 =====
* XML が格納されているディレクトリ: ''/etc/libvirt/qemu/''
* キーマップファイルが格納されているディレクトリ: ''/usr/share/qemu/keymaps''