MASUDAQ Blog

NO DEVELOPMENT NO LIFE.

CentOS x64 に Hyper-V Linux 統合サービスをインストール

前回の記事では、Hyper-V に CentOS x64 をインストールする方法を紹介した。

前回の記事では、レガシ ネットワークアダプターを使用し、ネットワークのセットアップを行った。今回の記事では、ネットワークが高速になる "synthetic network controller" をセットアップする方法を紹介する。Linux は、CentOS 5.4 x64 を利用した。

以下のサイトより、"Linux_IC_v2.EXE" をダウンロードする。

Linux Integration Components for Windows Server 2008 Hyper-V R2 - 日本語

"Linux_IC_v2.EXE" を実行し、"LinuxIC v2.iso" を抽出し、ホストマシンが参照可能な場所に置いておく。

仮想マシンに "gcc"、"kernel-devel"、"make" をインストールする。

root ユーザーになる。

[nekohamawalker@centkun ~]# su -

[root@centkun ~]# yum install -y gcc

"kernel-devel" をインストールする。 "kernel-devel" をインストールする。"kernel-devel" は、現在起動しているカーネルと同一バージョンをインストールする必要がある。

[root@centkun ~]# uname -r
2.6.18-163.el5

起動しているカーネルと同一バージョンの "kernel-devel" をインストールする。パッケージ名は、"kernel-devel" と起動しているカーネルのバージョン文字列を "-"(ハイフン) で連結したもの。
(*)リビジョンもパッケージ名に含めてはいけない、例えば、起動しているカーネルとリビジョンのみが異なる "kernel-devel-2.6.18-163.15.1.el5" をインストールしてしまうと、Linux 統合サービスのインストールに失敗する。 最新のバージョンをインストールしてしまった場合は、"yum downgrade -y kernel-devel-2.6.18-163.el5" と "downgrade" オプションを用い "yum" を実行すれば、過去のバージョンが再インストールされる。

[root@centkun ~]# yum install -y kernel-devel-2.6.18-163.el5

"make" をインストールする。

[root@centkun ~]# yum install -y make

[仮想マシン接続] ウインドウの [メディア] メニューより、[DVD ドライブ] -> [ディスクの挿入] で、"LinuxIC v2.iso" を選択する。

"LinuxIC v2.iso" のメディアをマウントする。

[root@centkun ~]# mkdir /mnt/cdrom
[root@centkun ~]# mount /dev/cdrom /mnt/cdrom

Linux 統合サービスモジュールをコピーする。

[root@centkun ~]# mkdir /tmp/linux_ic_v2
[root@centkun ~]# cp -R /mnt/cdrom/* /tmp/linux_ic_v2

Linux 統合サービスのインストーラーを実行する。

[root@centkun ~]# /tmp/linux_ic_v2/setup.pl drivers
Checking if required components are installed...done.
Installing Linux integration components (vmbus, enlightened ide, enlightened scsi and network drivers) for Hyper-V...
Building vmbus driver...done.
Building blkvsc driver...done.
Building storvsc driver...done.
Building netvsc driver...done.
Installing vmbus driver...done.
Installing blkvsc driver...done.
Installing storvsc driver...done.
Installing netvsc driver...done.
Updating module dependencies. This may take a while...done.
Installing various udev rules and scripts...done.
Updating initrd image...
    Backing up /boot/initrd-2.6.18-163.el5.img to /boot/initrd-2.6.18-163.el5.img.backup0 Done.
    Updated /boot/initrd-2.6.18-163.el5.img
    Updating grub conf file... Done.
IInstalling vmbus startup script...
Checking for new synthetic nics...
*** The drivers have been installed successfully. You will need to reboot.***    [ OK ]

インストーラーを実行したカレントディレクトリに "drvinstall.err" が出力される。内容を確認する。

[root@centkun ~]# vi drvinstall.err

drvinstall.err

"drvinstall.err" を参照し、致命的なエラーが発生していないことを確認する。上記のように "WARNING" 程度であれば問題ない。
(*) "*** The drivers have been installed successfully.***" と表示されてもインストールが失敗している場合もあるので注意が必要。

Linux を停止する。"Linux Integration Components Read Me.pdf" には、再起動する必要ないという記載があるが、インストールしてあるパッケージによって挙動がことなるためここで、Linux を停止する。

[root@centkun ~]# shutdown -h now

[仮想マシン接続] ウインドウの [ファイル] メニューから、[設定] で [設定] ダイアログを起動する。

[レガシ ネットワーク アダプター] を選択し、[削除] ボタンをクリックする。[適用] ボタンをクリックし変更を反映する。

 [ネットワーク アダプター] を選択し、[ネットワーク] ドロップダウンリストより、有効な仮想ネットワークアダプターを選択し、[OK] ボタンをクリックする。

[仮想マシン接続] ウインドウの [操作] -> [接続] -> [開始] ボタンをクリックし、仮想マシンを起動する。

次に Linux 統合サービスのインストールがただしく行われたかを検証する。

[root@centkun ~]# lsmod | grep vsc
netvsc        xxxxx    x
storvsc       xxxxx    x
blkvsc        xxxxx    x
vmbus        xxxxx    x netvsc,storvsc,blkvsc
scsi_mod    xxxxx    x    scsi_dh,storvsc,blkvsc,libata,sd_mod

上記のように "*vsc" 各モジュールがロードされていることを確認できれば、Linux 統合サービスのインストールは成功している。

"Synthetic Network Card" の確認。以下のように "seth0" が確認できる。

[root@centkun ~]# ifconfig
eth0
...
lo
...
seth0    Link encap:Ethernet HWaddr 00:15:5D:01:08:77
            UP BROADCAST MULTICAST MTU:1500 Metric:1
            RX packets:0 errors:0 dropped:0 overruns:0 frame:0
            TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:1000
            RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

ネットワークの疎通確認をする。

[root@centkun ~]# ping 192.168.1.1

次回は、リモート デスクトップ経由でマウスのキャプチャが可能 "Synthetic Mouse" サポートの設定方法に説明する予定だ。