====== インストール方法 ====== - 必要なパッケージをインストールする。\\ $ sudo apt install qemu-kvm virt-manager gir1.2-spiceclientgtk-3.0 spice-vdagent libvirt0 libvirt-bin firewalld ebtables * ''spice-vdagent'' は、ホストとゲストのクリップボードを共有するために必要 ([[https://wiki.archlinux.jp/index.php/QEMU#.E3.82.B0.E3.83.A9.E3.83.95.E3.82.A3.E3.83.83.E3.82.AF | QEMU - ArchWiki]])。 * ''gir1.2-spiceclientgtk-3.0'' は 16.04 とパッケージ名が微妙に違うので注意。 * 18.04 から、''firewalld''、''ebtables'' が必要になったらしい。これらのパッケージがないと、ゲスト OS からネットワークに接続できず virbr0 ができず、virt-manager 上では、''NAT (停止)'' 状態になる。 * [[https://www.systutorials.com/241665/cannot-start-vm-with-error-no-network-with-matching-name-default/ | Cannot start VM with error "no network with matching name 'default'" - SysTutorials]] * 余談だが、上記とは別に virbr0 が何らかの原因で生成されないときに手動で作成する方法は、下の節を参照。 - 自動的に仮想 PC サービスを使えるようにする。\\ $ sudo systemctl enable libvirtd.service - サービスを起動する。\\ $ sudo systemctl start libvirtd.service * サービスが起動していないと仮想マシンマネージャがうまく起動できない。 - GUI の仮想マシンマネージャを起動する。\\ $ virt-manager - GUI の仮想マシンマネージャが起動する。 - `ファイル` → `新しい仮想マシン` をクリックして、設定ウィザードを起動する。 - Step 1 * `既存のディスクイメージをインポート` を選択する。 - Step 2 * 既存のストレージパス: ''Windows.img'' * OS の種類: ''Windows'' * バージョン: ''Microsoft Windows 10'' - Step 3 * メモリー: ''2048'' * CPU: ''2'' - Step 4 * 名前: ''Windows'' * ネットワークの選択: ''仮想ネットワーク default: NAT'' - ゲスト OS が外部に接続できるようにする。 * ''/etc/sysctl.conf'' を編集する。\\ $ sudoedit /etc/sysctl.conf# net.ipv4.ip_forward=1net.ipv4.ip_forward=1 に変更する。 * 再起動するか、以下のコマンドを実行する。\\ $ sudo sysctl -p - ファイアウォールの設定をして、インターネットへの接続と、ホストとゲストでファイルのやり取りをできるようにする。 - インターネットと接続できるようにする。\\ $ firewall-cmd --zone=public --add-masquerade --permanent * [[https://qiita.com/T_Shinaji/items/b3ba400feb3c6adebd27 | firewalld初心者のメモ - Qiita]] - 有効なサービスを確認する。\\ $ firewall-cmd --list-services * samba が入っていないことを確認 - samba を追加する。\\ $ firewall-cmd --add-service=samba $ firewall-cmd --permanent --add-service=samba * [[http://d.hatena.ne.jp/superstring04/20130814/1376512931 | Fedoraの新しいファイアウォールでSambaを使用可能にする - 公的内省]] ====== インストール時にブリッジネットワークが生成されなかった場合の対処 ====== * 症状: * 以下のコマンドを実行した際に ''virbr0'' などが見当たらない\\ $ ip a * 仮想マシンマネージャ (''virt-manager'') の ''編集'' → ''接続の詳細'' の''仮想ネットワーク''タブ内のネットワークの状態が ''停止'' になっている。 * 原因: ''firewalld'' や ''ebtable'' などを同時にインストールしなかった。 * 対策: 仮想マシンマネージャ (''virt-manager'') を一度終了して、以下のコマンドを実行、上記パッケージをインストールした後、有効化する。\\ $ sudo apt install ebtables dnsmasq firewalld $ sudo systemctl start firewalld $ sudo systemctl enable firewalld $ sudo systemctl restart libvirtd * 参考サイト: * [[https://superuser.com/questions/1063240/libvirt-failed-to-initialize-a-valid-firewall-backend | networking - libvirt: "Failed to initialize a valid firewall backend" - Super User]] * [[https://wiki.libvirt.org/page/Networking | Networking - Libvirt Wiki]] ====== その他 ====== * dnsmasq がインストールされていれば、virtbr0 を介してネットワークを利用できるので、firewalld をアンインストールしても問題ない。 * 参考サイト: [[https://gihyo.jp/admin/serial/01/ibm_kvm/0003 | 第3回 KVMのネットワーク構成:KVMで始めるプライベート・クラウドへの第一歩|gihyo.jp … 技術評論社]]