最終更新日:

KNOPPIX実験室

 

設定を保存する機能について

 

1.設定の保存の考え方

 

設定の保存には、2つの側面があると考えます。

  • (1)使用するマシンに固有の設定を保存する。

  • (2)ユーザの好みや用途を反映した設定(マシンに依存しない)を保存する。

そして、設定を保存する目的にも2通りあると思います。

  • (a)過去に設定した環境をブート時に再現する。(同じマシン・OS・HDDが前提)

  • (b)設定を持ち出して他のマシンのブート時に同じ環境を再現する。

現在のKNOPPIXのsaveconfigは、(1)と(2)を区別せずに保存するため、(a)の目的を想定しているものと思います。
KNOPPIX 3.2から、設定をHDDに保存する機能と、継続的なホームディレクトリを作成する機能が追加されて便利になりましたが、これも、(a)の目的を想定している点は変わっていないと思います。

ところで(2)と(b)の組み合わせですが、やってみると、意外に重宝します。例えば、以下のようなケースがこれに該当します。

  • (i)開発チームの担当者間で同一の設定を再現する。

  • (ii)KNOPPIXのCDに(2)の設定を入れ、自動的にその設定が再現されるようにしたCDを再配布する。

特に(ii)のようなKNOPPIXのCDのカスタマイズは、これまでは、KNOPPIXをハードディスクにインストールしてからカスタマイズし、CDをリマスタリングするのが一般的でした。そのための解説が何件かWebに公開されていますし、メーリングリストでも何回か話題に上っているので、ご存知の方も多いと思います。
確かに、KNOPPIXのCDを隅々までカスタマイズしようとしたら、この方法が良いのは分かるのですが、私の場合、以下のような理由から、この方法は早い段階であきらめてしまいました。

  • カスタマイズしたい部分が容量的に少ない。

  • マシン環境が貧弱で、ハードディスクへのインストール〜CDリマスタリングの作業に必要な環境の準備が困難(特に自宅)

  • ハードディスクへのインストール〜CDリマスタリングの作業は、KNOPPIXのバージョンが上がるたびにやり直しになる。

 

2.新しい設定の保存と再現の仕掛け

そこで、私は、この設定の保存と再現の仕掛けを以下のように変更しました。

項目 変更前 変更後 変更理由など
設定の保存先 1つのファイルに全ての設定を保存します。そのファイル名はconfigs.tbzに固定です。 用途ごとに別々のtbzファイルに分けて保存し、読み込み時、メタ文字で複数ファイルを選択して読み込むようにしました。
用途が変わって、不要になった設定ファイルは、あらかじめファイル名を変えて選択されないようにします。
例えば、以下のようにします。(patch*.tbzを選択)
ファイル名 用途
patchSamba.tbz Samba(サーバ)の設定
patchWww.tbz ApacheとPHPの設定
  • (1)と(2)の設定を分けて保存したい。
  • 設定をいくつかの項目に分類して保存しておくと、設定を他のマシンに持ち出すときの融通性が増す。
保存する設定の抽出 saveconfigを実行し、保存したい項目をチェックボックスで選択すると、保存すべきファイルを自動的に選択して保存します。

ただし、saveconfigで保存できるシステム設定は/etcにあるものだけです。

保存すべきファイル一覧を抽出するステップと、ファイル一覧を頼りにtbzファイルに保存するステップの2ステップに分けました。
2つのステップの間では、ファイル一覧をテキストエディタで確認・修正できます。

/etc以外に、/varや/usrなどにあるシステム設定も保存できます。

保存すべきファイルの自動選択には限界があるので、自動選択結果を人手で確認・修正できるようにしたい。

また、/etc以外でも、更新された設定は保存したい。

保存された設定の再現方法 knoppix-autoconfigからknoppix.shを呼び出します。 saveconfigで自動作成された標準のknoppix.shはconfigs.tbzを読み込んで展開します。 linuxrcの最後のステップでlinuxrc2を呼び出します。linuxrc2ではtbzファイル保存ディレクトリから読み込み時、メタ文字で複数ファイルを選択して読み込むようにしました。  
保存できない設定 knoppix-autoconfigの変更は保存できません。

