MASUDAQ Blog

NO DEVELOPMENT NO LIFE.

Linux 統合サービス v2.1 インストール

つい先日、Linux 統合サービス v2.1 がリリースされた

以降では、"Linux Integration Services v2.1 for Windows Server 2008 Hyper-V R2" のインストール手順を紹介する。
(*) この記事では、過去の Linux サービスがインストールされていない環境への新規インストールを対象としている。

まず、以下のサイトより、"Linux Integration Services v2.1 for Microsoft Hyper-V.EXE" をダウンロードする。

Linux Integration Services v2.1 for Windows Server 2008 Hyper-V R2

"Linux Integration Services v2.1 for Microsoft Hyper-V.EXE" を展開し、"LinuxIC v21.iso" を抽出し、ホストマシンが参照可能な場所に置いておく。

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

make をインストールする。

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

gcc をインストールする。る。

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

kernel-devel をインストールする。
(*) kernel-devel は、以降の手順で make する際に使用されるライブラリ。"uname -r" で表示されるカーネルバージョンと kernel-devel のバージョンを完全に一致させる必要があるため、yum コマンドで、明示的にバージョンを指定する。

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

[仮想マシン接続] 画面の [メディア] -> [DVD ドライブ] ->[ディスクの挿入] で、"LinuxIC v21.iso" を指定する。

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

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

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

[root@centkun ~]# mkdir /tmp/linux_IC_v12

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

Linux 統合サービスモジュールをメイクする。

[root@centkun ~]# cd /tmp/linux_IC_v12

[root@centkun linux_IC_v12]# make
Building all modules...
make -C /lib/modules/2.6.18-194.el5/build SUBDIRS=/tmp/linux_IC_v21/src modules
make[1]: ディレクトリ `/usr/src/kernels/2.6.18-194.el5-x86_64' に入ります
 CC [M] /tmp/linux_IC_v21/src/BlkVsc.o
 CC [M] /tmp/linux_IC_v21/src/osd.o
 CC [M] /tmp/linux_IC_v21/src/blkvsc_drv.o
 CC [M] /tmp/linux_IC_v21/src/RndisFilter.o
 CC [M] /tmp/linux_IC_v21/src/NetVsc.o
 CC [M] /tmp/linux_IC_v21/src/netvsc_drv.o
 CC [M] /tmp/linux_IC_v21/src/StorVsc.o
 CC [M] /tmp/linux_IC_v21/src/storvsc_drv.o
 CC [M] /tmp/linux_IC_v21/src/Sources.o
 CC [M] /tmp/linux_IC_v21/src/vmbus_drv.o
/tmp/linux_IC_v21/src/vmbus_drv.c: In function ‘adj_guesttime’:
/tmp/linux_IC_v21/src/vmbus_drv.c:301: 警告: ISO C90 forbids mixed declarations and code
/tmp/linux_IC_v21/src/vmbus_drv.c: In function ‘shutdown_linux_system’:
/tmp/linux_IC_v21/src/vmbus_drv.c:335: 警告: ISO C90 forbids mixed declarations and code
 LD [M] /tmp/linux_IC_v21/src/vmbus.o LD [M] /tmp/linux_IC_v21/src/netvsc.o
 LD [M] /tmp/linux_IC_v21/src/storvsc.o LD [M] /tmp/linux_IC_v21/src/blkvsc.o Building modules, stage 2. MODPOST CC /tmp/linux_IC_v21/src/blkvsc.mod.o LD [M] /tmp/linux_IC_v21/src/blkvsc.ko CC /tmp/linux_IC_v21/src/netvsc.mod.o
 LD [M] /tmp/linux_IC_v21/src/netvsc.ko CC /tmp/linux_IC_v21/src/storvsc.mod.o
 LD [M] /tmp/linux_IC_v21/src/storvsc.ko CC /tmp/linux_IC_v21/src/vmbus.mod.o
 LD [M] /tmp/linux_IC_v21/src/vmbus.ko
make[1]: ディレクトリ `/usr/src/kernels/2.6.18-194.el5-x86_64' から出ます
done.
Your system DOES NOT support the timesource driver

Linux 統合サービスモジュールをインストールする。

