簡易的なLinux用仮想化プラットフォームとしてのLguestLinux Hacks(2/3 ページ)

» 2008年03月05日 00時00分 公開
[M.-Shuaib-Khan,Open Tech Press]
SourceForge.JP Magazine

lguestの使用法

 lguestは準仮想化ハイパーバイザであるため、そこで実行するゲストカーネルに対しては仮想化環境上で実行されていることを認識させるための変更を施して、システムリソースへの無許可アクセスを行わせないようにしておく必要がある。

 lguestの実行時には、ホストおよびゲスト双方のカーネル設定において後記のオプションを有効化しておかなくてはならない。いずれにせよ、ホストとゲスト側で同じカーネルを使用させることで、設定の変更は大幅に簡単化されている。

  • CONFIG_HIGHMEM64G=n――lguestはハイメモリのサポートで問題を起こす可能性があるため、この機能は無効化しておく方が無難である
  • CONFIG_TUN=y/m――TUN/TAPデバイスドライバのサポート。“y”とするとカーネル中に作成され、“m”とするとローダブルモジュールとして作成される
  • CONFIG_EXPERIMENTAL=y――開発中ないし未完成のコードおよびドライバに関するプロンプト。これを“y”にすると、ユーザに対して以降のオプション確認が行われるようになる
  • CONFIG_PARAVIRT=y――カーネル中の準仮想化コードは開発中とのステータス付けがされているが、lguestを使用する際には必要となる
  • CONFIG_lguest=y/m――Linuxハイパーバイザのサンプルコードをカーネルないしローダブルモジュールとして作成させる。これによりlguestのコアであるlgモジュールが得られる
  • CONFIG_lguest_GUEST=y――lguestによるゲストのサポート

 設定変更後のカーネルについては再コンパイルしてから起動をさせるが、いずれかのカーネル設定オプションにて“y”ではなく“m”が選択してある場合は、「make modules_install」によるモジュールのインストールが必要となる。

 ランチャープログラムのlguest.cは、Documentation/lguest/lguest.cのカーネルソースツリーに置かれているが、これはゲストカーネルのセットアップと設定に使用する。そのビルドに当たっては、当該ディレクトリでmakeを実行すればいい。

 lguestではブータブルCD/DVDからの起動は行えないため、X環境を含めたLinuxディストリビューション一式をインストールしておく必要がある。こうしたLinuxディストリビューションのインストールは、ハードドライブ上に別途確保したプライマリパーティーションで行う必要があるが、あるいはQEMUを使用していれば、仮想化環境にてこうしたディストリビューションの複数インスタンスをlguestに実行をさせることも可能となる。

 ゲストカーネルを起動させるには、カーネルソースツリーのDocumentation/lguestで以下のコマンドを実行する。

./lguest 64m ../../vmlinux --block=rootfile root=/dev/lgba


 ここで64mにはゲストに割り当てるメモリ量を指定する。その次の../../vmlinuxは、ビルドディレクトリにあるカーネルイメージの指定部である。そしてrootfileは、ゲスト環境において/dev/lgbaとするファイルないしブロックデバイスであるが、具体的にはQEMUを用いてインストールしたイメージか、あるいはゲストのLinuxディストリビューションをインストールしたプライマリパーティーションを指定すればいい。最後に残された/dev/lgbaはゲストカーネルに渡されるブートパラメータで、ここでは/dev/lgbaをルートデバイスとして使用させることを指定している。

 すべてが問題なく進行すれば、ゲストOSへのログイン画面が表示されるはずである。

関連キーワード

仮想化 | カーネル | Linux | Xen | Linux Hacks


Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