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

mywkfmnrのホームページ

フリーページ

お気に入りブログ

源氏物語の世界 jooxさん
一日一冊:読書日記… 本のソムリエさん
おびやまロボット研… CPU4Eduさん
2004年01月10日
XML
カテゴリ:カテゴリ未分類
私は、Live Linuxで提供されていた設定保存のための簡単なシェル手続きを拡張してずっと使い続けています。
このシェル手続き、Line Linux2では削除されていたのですが、これを使うための最低限の機能がLive Linux2のlinuxrcにも残っていることをLive-MLに問い合わせて聞き出し、移植して使っていました。
昨年5月ごろ、KNOPPIXの使用頻度が高くなってきたときに最初に行ったのは、このシェル手続きをKNOPPIXに移植することでした。移植したシェル手続きはKNOPPIX実験室でも「設定を保存する機能について」と題して公開していますが、説明が下手でウマく説明できていません。書き直さないと思い始めてからは遅々として進まず、まだ70%執筆済みのまま止まっています。
いずれ、全面的に見直して書き直したいと思っているのですが、今回、KNOPPIX-MLで設定の保存に関する話題が出てきたので、ここで、簡単に説明することにします。




まず、このシェル手続きでの設定保存の基本的なやり方は、以下のようになっています。

1.設定の保存
(1)まず、タイムスタンプを頼りに保存すべきファイルを抽出してファイル一覧を作ります。
(2)次に、ファイル一覧をテキストエディタ(vi、kateなど)でチェックして、保存不要なファイルがあったら削除します。
(3)ファイル一覧で示されるファイルをtarファイルに圧縮して保存します。

2.設定の読み込み
(1)linuxrcの最後のステップとして、設定読み込みのためのシェル手続きを呼び出します。
(2)設定読み込みシェル手続きでは、まず、tarファイルをチェックしてmkwritableし、次に、tarファイルを解凍します。
#mkwritableは[knoppix: 2141]を参照してください。
#また、KNOPPIX実験室の「設定を保存する機能について」にもmkwritableの記述があります。




これらをもう少し詳しく説明します。

1.設定の保存
#以下の操作はsuモードで実行してください。

(1)まず、タイムスタンプを頼りに保存すべきファイルを抽出してファイル一覧を作ります。
この処理は、シェル手続きmkpatchlistで実行します。
このシェル手続きでは、以下のどのファイルの更新日付より新しい更新日付を持つファイルを/ramdisk配下のファイルから抽出します。
・ブート処理の最後に更新されるファイル - inittabを修正してKDE起動直前でtouchして更新しています。
・KDE起動処理の最後に更新されるファイル - KDEのAutostart手続きの最後でtouchして更新しています。
・設定を保存したtarファイル

ただし、更新日付が未来のファイルは対象外とします。これは、ブートの初期段階で作成されるファイルには、タイムゾーンの設定が狂って9時間ほど未来の時刻が設定されることがあり、これを除外するためです。
ファイル一覧の抽出にはfindコマンドを使っていますが、/var/logなど保存しても仕方のないディレクトリやファイルは、このfindコマンドのパラメータを修正して除外しています。

なお、このシェル手続きmkpatchlistを使用する場合、そのサブシェル手続きmkpatchdefsも必要になります。一緒にダウンロードしてください。

(2)次に、ファイル一覧をテキストエディタ(vi、kateなど)でチェックして、保存不要なファイルがあったら削除します。
保存した設定を自分のマシンで読み込むだけなら、このステップは省略できます。
他のマシンや、他人のマシンなどで読み込むことを想定する場合は、プライベートな情報やマシン固有の情報を除外するために使用します。
また、このステップで頻繁に除外対象にあがるファイルは、mkpatchlist中のfindコマンドのパラメータを修正して自動的に除外されるようにした方がよいでしょう。

(3)ファイル一覧で示されるファイルをtarファイルに圧縮して保存します。
この処理は、シェル手続きmkpatchtbzで実行します。
なお、このシェル手続きmkpatchtbzを使用する場合、そのサブシェル手続きmkpatchdefsも必要になります。一緒にダウンロードしてください。

2.設定の読み込み

