1 views
実現する機能
KVM(Kernel-based Virtual Machine) (ケーブイエム) は仮想化ソフトです。Windowsを搭載していたパソコンが壊れたので、サーバー機でCentOSとWindowsを同時に動かして使っています。動画ファイルの変換にはWindowsが不可欠ですからね。さらには、CentOSのテスト環境を構築し、危ないソフトを試したりしています。欠点は、周辺機器が使えない点です。CentOS 7.0からはDVDドライブが認識されなくなったので、Windows7のインストールDVDをイメージコピーしてインストールを実施しました。
※KVMを導入するためには、パソコンのプロセッサが「Intel VT」か「AMD-V」のどちらかでないと動作しません。
KVMの導入手順
(1)自宅サーバーが仮想化できるか確認
[root@ufuso ~]# egrep '(vmx|svm)' /proc/cpuinfo ← 自宅サーバーがKVMで仮想化でき るPCか調べる flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good nopl extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv ← svm(Intelならvmx)とあるのでOK。 flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good nopl extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv ← svm(Intelならvmx)とあるのでOK。 [root@ufuso ~]# lsmod | grep kvm ← kvmモジュールがロードされているか確認 ← 何も表示されないので、ロードされていない [root@ufuso ~]# modprobe kvm ← 必要なモジュールを組み込む [root@ufuso ~]# modprobe kvm_amd ← AMD用モジュールの組込。INTEL用だとkvm_intel [root@ufuso ~]# lsmod | grep kvm ← モジュールが組み込まれたか確認 kvm_amd 59987 0 kvm 441119 1 kvm_amd ← ロードされている |
(2)KVMのインストール
[root@ufuso ~]# yum -y install qemu-kvm libvirt virt-install bridge-utils virt-manager ← kvmとlibvirt をインストール パッケージ 10:qemu-kvm-1.5.3-60.el7_0_0.2.x86_64 はインストール済みか最新バージョンです パッケージ bridge-utils-1.5-9.el7.x86_64 はインストール済みか最新バージョンです インストール: libvirt.x86_64 0:1.1.1-29.el7 virt-install.noarch 0:0.10.0-20.el7 virt-manager.noarch 0:0.10.0-20.el7 更新: libvirt.x86_64 0:1.1.1-29.el7_0.1 依存性関連をインストールしました: libvirt-client.x86_64 0:1.1.1-29.el7_0.1 libvirt-daemon.x86_64 0:1.1.1-29.el7_0.1 libvirt-daemon-config-network.x86_64 0:1.1.1-29.el7_0.1 libvirt-daemon-config-nwfilter.x86_64 0:1.1.1-29.el7_0.1 libvirt-daemon-driver-interface.x86_64 0:1.1.1-29.el7_0.1 libvirt-daemon-driver-lxc.x86_64 0:1.1.1-29.el7_0.1 libvirt-daemon-driver-network.x86_64 0:1.1.1-29.el7_0.1 libvirt-daemon-driver-nodedev.x86_64 0:1.1.1-29.el7_0.1 libvirt-daemon-driver-nwfilter.x86_64 0:1.1.1-29.el7_0.1 libvirt-daemon-driver-qemu.x86_64 0:1.1.1-29.el7_0.1 libvirt-daemon-driver-secret.x86_64 0:1.1.1-29.el7_0.1 libvirt-daemon-driver-storage.x86_64 0:1.1.1-29.el7_0.1 libvirt-daemon-kvm.x86_64 0:1.1.1-29.el7_0.1 libvirt-python.x86_64 0:1.1.1-29.el7_0.1 virt-manager-common.noarch 0:0.10.0-20.el7 完了しました! [root@ufuso ~]# systemctl start libvirtd ← ibvirtdの起動 [root@ufuso ~]# systemctl enable libvirtd ← 自動起動設定 |
(3)ゲストOSがブリッジ接続できるようにブリッジネットワークを構成
※ブリッジ接続は、一歩間違えるとインターネットに繋がらなくなります。仮想PCを自宅のネットワークに参加させてファイルの共有とかをやる必要がなければ、ブリッジ接続はお勧めしません。
[root@ufuso ~]# cd /etc/sysconfig/network-scripts ← network-scriptsフォルダへ移動 [root@ufuso network-scripts]# ll ← フォルダ内を一覧 合計 216 -rw-r--r--. 1 root root 356 7月 21 12:37 ifcfg-enp2s0 ← イーサネット名を確認 -rw-r--r--. 1 root root 288 7月 21 20:03 ifcfg-enp3s6 -rw-r--r--. 1 root root 254 4月 3 00:30 ifcfg-lo lrwxrwxrwx. 1 root root 24 7月 21 19:41 ifdown -> ../../../usr/sbin/ifdown -rwxr-xr-x. 1 root root 1468 6月 10 07:55 ifdown-Team -rwxr-xr-x. 1 root root 1532 6月 10 07:55 ifdown-TeamPort -rwxr-xr-x. 1 root root 627 4月 3 00:30 ifdown-bnep -rwxr-xr-x. 1 root root 5553 4月 3 00:30 ifdown-eth -rwxr-xr-x. 1 root root 781 4月 3 00:30 ifdown-ippp -rwxr-xr-x. 1 root root 4141 4月 3 00:30 ifdown-ipv6 lrwxrwxrwx. 1 root root 11 7月 21 19:41 ifdown-isdn -> ifdown-ippp -rwxr-xr-x. 1 root root 1642 4月 3 00:30 ifdown-post -rwxr-xr-x. 1 root root 1068 4月 3 00:30 ifdown-ppp -rwxr-xr-x. 1 root root 837 4月 3 00:30 ifdown-routes -rwxr-xr-x. 1 root root 1444 4月 3 00:30 ifdown-sit -rwxr-xr-x. 1 root root 1462 4月 3 00:30 ifdown-tunnel lrwxrwxrwx. 1 root root 22 7月 21 19:41 ifup -> ../../../usr/sbin/ifup -rwxr-xr-x. 1 root root 1628 10月 31 2013 ifup-Team -rwxr-xr-x. 1 root root 1856 6月 10 07:55 ifup-TeamPort -rwxr-xr-x. 1 root root 12449 4月 3 00:30 ifup-aliases -rwxr-xr-x. 1 root root 859 4月 3 00:30 ifup-bnep -rwxr-xr-x. 1 root root 10223 4月 3 00:30 ifup-eth -rwxr-xr-x. 1 root root 12039 4月 3 00:30 ifup-ippp -rwxr-xr-x. 1 root root 10430 4月 3 00:30 ifup-ipv6 lrwxrwxrwx. 1 root root 9 7月 21 19:41 ifup-isdn -> ifup-ippp -rwxr-xr-x. 1 root root 642 4月 3 00:30 ifup-plip -rwxr-xr-x. 1 root root 1043 4月 3 00:30 ifup-plusb -rwxr-xr-x. 1 root root 2609 4月 3 00:30 ifup-post -rwxr-xr-x. 1 root root 4154 4月 3 00:30 ifup-ppp -rwxr-xr-x. 1 root root 1925 4月 3 00:30 ifup-routes -rwxr-xr-x. 1 root root 3263 4月 3 00:30 ifup-sit -rwxr-xr-x. 1 root root 2607 4月 3 00:30 ifup-tunnel -rwxr-xr-x. 1 root root 1621 4月 3 00:30 ifup-wireless -rwxr-xr-x. 1 root root 4623 4月 3 00:30 init.ipv6-global -rw-r--r--. 1 root root 14238 4月 3 00:30 network-functions -rw-r--r--. 1 root root 26134 4月 3 00:30 network-functions-ipv6 [root@ufuso network-scripts]# cp ifcfg-enp2s0 ifcfg-br0 ← enp2s0をbr0にコピー [root@ufuso network-scripts]# vi ifcfg-br0 ← br0ファイルの編集 DEVICE=br0 ← 追記 #HWADDR=90:E6:BA:C9:DE:B3 ← 行頭に#を付加して無効化 TYPE=Bridge ← 「Bridge」に変更 #UUID=eaea0094-7481-484c-86a7-381c1fc6e86c ← 行頭に#を付加して無効化 ONBOOT=yes BOOTPROTO=none IPADDR=192.168.24.240 NETMASK=255.255.255.0 GATEWAY=192.168.24.1 DNS1=192.168.24.240 #DOMAIN=ufuso.dip.jp ← 行頭に#を付加して無効化 #DEFROUTE=yes ← 行頭に#を付加して無効化 #IPV4_FAILURE_FATAL=yes ← 行頭に#を付加して無効化 #IPV6INIT=no ← 行頭に#を付加して無効化 #NAME="System eth0" ← 行頭に#を付加して無効化 DNS2=192.168.24.1 DELAY=0 ← 追記。ブリッジがトラフィックを監視し、ホストの位置を学習し、フィルタ リング機能の基になる MAC アドレス表を構築する間に、ブリッジが待機することを回避 [root@ufuso network-scripts]# vi ifcfg-enp2s0 ← enp2s0ファイルの編集 TYPE=Ethernet #HWADDR=90:E6:BA:C9:DE:B3 ← 行頭に#を付加して無効化 BOOTPROTO=none ONBOOT=yes BRIDGE=br0 ← ブリッジ名「br0」を明記 #UUID=eaea0094-7481-484c-86a7-381c1fc6e86c ← 行頭に#を付加して無効化 #IPADDR=192.168.24.240 ← 行頭に#を付加して無効化 #PREFIX=24 ← 行頭に#を付加して無効化 #GATEWAY=192.168.24.1 ← 行頭に#を付加して無効化 #DNS1=192.168.24.240 ← 行頭に#を付加して無効化 #DOMAIN=ufuso.dip.jp ← 行頭に#を付加して無効化 #DEFROUTE=yes ← 行頭に#を付加して無効化 #IPV4_FAILURE_FATAL=yes ← 行頭に#を付加して無効化 #IPV6INIT=no ← 行頭に#を付加して無効化 #NAME="System eth0" ← 行頭に#を付加して無効化 #DNS2=192.168.24.1 ← 行頭に#を付加して無効化 [root@ufuso network-scripts]# reboot ← コンピュータを再起動 [root@ufuso ~]# ifconfig ← br0がIPアドレスを取得できているか確認 br0: flags=4163 |
(4)SELinuxの停止(外付けUSBハードディスクにWindows7のイメージファイルを置いて、それからインストールするため)
[root@ufuso ~]# setenforce 0 ← SELinuxを停止(0)。開始は1。停止しないとイン ストールできない [root@ufuso ~]# getenforce ← SELinuxの状態確認 Permissive ← 監視はしているが無効状態にあることを確認 |
(5)KVMを起動してWindows 7 Pro をInstall
A.赤枠1の「アプリケーション」をクリックして、表示される一覧から赤枠2の「システムツール」をクリックし、さらに表示される一覧から赤枠3の「仮想マシンマネージャー」をクリック
B.この画面が表示される場合には、赤枠1にユーザーパスワードを入力して、赤枠2の「認証」をクリック
C.赤枠1に適当に仮想マシン名を入力し、赤枠2の「ローカルインストールメディア」にチェックを入れ、赤枠3の「進む」をクリック
D.isoイメージしか使えないので、赤枠1の「参照」をクリックしてisoイメージを指定し、赤枠2でOSの種類とバージョンを選んで、赤枠3の「進む」をクリック
E.具体的には、上記赤枠1の「参照」をクリックして、表示される下図の赤枠1「GSP・・・.iso」をクリックし、赤枠2の「開く」をクリックして、上図赤枠2の作業に移る
F.赤枠1に割り当てるメモリーとCPUの量を入力。OSによって必要なメモリー量が異なるので確認のこと。Windows7の32bit版は1024MB(1GB)
G.赤枠1に割り当てるハードディスクの容量を入力して、「今すぐディスク全体を割り当てる」のチェックを外し、赤枠2の「進む」をクリック。OSによって必要な容量が異なるので確認のこと。Windows7の32bit版は16GB以上
H.空き容量が足りませんと出る場合には、赤枠の「OK」をクリックして空き容量まで減にする
I.赤枠1の「詳細なオプション」をクリックし、表示される一覧から赤枠2の「ホストデバイス」がbr0になっていることを確認して、赤枠3の「完了」をクリック。Windows 7 のインストールが始まるので、画面の指示にしたがって進める。詳細な手順についてはこちらを参照のこと
J.インストール途中の再起動ができない場合には、赤枠をクリックすれば再起動が始まる。他は通常のWindows7のインストールと変わらない
(6)SELinuxの設定と再稼働
[root@ufuso ~]# setsebool -P virt_use_fusefs 1 ←仮想化したWindows7が外付けUSB ハードディスクを使えるようにする [root@ufuso ~]# setenforce 1 ← SELinuxを開始 [root@ufuso ~]# getenforce ← SELinuxの状態確認 Enforcing ← 有効状態にあることを確認 |
以上
コメントを残す