また、inittabを変更した場合は、initプロセスを再実行する必要があります。

linuxrc2はinitプロセスの実行開始前に呼び出されるので、knoppix-autoconfigやinittabも通常のファイルと同様に変更できます。

FAT32からのブートの場合、knoppix-autoconfiginittabはFAT32パーティションにそのまま置いておき、linuxrc2でこれをコピーするようにしました。

knoppix-autoconfigやinittabを修正したい場合がある。

また、これらの修正を誤るとシステムが起動しないことがあるので、Windowsでも修正できるようにしたい。

CDROM上のファイルの更新 通常のシェルコマンドを用いて、CDROM上にあるファイルをramdiskにコピーし、更新できるようにする必要がある。 CDROM上にあるファイルをramdiskにコピーし、更新できるようにするシェル手続き(mkwritable)を追加しました。 この操作を通常のシェルコマンドを用いて行なうのは、かなり煩雑で間違いやすい。

 

3.具体例

 

 

 

 

4.ダウンロード

以下では、このようにして変更した設定の保存と再現のためのシェル手続き等をダウンロードできるようにしました。

 

ディレクトリ

説明ファイル説明

 

 

 

/

 

 

 

miniroot.gzの中に入っているlinuxrcです。

システム起動時、最初のカーネルによる初期化が終わったところで、呼び出されます。

OSの初期化(init)はlinuxrcの実行が終了した後で実行されます。

検討の便宜を考えてアップするものです。 

 

 

 

linuxrc(最新版)
    20040216-20040220版
    20031119-20040202版
    20031119-20031219版
    20031103-20031119版
    USB-KNOPPIX-20040316版
    KNOPPIX-RW-0.2.0版
    KNOPPIX 3.2 DVD版

最終更新日
   

オンメモリKNOPPIXの実験(実験1-6)で作成しました。

KNOPPIX-RW用に作成したものですが、20031103-20031119版以降の産総研版KNOPPIXでも動作確認しています。

ここでは、実験1-6にアップしているもののうち産総研版KNOPPIXの最新版に対応するものへリンクしました。

オリジナルのlinuxrcや、下に示す初版、第2版のlinuxrcと上位互換があります。

下の第2版のものに対して、以下の修正をいれてあります。

  • toramオプションの実行時、CDROM上のcloopファイルを一時的にマウントしていましたが、これをマウントしないですむようにしました。この結果、NTFS上に置かれたcloopファイルをtoramオプションでメモリに読み込んで起動することもできるようになりました。
  • cloop=xxxxオプションをサポートしました。/cdrom/KNOPPIX/KNOPPIXの代わりに、/cdrom/KNOPPIX/xxxxをcloopでマウントしてKNOPPIXを起動できます。xxxxには英小文字のファイル名を指定してください。英大文字を含んでいると、うまくいかないことがあります。
  • cloop=xxxxオプションを指定したとき、設定の読込み用シェル手続き名は「knoppix.sh」ではなく「xxxx.sh」(xxxxはcloopオプションの指定値)を使用するよう変更しました。
  • /ramdiskをマウントするとき、inode数を指定するようにしました。その指定値は、ramdisk容量に応じて以下のようになります。
