------------------------------------------------------------------ Installing Linux Secure Virtual Hosting Extension 1.0 (2003/04/30) ------------------------------------------------------------------ このドキュメントは Linux カーネルのインストールに関する知識のあ る人向けです。Linux カーネルのインストールについては、カーネルや ディストリビューションに付属するドキュメントを参照してください。 このソフトウェアは一切の保証はありません。 インストールする前には必ずバックアップを取っておくことを強くお勧 めします。 -------------------------------------------------------------------- 1. 概要 このドキュメントは Linux Secure Virtual Hosting Extension (linux-svh) カーネル、カーネルモジュールおよびユーティリティプロ グラムのコンパイル方法について述べています。 ここから は linux-.tar.gz を展開したトップのディ レクトリ を、 util-linux-svh-.tar.gz を展開した トップのディレクトリを表します。 / linux-svh のソースコード。 配置はオリジナルの Linux カーネルと同じ。 /crow_rk CPU スケジューラモジュール /jail 仮想ホスト作成用ユーティリティ /rk_bin 資源予約用ユーティリティ /rk_lib 資源予約用ライブラリ -------------------------------------------------------------------- 2. 対応ハードウェア HARDWARE を参照してください。 **注意** linux-svh マルチプロセッサは**未サポート**です。 -------------------------------------------------------------------- 3. ソースコードの展開 まず、"linux-.tar.gz" と "linux-svh-.patch.gz" と "util-linux-svh-.tar.gz" (gzip で圧縮された tar ファイ ル) を適当な場所に展開してください。 linux-.tar.gz はソースコードの展開のために約 100MB 程度、 util-linux-svh-.tar.gz はソースコードの展開のために 1 MB 程度必要です。 作業領域も含めると、それぞれ合計 150MB と 1.5 MB が必要です。 展開の仕方およびパッチの当て方の例; # cd /usr/src # tar xvfz /full/path/linux-.tar.gz # tar xvfz /full/path/util-linux-svh-.tar.gz # ln -s /usr/src/linux /usr/src/linux-svh # cd /usr/src/linux-svh # gzip -d /full/path/linux-svh-.patch.gz # patch -p1 < /full/path/linux-svh-.patch -------------------------------------------------------------------- 4. コンパイル環境のセットアップ 4.1 コンパイラの準備 linux-svh カーネルとカーネルモジュールのコンパイルには gcc-2.91.x もしくは gcc-2.95.x が必要です。 まず、これらのコンパイラがインストールされていない場合、ご使用の ディストリビューションのベンダから入手してください。 例えば、RedHat Linux なら egcs およびそれに必要なライブラリが RPM パッケージとしてベンダから提供されていますので、それらを入手 し rpm コマンドで入手してください。 RedHat7.2 (私のリファレンス環境)では、egcs-1.1.2.16 とそれに必要 なライブラリ、正確には compat-egcs-6.2-1.1.2.16.i386.rpm, compat-glibc-6.2-2.1.3.2.i386.rpm をインストールCDないしは ftp サイトから入手し、インストールすることができます。 **注意** gcc-2.96.x は最適化部分にバグがあり、このバージョンでコンパイル したバイナリは正しく動きません。 -------------------------------------------------------------------- 5. カーネルの構築 ビルド環境の準備ができたら、オリジナルの Linux カーネルの構築の 方法に従ってカーネルを構築します。 5.1 カーネルの設定 カーネルの設定には make config/menuconfig/xconfig のいずれかで行 います。 # cd /usr/src/linux-svh # make config or # make menuconfig or # make xconfig linux-svh の機能を用いるために、あなたのシステムに必要な設定に加 えて以下の設定を行ってください。 [Code maturity level options] Prompt for development and/or incomplete code/drivers -> YES [Processot type and features] /dev/cpu/*/msr - Model specific register support -> YES (for Crusoe) /dev/cpu/*/cpuid - CPU information support -> YES (for Crusoe) MTRR (Memory Type Range Register) support -> YES (for Crusoe) Symetric multi-processing support -> NO [Loadable module support] Enable loadble module support -> YES [General setup] Jail like Honey Pot environment support -> YES CROW & Linux/RK module support -> YES New Physical Page Reservation support -> YES [Networking options] TCP/IP networking -> YES IP: aliasing support -> YES 802.1Q VLAN Support(EXPERIMENTAL) -> YES (optional) [Filesystems] Second extended fs development code -> YES (for EXT3FS) [Character devices] Unix98 PTY support -> YES 5.2 building and installing kernel 次にカーネルをビルドしてください。 # make dep clean bzImage # make modules それが終わったら、カーネルをインストールする前にブートローダの設 定をしてください。 このドキュメントではブートローダのサンプルとして lilo の設定につ いて述べますが、他のブートローダ (GRUB, bootmagic 等)でも問題な く利用できます。 はじめて linux-svh カーネルをインストールする場合、ブートローダ の設定をする必要があります。lilo の場合には /etc/lilo.conf に設 定を追加してください。 以下に lilo.conf すべき設定例を載せます(rootデバイスは適当に読み 替えてください)。 image=/boot/vmlinuz-2.2.25 label=linux-svh read-only root=/dev/hda1 次にカーネルをインストールします。 # installkernel 2.2.25 arch/i386/boot/bzImage System.map # make modules_install インストールされるファイルは /boot/vmlinuz-2.2.25 /boot/System.map /lib/modules/2.2.25-svh/* です。 -------------------------------------------------------------------- 6. カーネルモジュールとユーティリティプログラムのビルド 6.1 ビルドに関する設定 Makefile.inc にはビルドに関する設定が記述されています。 もし、カーネルを /usr/src/linux-svh 以外に展開した場合、 Makefile.inc 中の "LINUXDIR" の値を展開したディレクトリに書き換 えてください。 # vi /usr/src/util-linux-svh/Makefile.inc 6.2 ビルドとインストール make & make install してください。 # cd /usr/src/util-linux-svh # make; make install インストールされるファイルは /lib/modules/2.2.25-svh/misc/crow_rk.o /usr/local/bin/jail /usr/local/bin/crow_exec /usr/local/bin/rklist /usr/local/bin/RKcleanRS /usr/local/bin/rkattach /usr/local/bin/rkcontrol /usr/local/bin/rkdestroyRS /usr/local/bin/rkdetach /usr/local/bin/rkexec /usr/local/bin/rkfreq /usr/local/lib/librk.a