[root@centkun linux_IC_v12]# make install
Building all modules...
make -C /lib/modules/2.6.18-194.el5/build SUBDIRS=/tmp/linux_IC_v21/src modules
make[1]: ディレクトリ `/usr/src/kernels/2.6.18-194.el5-x86_64' に入ります
 Building modules, stage 2.
 MODPOST
make[1]: ディレクトリ `/usr/src/kernels/2.6.18-194.el5-x86_64' から出ます
done.
Your system DOES NOT support the timesource driver
install -d -m0755 /lib/modules/2.6.18-194.el5/kernel/drivers/vmbus
install -m0755 /tmp/linux_IC_v21/src/Module*.symvers /lib/modules/2.6.18-194.el5/kernel/drivers/vmbus
Installing vmbus driver...done. Installing netvsc driver...done.
Installing storvsc driver...done.
Installing blkvsc driver...done.
Updating module dependencies. This may take a while...depmod
done.
Installing various udev rules and scripts...install -d -m0755 /etc/vmbus
install -m0755 ./scripts/vmbus.uevent /etc/vmbus
install -m0755 ./scripts/netvsc.uevent /etc/vmbus
install -m0644 ./scripts/20-vmbus.rules /etc/udev/rules.d
install -m0644 ./scripts/20-netvsc.rules /etc/udev/rules.d
udevcontrol reload_rules
done.
Updating initrd image...
chmod 755 ./scripts/updateinitrd.pl
./scripts/updateinitrd.pl vmbus netvsc storvsc blkvsc
 Backing up /boot/initrd-2.6.18-194.el5.img to /boot/initrd-2.6.18-194.el5.img.backup0
 Done. Updated /boot/initrd-2.6.18-194.el5.img
Updating grub conf file...
chmod 755 ./scripts/updategrub.pl
./scripts/updategrub.pl
 Done.
Installing vmbus startup script...
install -m0755 ./scripts/vmbus /etc/init.d
chkconfig --add vmbus
/etc/init.d/vmbus start [ OK ]

仮想マシンを再起動する。

[root@centkun ~]# shutdown -r now

再起動後、TUI の [Setup Agent] が起動することがあるが、変更点がなければ [Exit] で [Setup Agent] を終了する。

次に、Linux 統合サービスの各モジュールが正しくインストールされたことを "lsmod" コマンドで確認する。

[root@centkun ~]# lsmod | grep vsc
blkvsc 70184 3
storvsc 64264 0
netvsc 73504 0
vmbus 88304 3 blkvsc,storvsc,netvsc
scsi_mod 196953 5 scsi_dh,blkvsc,storvsc,libata,sd_mod

上記のように、lsmod コマンドの出力結果に "blkvsc"、"storvsc"、"netvsc"、"vmbus" が表示されていれば Linux 統合サービスのインストールに成功している。

これらの 各 Linux カーネルモジュールの役割の概要は、以下のとおり。

  • blkvsc: IDE ディスクと fastpath boot のサポート
  • storvsc: SCSI コントローラーと SCSI ディスクのサポート
  • netvsc: ネットワークカードのサポート
  • vmbus: ホストとゲスト間のコミュニケーション チャネル vmbus のサポート

次に、"レガシ ネットワーク アダプター" を削除し、"ネットワーク アダプター" を追加するため、仮想マシンを停止する。

[root@centkun ~]# shutdown -h now

[仮想マシンの設定] 画面で、[ハードウェア] -> [レガシ ネットワークアダプター] を選択し、[削除] を選択する。

次に、[ハードウェア] -> [ハードウェアの追加] で、"ネットワーク アダプター" を選択、[追加] を選択する。

[仮想マシンの設定] 画面で、[ハードウェア] -> [ネットワークアダプター] の [ネットワーク] ドロップダウンリストより、ネットワークにアクセス可能な "仮想ネットワーク" を選択する。

上記の各設定を有効にするため、[適用] を選択する。

仮想マシンを起動後、"ifconfig" コマンドで ネットワーク アダプターが認識されていることを確認する。

[root@centkun ~]# ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1 Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING MTU:16436 Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:560 (560.0 b) TX bytes:560 (560.0 b)

seth0   Link encap:Ethernet HWaddr 00:15:9D:11:0A:21
          inet addr:192.168.1.123 Bcast:192.168.1.255 Mask:255.255.255.0
          inet6 addr: fe80::201:5bff:fc61:b31/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:56 errors:0 dropped:0 overruns:0 frame:0
          TX packets:80 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:6361 (6.2 KiB) TX bytes:14225 (13.8 KiB)

"レガシ ネットワーク アダプター" を利用している場合には、"eth0" と認識されるが、Linux 統合サービスインストール後に追加した "ネットワーク アダプター"は、"seth0" と認識される。

以上で、一通りの "Linux Integration Services v2.1 for Windows Server 2008 Hyper-V R2" のインストール手順は完了だ。

Linux 統合サービス v2.0 と比較して、v2.1 のインストール方法は変更された。v2.0 では、*.pl スクリプトでインストーラーを実行した。

それが、v2.1 では、make によるインストールとなり、Linux ライクな仕様に近づいた。
(Makefile を参照すると、*.pl は、依然と使用されているが)。

 Linux via Hyper-V は、未だ発展途上の黎明期だが、いつかは yum による Linux Integration Services のインストールが可能になることを期待する。

このエントリーをはてなブックマークに追加