ramdisk容量[単位:KB] inode数 算出式
50000KB以下 inode数=ramdisk容量
50001〜100000KB inode数=ramdisk容量/2 + 25000
100001KB以上 inode数=ramdisk容量/4 + 50000
 
  • 「toram fromhd ntfs dma」オプションでNTFSから読み込んでオンメモリで起動しようとすると、起動しない件を対策しました。
  • 私のマシンのネットワーク機能が自動認識されない原因が判明し、対策しました。(linuxrc修正)
  • 産総研版KNOPPIXとKNOPPIX-RWの2つのKNOPPIXのlinuxrcを統合しました。この結果、カーネルのバージョンが同じなら、同じminiroot.gzを使って起動できるようになります。
  • KNOPPIX-RWの場合に表示されていたCDROMをアンマウント出来ないというメッセージは出なくなりました。
    (ただし、KNOPPIX-RWをCDブートした場合でもCDROMを排出せずに電源が切れてしまいます。KNOPPIXの場合は特に問題ありません)
  • コンソールメッセージやログの出力内容を一部変更しています。
  • linuxrc2オプションを指定したときに組み込まれるsaveconfigを新しいものに更新しました。
  • linuxrc2オプションを指定したときに組み込まれるknoppix-autoconfigとmkdosswapfileで、柘植さんがKNOPPIXメーリングリストの[knoppix:2708]で示してくれた低スペックPC対策を反映しました。

 

 

 

linuxrc(第2版)
    20030924-20031015版
    20030924-20031002版
    20030726-20030826版
    20030726-20030812版

最終更新日
   

 

miniroot.gzの中に入っているlinuxrcです。検討の便宜を考えてアップするものです。

USBブートの実験(実験1-3)で作成し、実験1-4でも同じものを使用していました。

20031119-20031219版までの各産総研版KNOPPIXで動作確認していました。

ここでは、実験1-3にアップしているもののうち20030726-20030812版対応のものへリンクしました。

オリジナルのlinuxrcや、下の初版のlinuxrcと上位互換があります。

下の初版のものに対して、以下の修正をいれてあります。

  • ブートオプション「usbboot」を追加しました。これ指定すると、USBブート用のモジュールをinsmodします。
  • ブートオプション「cdrom=/dev/xxxx」を追加しました。このオプションを指定すると、そのデバイスを/cdromにマウントします。
    (これを指定しないと、USBより先にIDEドライブを探すので、IDEドライブ内にKNOPPIX/KNOPPIXというファイルがあると、そちらを/cdromにマウントしてしまいます。)
  • /cdromにマウントできなかったとき、/bin/ashによる制限付shell環境が起動されますが、そこから戻ると、マウントをリトライするようにしました。これにより、どうすればうまくマウントできるのかの試行錯誤が容易になりました。
    反面、よく無限ループを起こすようになりました。無限ループしているということは、miniroot以外は何一つマウントできていないということですので、リセットしたり、電源を切断しても安全です。
  • linuxrcのデバッグ用のログを/linuxrc.logに出力するようにしました。マウント失敗して制限付shell環境になったときは、catコマンドなどでこれを参照してください。ただし、vga=normalだと、速すぎて、スクロールを止めるのに苦労します。止められないときは、IDEドライブのFAT32パーティションなどをマウントしてコピーしておき、あとで、Windowsなどから参照すると良いと思います。
    なお、ブートに成功すると、このログは、/var/log/linuxrc.logs/linuxrc.logに移動します。
    /var/log/linuxrc.logsには、他に、性能を見るためのタイムスタンプファイルが入ります。
  • 20030924-20031002版のlinuxrc(オリジナル)で追加されたブートオプションtoram/tohdをこのlinuxrcでもサポートしました。このlinuxrcを組み込めば、20030726-20030826版以前のKNOPPIXでも、このブートオプションが使用できるようになるものと思われます。
    (2003/10/6)
  • 次の実験3と共通に使用できるlinuxrcに変更しました。(2003/8/2)
  • linuxrcの処理がすべて終了したときに呼び出すlinuxrc2のサーチ順序を以下のように変更しました。(2003/8/16)
    変更後 (1) /cdrom/KNOPPIX/linuxrc2.d/linuxrc2
    (2) /linuxrc2.d/linuxrc2
    変更前 /cdrom/KNOPPIX/linuxrc2
     
  • linuxrc2の呼び出し処理は、ブートオプション「linuxrc2」(新設)を指定したときだけ実行されるようにしました。(2003/8/16)
  • /etcを/ramdisk/etcに移動する処理は、ブートオプション「mvetc」(新設)を指定したときだけ実行されるようにしました。(2003/8/16)
  • 新設ブートオプション「linuxrc2」と「mvetc」は、同時に指定するか、同時に省略した場合の動作のみを確認してあります。一方だけを指定した場合の動作については未確認です。
  • 2003/8/4にアップしたminiroot.gzのlinuxrcでは、/etc/fstabを更新する処理が誤って削除されていましたが、これを復活しました。これにより、/cdromにマウントされているFAT32パーティションに対しても、ro/rwモードの変更を、アイコンの右クリックで表示されるポップアップメニューから「change read/write mode」を選択して行うことが再び可能になりました。(2003/8/16)

