Linux IS v2.1 とカーネル アップデートに関するサポート技術情報
Linux Integration Services (Linux IS) v2.1 がインストールされた Linux ゲストは、カーネルが更新されると、左画面 (RHEL 5.5 の例) のようにルート (/) ファイルシステムをマウントできずに、起動できなくなってしまいます。この問題を回避する方法が、以下のサポート技術情報で説明されています。
Linux Integration Services no longer function after a kernel upgrade
http://support.microsoft.com/kb/2387594/en-us
回避方法とは、Dell が提供する DKMS (Dynamic Kernel Module Support, http://linux.dell.com/dkms/) というパッケージを利用したものです。DKMS は、カーネルのバージョンが更新されると、自動的に必要なモジュールをビルドして配置してくれるというものらしいです。
RHEL 5.5 (Linux IS v2.1 はインストール済み) の場合は、次のような手順になります。サポート技術情報の手順のとおりで問題なくいくと思います (サポート技術情報の modinfo の出力は間違っているかも)。
# wget http://linux.dell.com/dkms/permalink/dkms-2.1.1.2-1.noarch.rpm
# rpm -ivh dkms-2.1.1.2-1.noarch.rpm
(2) LinuxIC v2.1.isoを仮想マシンにマウントし、ISO イメージの中身を /usr/src/linuxic-2.1 にコピーします。Linux IS の略称が正しいからと言って、linuxic-2.1 以外のディレクトリ名は使わないように。書いてる通りにやりましょう。
# cp -R /media/CDROM/* /usr/src/linuxic-2.1
# umount /media/CDROM
(3) LinuxIC v2.1.isoを仮想マシンから切断 (取り出し) します。
(4) /usr/src/linuxic-2.1/scripts ディレクトリにある dkms.conf を /usr/src/linuxic-2.1 にコピーします。 dkms.conf が、LinuxIS v2.1.iso の中にあたっということは、最初から DKMS の使用が考慮されていたんですね。
# cd /usr/src/linuxic-2.1/scripts
# cp dkms.conf ../
(5) /etc/modprobe.conf に以下の太字の 4 行を追加して、上書き保存します。
# vi /etc/modprobe.conf
alias scsi_hostadapter ata_piix
alias scsi_hostadapter1 vmbus
alias scsi_hostadapter2 blkvsc
alias scsi_hostadapter3 storvsc
alias scsi_hostadapter4 netvsc
(6) DKMS を通して、Linux IS v2.1 を再度インストールし、ゲストを再起動します。
# dkms add -m linuxic -v 2.1
# dkms build -m linuxic -v 2.1
# dkms install --force -m linuxic -v 2.1
# reboot
(7) modinfo vmbus を実行して、vmbus.ko のファイル パスが変更されていることを確認してください。サポート技術情報 (Last Review: August 30, 2010 - Revision: 3.0) の出力は間違っていると思います。
# modinfo vmbus (DKMS 導入前)
filename: /lib/modules/2.6.18-194.el5/kernel/drivers/vmbus/vmbus.ko
# modinfo vmbus (DKMS 導入後)
filename: /lib/modules/2.6.18-194.el5/extra/vmbus.ko
(8) オンライン アップデートを実行して、カーネルを更新します。今回は、2.6.18-194.el5 から 2.6.18-194.11.4.el5 への更新で確認しました。更新後、ゲストを再起動して、起動することを祈ります。起動したら、カーネルの更新と、Linux IS v2.1 の動作を確認します。
# uname -a (新しいカーネルの確認)
Linux hostname 2.6.18-194.11.4.el5 ...
# modinfo vmbus (カーネル更新後、ファイル パスが weak-update に変更されてます)
filename: /lib/modules/2.6.18-194.11.4.el5/weak-updates/vmbus.ko
# lsmod | grep vsc (vmbusとその他のモジュールが動いていることを確認)
netvsc ...
storvsc ...
blkvsc ...
vmbus ... netvsc, storvsc, blkvsc
scsi_mod ... scsi_dh,sg,storvsc,blkvsc,libata,sd_mod
inputvsc がインストールできない !?
Citrix Project Satori のマウス統合コンポーネント inputvsc をインストールしている場合は、カーネル更新後に inputvsc がロードされないこと (マウスが連携しないこと) に気づくでしょう。 inputvsc 用には dkms.conf は提供されていないので、Linux IS v2.1 の方法に含めることはできません (自分で書けばできるのかもしれませんが...)。そのため、カーネルが更新されたら再インストールしなければ動かないのですが、setup.pl inputvsc を実行しても vmbus が見つからないという理由でインストールしてくれません。理由は、vmbus の場所が変更 (/lib/modules/
何とか inputvsc をインストールしたいという人のために、この問題の回避方法を考えてみました。
(1) inputvsc のインストール スクリプト setup.pl の Sub CheckModule の部分を次のように修正します。
修正前:
sub CheckModule {
my ($module) = @_;
my $modulepath = "/lib/modules/" . $kernel_rel . "/kernel/drivers/vmbus/" . $module;
修正後:
sub CheckModule {
my ($module) = @_;
my $modulepath = "/lib/modules/" . $kernel_rel . "/weak-updates/" . $module;
(2) DKMS を使用しない場合に vmbus.ko がインストールされるディレクトリを作成します。
# mkdir /lib/modules/`uname -r`/kernel/drivers/vmbus
(3) Module.symversファイルを (2) のvmbus ディレクトリにコピーします。
# cp /usr/src/linuxic-2.1/src/Module.symvers /lib/modules/`uname -r`/kernel/drivers/vmbus
(4) inputvsc を再インストールします (inputvsc のファイルが /opt/inputvsc にある場合)。今度は、インストールに成功するはずです。
# cd /opt/inputvsc
# ./setup.pl inputvsc
...
*** The input driver has been installed successfully. *** [ OK ]
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。