(4)linuxrcの最後のステップとして、設定読み込みのためのシェル手続きを呼び出します。
設定の読み込みはknoppix.shのタイミングでもよいのですが、このタイミングだと、/etc/init.d/knoppix-autoconfigを書き換えられないですし、/etc/inittabの書き換えには注意が必要です。
live linuxでは、linuxrcの他の処理が終わった後、カーネルに戻る直前で、設定読み込みのためのシェル手続きを呼び出すようにしていました。このタイミングだと、knoppix-autoconfigもinittabも簡単に書き換えることができます。
KNOPPIX実験室で提供しているminiroot.gzではブートオプションに「linuxrc2」を指定すると、linuxrcの最後のステップとして、miniroot.gz内に追加してある/linuxrc2.d/linuxrc2を実行するようになっています。
この/linuxrc2.d/linuxrc2では、以下のファイルを、やはり、miniroot.gz内に追加してあるものに入れ替えた後、次の(5)に進みます。
・/etc/init.d/knoppix-autoconfig
・/usr/sbin/mkpersistenthome
・/usr/sbin/mkdosswapfile
・/usr/sbin/saveconfig
これらの入れ替えたファイルにどんな修正が入っているかについては、KNOPPIX実験室の実験1-1の説明を参照してください。

(5)設定読み込みシェル手続きでは、まず、tarファイルをチェックしてmkwritableし、次に、tarファイルを解凍します。
この設定読み込みシェル手続きには、patch.shを使っています。patch.shはアップされているのですが、何処からもリンクされていなかったので、以下にURLを示します。
http://www.h2.dion.ne.jp/~miyawaki/knoppix/linuxrc2/linuxrc2.d/bin/patch.sh
tarファイルを読み込む前に、tarファイルに保存されているファイルの一覧を取得し、その親ディレクトリに対してmkwritableを実行しているところがミソです。これにより、ほとんどのtarファイルを、自由に展開できるようになります。




KNOPPIX実験室で提供しているminiroot.gzを使って、Apache+PHP+Sambaを自動起動するには、次のようにします。

(1)標準のminiroot.gzの代わりにKNOPPIX実験室で提供しているminiroot.gzを使ってKNOPPIXを起動する環境を作ります。これをFAT32ブートで行う方法はKNOPPIX実験室で説明しています。CDブートで行う場合は、KNOPPIX-RW 0.2.0で行っているようなisolinuxを使う方法が便利です。

(2)KNOPPIX実験室からtbz.d/patchwww.tbzをダウンロードして以下のパスに配置すると、ランレベル=3~5でApache+PHPが自動起動するようになります。
/cdrom/KNOPPIX/linuxrc2.d/tbz.d/patchwww.tbz

(3)KNOPPIX実験室からtbz.d/patchSamba.tbzをダウンロードして以下のパスに配置すると、ランレベル=3~5でSambaサーバが自動起動するようになります。
/cdrom/KNOPPIX/linuxrc2.d/tbz.d/patchSamba.tbz



(更新1,更新2:2003/6/14)

(4)KNOPPIX-MLの[knoppix:2687]でphpmyadminをインストールする話題が出てきました。参考のため、これを、このminiroot.gzを使って、ブート時に自動的にインストールして設定する方法をここに示します。
#現在、検証作業中ですが、とりあえず、大きいところだけ修正します。(更新2)
#FAT32ブートにより/cdromが更新可能な状態で起動されることを想定して説明します。

①ダウンロードしたphpMyAdmin-2.5.5-pl1.tar.bz2を展開します。
mkwritable /var/www
cd /var/www
tar jxvf ~/phpMyAdmin-2.5.5-pl1.tar.bz2
mv phpMyAdmin-2.5.5-pl1 phpMyAdmin

②phpMyAdminの設定を保存するためのファイル一覧とtarファイルを作ります。このとき、ファイル名はpatch*.tbzの形式にします。
cd /
find ./var/www/phpMyAdmin ! -type d >/cdrom/KNOPPIX/linuxrc2.d/list.d/patchPhpMyAdmin.list
mkpatchtbz PhpMyAdmin

③このphpMyAdminを設定します。/etcや/var等の設定変更もここで行えます。
#実際に検証したら、ここにどのような設定変更をしたか追記します。

④phpMyAdminの設定を保存するためのファイル一覧を更新します。コマンドは以下の通りです。
# mkpatchlist PhpMyAdmin

⑤作成したファイル一覧のフルパス名が表示されるので、テキストエディタで、そのファイル一覧を編集します。(必要時のみ。省略可能)

⑥phpMyAdminの設定を保存します。そのコマンドは以下の通りです。
# mkpatchtbz
これで、以下のパスに設定ファイルが追加されます。このファイルは、次回以降のリブート時に自動的に読み込まれます。
/cdrom/KNOPPIX/linuxrc2.d/tbz.d/patchPhpMyAdmin.tbz



より詳しくは、いずれ、「設定を保存する機能について」のページを見直し、書き直して説明するつもりです。



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

KNOPPIX実験室






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

最終更新日  2004年01月14日 10時29分37秒
コメント(0) | コメントを書く


PR


© Rakuten Group, Inc.