linuxrc (初版)
    20030606-20030717版
    20030606-20030625版

    20030520-20030606版
    20030415-20030430版
最終更新日
   

設定の保存と再現のために修正したlinuxrcの最初の版です。

このlinuxrcは20030520-20030606版をベースに修正しましたが、20030606-20030717版までのlinuxrcの変更は吸収してあります。

主な変更点は以下のとおりです。

  • 内部関数mountitでパーティションをmountして成功したとき、/etc/mtabと/etc/fstabを更新するようにしました。これは、/etc/mtabを更新しなかった場合、FAT32パーティションを/cdromにマウントしてKNOPPIXを起動したとき、そのことを知っているのはkernelだけで、システムの他の部分では依然として/cdromにはiso9660形式のCDROMがマウントされていると思っているため、様々な矛盾が生じるという問題の対策です。
  • /etcを/ramdisk/etcに移動します。KNOPPIXでは/etcだけは全体で3MBしかないルートFSに残っているのですが、(1)これでは容量的に不安なことと、(2)/etc配下で実体がCDROM中にあるファイルをmkwritableでramdiskにコピーして更新できるようにするためには/ramdisk配下にある方が都合が良いことから、このようにしました。
  • linuxrcの処理がすべて終了したとき、/cdrom/KNOPPIX/linuxrc2というshell手続きが存在すれば、これを呼び出します。

/cdrom/KNOPPIX

  linuxrc2

最終更新日
   
linuxrc(4.1節に示した改良版)の最後で呼び出され、続きの初期設定処理を実行します。その主な機能は以下のとおりです。
/cdrom/KNOPPIX/linuxrc2.d/files.d以下の各ファイルを対応するディレクトリにコピーします。
mkpatchtbzで作成した各tbzファイルを展開します。
/cdrom/KNOPPIX/linuxrc2.d/sh.d以下の各shell手続き「patch*.sh」を実行します。
binディレクトリ内のファイルへのショートカット(シンボリックリンク)を作成します。
ログを/var/log/rc.logに出力します。linuxrc2のログだけでなく、/etc/init.d/rcSや/etc/init.d/rcのログも出力されます。
/home/knoppix、/var/www、/usr/localの所有権をユーザknoppixに譲渡します。また、/var/tmp、/var/log、/var/runは任意のユーザが更新できるようにします。

/cdrom/KNOPPIX/

linuxrc2.d/bin

このディレクトリに置いたまま使用するファイルを保存するディレクトリです。

Linuxrc2手続きと関わりの深いシェル手続きを保存しています。

do実行したいコマンドラインをパラメータに指定すると、実行開始日時とコマンドラインを標準エラーに出力した後、そのコマンドラインを実行します。
/usr/sbin/DOからシンボリックリンクされており、呼び出すときは「DO」で呼び出します。
do2DOの機能に加え、さらに、コマンドの出力(標準出力と標準エラーをマージしたもの)の各行の先頭に日時を付加して標準エラーにリダイレクトします。
/usr/sbin/DO2からシンボリックリンクされており、呼び出すときは「DO2」で呼び出します。
mklinks.sh

最終更新日
   
ショートカットのシンボリックリンクを作ります。
ルートディレクトリ(/)とホームディレクトリ(/home/knoppix)の両方に同じショートカットを作るためにshell手続き化しました。
ルートディレクトリのショートカットはコンソール用、ホームディレクトリのショートカットはsamba用です。
mklinktree

最終更新日
   
指定したディレクトリ配下の全てのディレクトリについて、対応するディレクトリをRAMディスクに作成します。(再帰的に実行)

そのディレクトリの中身は、すべて、CDROMへのシンボリックリンクとなります。

mkpatchdefs

最終更新日
   
mkpatchlistとmkpatchtbzに共通のサブシェル手続きです。ディレクトリパス名の設定などを共有するために作られました。
mkpatchlist

(ショートカット:mkpl)

最終更新日

   
設定項目ごとのファイル一覧を作成するshell手続きです。ファイルの更新時刻を頼りに更新されたファイルを抽出し、すでに当該設定項目のtbzファイルに保存されているファイルの一覧と併合して新しいファイル一覧とします。
パラメータにはその設定項目名かパッチ一覧ファイル名、またはtbzファイル名を指定します。

(指定例)
どれも同じ一覧ファイル「patchItem.list」を作ります。
mkpatchlist Item
mkpatchlist patchItem.list
mkpatchlist /.list.d/patchItem.list
mkpatchlist /cdrom/KNOPPIX/linuxrc2.d/tbz.d/patchItem.tbz
mkpatchlisthome

最終更新日
   
 
mkpatchtbz

(ショートカット:mktbz)

最終更新日

   
パッチ一覧ファイル「patch*.list」に基づいて、パッチ用tbzファイル「patch*.tbz」作ります。
パラメータが指定されていない場合はKDE起動後に更新されたが、まだtbzファイルに出力されていないパッチ一覧ファイル「patch*.list」(複数)について、パッチ用tbzファイル「patch*.tbz」(複数)を作ります。
特定のパッチ一覧ファイルに基づいて、パッチ用tbzファイルを作りたい場合は、その設定項目名かパッチ一覧ファイル名、またはtbzファイル名を指定します。(複数指定可)

(指定例)
mkpatchtbz
mkpatchtbz Item
mkpatchtbz Item1 Item2 Item3
mkpatchtbz patchItem.list
mkpatchtbz /.list.d/patchItem.list
mkpatchtbz /cdrom/KNOPPIX/linuxrc2.d/tbz.d/patchItem.tbz
mkwritable

(ショートカット:mkw)

最終更新日

   
CDROM上にあるファイルをramdiskにコピーし、更新できるようにします。指定されたファイルのあるディレクトリ全体がCDROM上にある場合は、そのディレクトリをramdisk上に作成します。このとき、そのディレクトリ内にあるほかのファイルはCDROMへのシンボリックリンクとなります。
このようなディレクトリが複数階層続く場合は、それらを再帰的に処理します。
/libや/binに入っているファイルを更新することもできます。

(指定例)
mkwritable /usr/sbin/saveconfig
mkwritableall

最終更新日
   
指定したディレクトリ配下の全てのファイル・ディレクトリに対して再帰的にmkwritableを実行します。
teelog

最終更新日
   
 

/cdrom/KNOPPIX/

linuxrc2.d/files.d

 このディレクトリ内のファイルは、そのまま対応するファイルに上書きコピーされます。

これらのファイルはWindowsで修正できるので、修正を誤るとシステムが起動しなくなるようなファイルを保存するのに適します。

ただし、ファイル名とディレクトリ名はすべて英小文字である必要があります。

etc/inittab

最終更新日
   
 
etc/profile

最終更新日
   
私が普段使っている/etc/profileです。参考にしてください。
etc/init.d/knoppix-autoconfig

(最新版)

    20040216-20040220版
    20031119-20040202版
    20031119-20031219版
    20031103-20031119版
    USB-KNOPPIX-20040316版
    KNOPPIX-RW-0.2.0版

最終更新日
   

オンメモリKNOPPIXの実験(実験1-6)で作成したものです。

20031103-20031119版以降の左記の各版で動作確認しています。

ここでは、実験1-6にアップしているもののうち産総研版KNOPPIXの最新版に対応するものへリンクしました。

オリジナルのknoppix-autoconfigや、下に示す初版、第2版のknoppix-autoconfigと上位互換があります。

下の第2版のものに対して、以下の修正をいれてあります。

  • cloop=xxxxオプションを指定したとき、設定の読込み用シェル手続き名は「knoppix.sh」ではなく「xxxx.sh」(xxxxはcloopオプションの指定値)を使用するよう変更しました。
  • 柘植さんがKNOPPIXメーリングリストの[knoppix:2708]で示してくれた低スペックPC対策を反映しました。
etc/init.d/knoppix-autoconfig

(第2版)

    20030726-20030826版
    20030726-20030812版

最終更新日
   


USBブートの実験(実験1-3)で作成したものです。実験1-4でも同じものを使用していました。

20031119-20031219版までの各産総研版KNOPPIXで動作確認していました。

ここでは、実験1-3にアップしているもののうち20030726-20030812版対応のものへリンクしました。

オリジナルのknoppix-autoconfigや、下の初版のknoppix-autoconfigと上位互換があります。

下の初版のものに対して、以下の修正をいれてあります。

  • USBブートすると、ブート時に認識したUSBストレージ以外のUSBデバイス(USBマウス含む)が使えない状態で起動してしまうという問題を対策しました。
  • ブートオプションに「nouhci」と「noohci」を追加しました。
    「nouhci」を指定すると、usb-uhciモジュール(usb 1.1ドライバ)を組み込みません。
    また、「noohci」を指定すると、usb-ohciモジュール(usb 2.0インタフェース用のusb 1.1ドライバ)を組み込みません。
    (理由)usb-uhciモジュールでハングアップしてシステムが起動しない事例(KNOPPIXメーリングリストの[knoppix:1875]から始まるスレッド参照)が報告されたため、これをスキップできるようにしたものです。これをスキップすると、USB1.1インタフェースは使用できなくなりますが、usb 2.0インタフェースを拡張してあれば、usb-ohciモジュール経由で、USB1.1デバイス(マウス、キーボード、etc)を使用できる可能性があるためです。
  • ブートオプションに「nocddma」を追加しました。
    「dma nocddma」を指定すると、IDEのHDDはDMAを使ってアクセスしますが、CDROMにはDMAを使用せず、PIOでアクセスするようになります。
    (理由)20030726-20030812版から「dma」を指定すると、IDEのHDDだけでなくIDEのCDROMにもDMAを使ってアクセスするように変更になりましたが、IDEのCDROMにDMAアクセスするとハングアップするマシンがあるためです。
    「dma nocddma」指定は、20030606-20030717版までの「dma」指定と同じ効果を持ちます。
  • knoppix-autoconfigでタイムゾーンを設定するとき、日本時間に一律固定ではなく、ブートオプションlangの指定(正確にはCOUNTRY環境変数の値)に応じて以下のように設定するようにしました。
    lang指定 COUNTRY環境変数の値 設定されるタイムゾーン
    ja ja_US jp Asia/Tokyo
    en us us America/New_York
    uk uk Europe/London
    de de Europe/Berlin 
    fr fr Europe/Paris
    be ch cn cs cz da dk es fi he il it nl pl ru sk tr tw 上記以外 Asia/Tokyo
    (miniroot.gzであらかじめ設定されているタイムゾーン)
    上記以外 us America/New_York
  • vfatをマウントするときのumaskオプションは022に統一しました。(2003/8/2)
etc/init.d/knoppix-autoconfig

(初版)
 20030520-20030606版

最終更新日
   

FAT32ブートの実験(実験1-1)で作成したものです。

KNOPPIXをFAT32からブートしたときには、スワップファイル(knoppix.swp)や継続的ホーム(knoppix.img)が/cdrom内にあるかもしれないということを考慮して修正したknoppix-autoconfigです。オリジナルのknoppix-autoconfigと上位互換があります。

