2004年06月24日
XML
カテゴリ: カテゴリ未分類

1.CDROMのカスタマイズとFAT32インストール


しかし、FAT32ブート環境(FAT32インストールして作成した環境)には、もうひとつ、重要な側面があります。それは、カスタマイズCDを簡単に作れる環境であることです。

FAT32ブート環境は、以下の点は、CDブート環境と同じです。
(1)カーネル、miniroot、cloop は、CDブート環境と同じものをそのまま使います。
(2)CDROMとcloopのマウントポイント も、CDブート環境と同じ/cdromと/KNOPPIXになります。
(3)ルートファイルシステム がブート時のminirootのままだという点もCDブート環境と同じです。

FAT32ブート環境とCDブート環境の相違点は、以下の点だけです。
(a)ブートローダの違い 。FAT32ブートではGRUBを使いますが、CDブートではisolinuxかsyslinuxを使います。
(b)/cdromにマウントするファイルシステムの違い 。FAT32ブートではFAT32ですが、CDブートではiso9660です。
(c)FAT32はHDD上にある

この(a)(b)(c)の違いを意識するプログラムはブート関係とカーネルを除くと、きわめて少ないので、通常は、FAT32ブートで動作確認が取れれば、CDブートで動作しないということは起こりません。
この点は、KNOPPIXをカスタマイズするためにHDDインストールしてcloopを再作成するというアプローチにはない、非常に便利な点です。
しかも、HDDインストールやcloop再作成のような、時間とリソースを大量に消費する操作も不要です。

このように、FAT32インストールは、KNOPPIXのカスタマイズを目的とする向きには、うってつけの方法だと私は考えています。




2.KNOPPIX実験室で提供するKNOPPIXのカスタマイズ手段

KNOPPIX実験室では、KNOPPIXを簡単にカスタマイズするために以下のようなツールを提供しています。

(1)mkwritable - cloopの中にある、一見、更新不可能に見えるファイルを更新するためのツール


原理は簡単です。cloopの中の更新したいファイルをramdiskにコピーし、シンボリックリンクを張り替えて、同じパス名を指定すると、ramdiskにコピーしたファイルを参照するようにすることで、そのファイルを更新できるようにするのです。
たとえば、/usr/local/srcに新しいプログラムのソースをダウンロードし、ビルドすることで、/usr/local/binや/usr/local/manにプログラムをインストールすることを考えましょう。そのためには、/usr/local/bin、/usr/local/man、/usr/local/srcの3つのディレクトリを更新できる必要があります。
KNOPPIXでは/usrは/KNOPPIX/usrへのシンボリックリンクになっているので、/usr/local/binなどは、cloopの中の/KNOPPIX/usr/local/binにあることになり、更新できません。
しかし、この場合、suモードで以下のコマンドを実行すると、これらのディレクトリも更新可能になります。
# mkwritable /usr/local/{bin,man,src}
これを実行すると、/ramdisk上に以下のフォルダが作られます。

/ramdisk/usr/local
/ramdisk/usr/local/bin
/ramdisk/usr/local/man
/ramdisk/usr/local/src
そして、これまで、/usr ==> /KNOPPIX/usr に張られていたシンボリックリンクは、/usr ==> /ramdisk/usr に張り替えられます。

こうすることで、たとえば/usr/binを使う場合は、従来どおり、/KNOPPIX/usr/binが使われますが、/usr/local/binを使う場合には、/ramdisk/usr/local/binが使われるようになるので、/usr/local/binなどに新たなプログラムをインストールすることも出来るようになります。

このように、mkwritableを使えば、cloop内のどんなファイルでも更新できるので、うまく使えば、RAMディスク容量が許す限り、どんなプログラムでもインストールしたり、設定変更したり出来るはずです。そればかりか、継続的ホームディレクトリを併用して、このRAMディスク容量の限界を乗り越えることさえ出来るようになっています。(この記事内で説明します。)

ただ、あるプログラムをインストールしたいと思ったとき、どこをmkwritableすればよいのか、戸惑うことがよくあります。結局は、適当に見当をつけてmkwritableしておき、インストール中にエラーが出てきたら、そのエラーメッセージを参考に、追加のmkwritableを実行してインストールを再試行するという事を繰り返すことが多いです。
このあたりのやり方は、KNOPPIX実験室のHowto5-xやhowto3-xで具体例を使って解説していますので、参照してみてください。


(以下は、日記サイズの制限のため、 2004/6/25の日記 に書きます。)

(2)linuxrc2 - cloopの中のファイルを書き換えるような設定を読み込む、KNOPPIX実験室独自のブートオプション


(a)/cdrom/KNOPPIX/linuxrc2.d/files.dディレクトリ配下のファイル・ディレクトリを、ルートディレクトリ配下にディレクトリ構造を保ってコピーされます。