knoppix-autoconfigは、KNOPPIXの起動時の各種の初期設定を実行するshell手続きです。KNOPPIXの強力な自動設定能力は、この手続きに負うところが大きいのですが、knoppix.shではこの手続きは変更できませんでした。しかし、linuxrc2を使えば、この手続きも変更できます。

このknoppix-autoconfigの主な修正内容は以下のとおりです。

  • mkdosswapfileで作成したスワップファイルknoppix.swpが/cdromの中にあっても、そのファイルシステムがvfatかmsdosであればマウントできるようにしました。
  • ブートオプションのhome=scanやmyconf=scanの指定によってファイルknoppix.img(継続的ホームディレクトリファイル)やknoppix.sh(設定の保存ファイル)を探すときにチェックするマウントポイントは「/mnt/xxxx」だけでなく「/cdrom」も考慮するように変更しました。
    これは、KNOPPIXをFAT32にインストールしたとき、これらのファイルが/cdromに存在しても使用できるようにするためです。
  • ブートオプションのhome=scanやmyconf=scanの指定によってファイルknoppix.img(継続的ホームディレクトリファイル)やknoppix.sh(設定ファイル)を探すときに考慮するファイルパスを以下のように拡張しました。

    (knoppix.imgの場合の例で示します)

    • (変更前)以下のパスのみに固定
      1. マウントポイント/knoppix.img
    • (変更後)以下のパスを、この順にサーチする。
      1. マウントポイント/KNOPPIX/$LANGUAGE/knoppix.img
      2. マウントポイント/$LANGUAGE/knoppix.img
      3. マウントポイント/KNOPPIX/knoppix.img
      4. マウントポイント/knoppix.img

    (目的)

    • ブート時の言語の指定によって継続的ホームディレクトリや設定ファイルを変更できるようにすること
    • KNOPPIXが使うファイルをKNOPPIXディレクトリに集約できるようにすることを目的とした変更です。
  • /cdrom内の継続的ホーム(knoppix.img)をマウントする場合、mkpersistenthomeの最後の画面で表示されるhome=/dev/hdxxではマウントできません。代わりに、home=フルパス名でマウントできるようにしました。例えば、以下のように指定します。
    (例)home=/cdrom/KNOPPIX/ja/knoppix.img
  • home=フルパス名で指定するとき、末尾が「.bz2」である場合は、これを解凍した/tmp/knoppix.imgをつくってマウントします。KNOPPIXのCDROMをリマスタするときに、使い込んで使いやすくなったknoppix.imgを圧縮して一緒に保存したい場合などで使うと便利です。
  • myconf=scanが指定されたとき、最初に/home/KNOPPIX/knoppix.shをチェックします。上に述べたマウントポイントとファイルを考慮してknoppix.shを探す処理は、/home/KNOPPIX/knoppix.shが存在しない場合のみ行われます。
usr/sbin/mkdosswapfile

最終更新日

  • /cdromがvfatであれば、/cdrom上にスワップファイルを作成できるようにしました。 
  • 柘植さんがKNOPPIXメーリングリストの[knoppix:2708]で示してくれた低スペックPC対策を反映しました。
usr/sbin/mkpersistenthome

最終更新日

  • /cdromがrwモードでマウントされている場合は、そこに継続的なホームディレクトリを作成できるようにしました。
  • ホームディレクトリ用ファイルknoppix.imgを作るとき、未使用領域の初期値として乱数データを書いていましたが、オールゼロを書くように変えました。
    knoppix.imgをbzip2で圧縮し、CDROMに書き込んで配布することを考えておりそのための変更です。(knoppix-autoconfigの説明参照)
usr/sbin/saveconfig

最終更新日

  • /home/knoppixか/mnt/homeに継続的ホームがマウントされているときは、出力先メニューにこれをを追加しました。
  • 「knoppix.shがすでに存在する時、これを上書きする。」かどうかを指定するチェックボックスを追加しました。そして、デフォルトではこれを上書きしないように変更しました。
  • 「個人的な設定(デスクトップ, プログラムなど)」はデフォルトではチェックされないように変更しました。
  • シンボリックリンクを保存するようにしました。ただし、mkwritableで作られる/KNOPPIX/〜へのシンボリックリンクを除きます。
  • knoppix.sh実行時、最初にmkwritableを/usr/sbinにインストールするようにしました。
  • configs.tbzの中にCDROM中のファイルの更新イメージが保存されていた場合、自動的にmkwritableするようにしました。
  • /cdromがiso9660でないとき(FAT32またはext2のとき)、出力先を指定するメニューに/cdromを追加するようにしました。
  • KNOPPIX実験室で提供するminiroot.gzを使うとき、mvetcを指定するとsaveconfigが使えなくなる問題を対策しました。

参考資料:KNOPPIXメーリングリストの[knoppix:2720]

/cdrom/KNOPPIX/

linuxrc2.d

list.dにはmkpatchlistで作成したファイル一覧が、tbz.dにはmkpatchtbzで作成したtbzファイルが保管されます。
これらのtbzファイルはlinuxrc2実行時に解凍されます。
list.d/patchOnStartKDE.list
tbz.d/patchOnStartKDE.tbz

最終更新日
   
 
list.d/patchSamba.list

tbz.d/patchSamba.tbz

最終更新日
   

ランレベル3〜5でSamba(サーバ)を自動起動するように設定します。
これに伴い、LinuxとSambaのパスワードを以下のように設定します。
システム ユーザ パスワード
Linux root linux
Linux knoppix linux
Samba knoppix linux

パスワードはできるだけ速やかに適切なものに変更してください。

ただし、左記のファイルに入っているパスワードファイル(/etc/passwd、/etc/shadow)はアップロード当時のKNOPPIXのものです。最近のKNOPPIXのに使用すると、日本語入力が使えなくなるなどの問題が生じます。

これらのファイルを新しいファイルに入れ替えてからパスワードを変更して、これをpatchSamba.tbzに保存し、リブートしてください。

具体的には以下のコマンドを実行します。(このコマンド列をブラウザからKonsoleなどにコピー&貼り付けして実行するときは注意が必要です。少なくとも、イタリック部分のコマンドはコピー&貼り付けせずに手入力する必要があります。)

sudo -s
cp -p /KNOPPIX/etc/{passwd,shadow} /etc
passwd root
passwd knoppix

cd /cdrom/KNOPPIX/linuxrc2.d/bin
mkpatchtbz Samba
reboot

list.d/patchwww.list
tbz.d/patchwww.tbz

最終更新日
   
ランレベル3〜5でWebサーバとPHPを自動起動するように設定します。
動作確認のための簡単なサンプルも入っています。
list.d/patchvnc-3.3.2r2.list
tbz.d/patchvnc-3.3.2r2.tbz

最終更新日
   
VNCサーバを/usr/local/binにインストールします。

使い方は、man vncserverなどを参照してください。

また、VNCサーバの自動起動に使うファイル/etc/init.d/vncserverも入っています。

[既知の問題について]

KNOPPIX 3.4の場合、VNCのクライアントからログオフすると、ログオフ時の指定によって、システムのKDEが再起動、システム停止、システム再起動のいずれかが実行されてしまいます。また、VNCサーバを停止させると、システムのKDEが再起動してしまいます。
反面、VNCプロセスはKDEが終了したことを認識していないので、以後の処理を正しく実行できません。

KNOPPIX 3.3までは、KDEのログオフ時の指定は無視され、無条件にシステム停止になっていました。反面、VNCの停止にまつわる、このような問題は発生しなかったものと思います。

現在、KNOPPIX実験室では、この問題への対処方法を検討中です。

sh.d/patchAutoVNC.sh

最終更新日
   
ランレベル3〜5でVNCサーバを自動起動するように設定します。