(b)/cdrom/KNOPPIX/linuxrc2.d/sh.d/patch*.sh というスクリプトファイルがあれば、実行されます。

(c)/cdrom/KNOPPIX/linuxrc2.d/tbz.d/patch*.tbz というtarファイルがあれば、ルートディレクトリ配下にディレクトリ構造を保って解凍されます。


(3)mkpatchlistとmkpatch - KNOPPIX実験室独自の設定保存ツール。



(以下は、近日中に、別の日記ページで加筆・修正するつもりです。)

(4)継続的ホームディレクトリにインストール したプログラムをブート時にシステムに組み込むためのツール


(5)CDROM内に継続的ホームディレクトリの圧縮イメージ を持ち、ブート時にRAMディスクに展開して使用可能にする機能


(6)ブート時のトラブル調査のためのログを収集する機能



3.関連記事


このような設定保存方法については、他にも、以下のような記事をアップしているので、参考にしてください。
(1)KNOPPIX実験室 Howto1-2 設定を保存する機能について
KNOPPIX実験室の設定保存機能を、KNOPPIXの標準の設定保存機能(saveconfig)と比較しながら説明しています。

(2)2004年1月10日の日記 KNOPPIXの設定を保存する機能について
KNOPPIX実験室の設定保存機能の操作方法を説明しています。

(3)KNOPPIX実験室 Howto3-xとHowto5-x
KNOPPIX実験室の設定保存機能を使って、Webサーバ等を立ち上げたり、何か新しいプログラムをインストールしたりする方法を説明しています。




この日記は、最初は、6月24日の「実験くん」さんの書き込みのレスとして書き始めました。しかし、この辺については、書きたいことがたくさんあるので、長さなどの制限のきつい掲示板から日記に変更してアップしたものです。
「実験くん」さんの質問に対する回答としては、少しピントがずれていますが、やりたいことは、KNOPPIXのカスタマイズ版CDを作りたいのだと思われること、cloopファイルの作成にてこずっている様子であることから、こういう方法もありますよ、この方が簡単ですよ、ということを紹介するために書き始めたものです。

以下は、最初にこの日記を書いたときの掲示板のレス形式の記述です。
上の記述と一部重複しますが、履歴として残しておきます。


>実は,knoppixをCDで起動してUSB-HDDでknopixのカスタマイズを試行しています。
>圧縮をかけたものをテストで起動するために使いたいと思っていますが,まだ,3.2しかカスタマイズは成功(再圧縮)していません。
>3.3は本日,失敗して,3.4の方法は,よく分かりません。カスタマイズ方法をご存じな方よろしくお願いします。
>3.2はきんねこさんのHPを参考にしました。
私は、KNOPPIXをHDDにインストールしたことは、一度もありません。HDDにインストールして使うLinuxなら、別に、もっと好きなLinuxがあるからです。KNOPPIX 3.2/3.3の頃にカスタマイズ版のCDを作ったことは何度もありますが、カーネルとcloopファイルは提供されたものをそのまま使いました。cloop内のどんなファイルでも、ramdiskにコピーして書き換えられるようにしてしまうスクリプトmkwritableをKNOPPIX実験室で提供していますが、これとtarを併用して、cloopファイルへのどんな更新でも、ブート時に反映してしまうのが、そのカスタマイズの仕掛けです。
たとえば、起動にKNOPPIX実験室のminirt2x.gzを使っており、起動オプションに「linuxrc2 mvetc」を指定しているならば、/cdrom/KNOPPIX/linuxrc2.d/tbz.dというディレクトリを作り、そこに、patchXXXX.tbzと言う名前(XXXXの部分は任意。複数ファイルも可)で設定を保存しておけば、ブート時にその設定をramdiskに読み込みます。もし、そのtarの展開先がcloopファイル内の更新できない部分にあった場合は、mkwritableを使って、更新可能な状態にパッチした上で展開されます。
ちなみに、あまり面白くない例ですが、
http://www.h2.dion.ne.jp/~miyawaki/knoppix/linuxrc2/linuxrc2.d/tbz.d/patchwww.tbz
http://www.h2.dion.ne.jp/~miyawaki/knoppix/linuxrc2/linuxrc2.d/tbz.d/patchSamba.tbz
をダウンロードして/KNOPPIX/linuxrc2.d/tbz.d/patchwww.tbzディレクトリに置くと、
KNOPPIXのブート時にApache+PHPサーバとSambaサーバが自動的に起動していると思います。
#ただし、patchSamba.tbzには1年も前の古いパスワードファイルが入っているため、ユーザwnnが正しく登録されず、
#結果としてかな漢字変換ができなくなります。



過去のKNOPPIX関連日記一覧はこちら

KNOPPIX実験室







お気に入りの記事を「いいね!」で応援しよう

最終更新日  2004年07月01日 01時32分23秒 コメント(9) | コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

PR

×

© Rakuten Group, Inc.
Design a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: