mywkfmnrのホームページ

オンメモリKNOPPIX

オンメモリKNOPPIX

システムCDROMの内容をメモリ上に読み込み、CDもHDも一切マウントせずにKNOPPIXを起動するオプションがKNOPPIX 3.3で追加されました。toram tohd fromhd の3つのブートオプションです。

最初、このオプションのうちのtohdオプションは、FAT32インストールと称してKNOPPIX実験室で紹介しているブート方法、すなわち、あらかじめ、CDROMの内容をハードディスク上にFAT32パーティションにコピーしておき、CDROMの代わりにFAT32パーティションをマウントしてKNOPPIXを起動する方法を支援するオプションだと考えていました。

しかし、いろいろ調べていくうちに、このオプションは、CDROMの内容をメモリ上に読み込み、CDもHDも一切マウントせずにKNOPPIXを起動するためのオプションの一つとしてサポートされた物と考えるようになりました。

もちろん、このようなことをするためには、少なくとも900MB程度のメモリが必要になります。最近は、1GB以上のメモリを搭載したマシンも少なくなくなってきたのでサポートされたのでしょう。たぶん、KNOPPIXの開発者のマシンは、そんなマシンが多いんでしょうね。
私のマシンは、まだ384MBなので、このようなことはできませんが、とりあえず、わかったことだけ、ここで解説したいと思います。

(1) boot: knoppix toram

CDROMの内容をメモリ上に読み込んでKNOPPIXを起動するブートオプションです。メモリ上に読み込んだ後は、CDROMはアンマウントされるので、起動直後は、CDもHDも一切マウントされていません。完全にメモリだけで動作する状態になっています。すばらしく高速なLINUXが立ち上がるのでしょうね。ぜひ使ってみたい気がします。
でも、起動には相当な時間がかかります。700MBのCDを1枚丸ごとメモリに読み込むことになるので、これには少々時間がかかります。これをCDROMからではなく、HDから読み込むことで起動時間を節約しようというのが、次のオプションです。

(2) boot: knoppix toram fromhd

CDROMの内容をあらかじめHDにコピーしておき、HDからメモリ上に読み込んでKNOPPIXを起動することで、(1)よりも起動時間を短縮するためのブートオプションです。
ただし、まだ、dmaが無効になったままなので、起動時間短縮効果は思ったほどにはあがっていないかもしれません。仮に、dmaオプションを指定したとしても、これが有効になるのは、knoppix-autoconfig実行後であるため、この段階では効きません。
メモリ上に読み込んだ後は、HDはアンマウントされるので、起動直後は、CDもHDも一切マウントされていません。完全にメモリだけで動作する状態になっています。

fromhdオプションはcheatcodes.txtでは「fromhd=/dev/hda2」のような形式で指定することになっていますが、これは誤りです。現在のlinuxrcの処理では、fromhdには"=/dev/hda2"等を指定しても、単に無視され、以下の効果を持つだけです。

  • cloopでマウントするファイルKNOPPIX/KNOPPIXを探すデバイス候補の一覧の中にCDROMのデバイス名を含めません。これはデバイスの探索順序がCDROM、SCSI HD、IDE HDの順になっているため、せっかく、HDにCDROMの内容をコピーしてあっても、CDブートする限り、HD上のコピーは使われません。しかし、fromhdを指定すると、最初のCDROMの探索をスキップするようになるので、CDブートでもHD上のコピーを使ってくれるようになります。
  • toramオプションの処理でメモリに読み込むために使用するコピーコマンドは、通常は、
    /bin/cp -a /cdrom/* /cdrom2
    ですが、fromhdオプションを指定した場合は、
    /bin/cp -a /cdrom/KNOPPIX/ /cdrom2
    になります。

(3) boot: knoppix tohd

上の(2)で説明したfromhdオプションのために、あらかじめCDROMの内容をHDにコピーするためのオプションです。HDにコピー後、CDROMはアンマウントされます。

なお、HDへのコピーはlinuxrcの中で行うため、dmaはまだ無効のままです。仮に、dmaオプションを指定したとしても、これが有効になるのは、knoppix-autoconfig実行後であるため効きません。このため、このコピー処理には相当な時間がかかります。実際には、dma指定でKNOPPIX起動後、手操作でコピーした方が早いかもしれません。

KNOOPPIX実験室の実験1-1やでやっていることと似ていますが、以下の点が、少し異なります。

  tohdオプション 実験1-1
HDへのコピー CDからブートし、ブート処理中にコピーされます。 あらかじめWindows上で手操作でコピーします。
ブートローダのインストール CDブートのまま使うため、ブートローダはインストールしません。
(お好みにより、ブートローダをインストールしてHDブートすることはできます。)
CDブートでKNOPPIXを起動し、GRUBをMBRにインストールします。
コピー後のブート方法 fromhdオプションを指定してCDブートします。
詳細は次の(4)参照
GRUBを使ってHDブートします。

(4) boot: knoppix fromhd

あらかじめCDROMからHDにコピーされているKNOPPIX/KNOPPIXファイルをcloopでマウントして、KNOPPIXを起動するブートオプションです。KNOOPPIX実験室の実験1-1ではGRUBを使ってHDブートしましたが、このオプションを使うと、CDブートのままで同様なことができます。

したがって、起動されるKNOPPIXには、実験1-1で指摘している問題はすべて発生します。これらの問題のうち、実験1-1実験1-3で解決するものは、実験1-3で提供しているminiroot.gzに乗り換えることで、fromhdオプションでも解決します。
実験1-4でないと解決しない問題(日本語ファイル名が文字化けする、マウントユーザ名が無視される)は、CDブート用のブートFDイメージを2.88MBのものに変更しないと適用できないので、少々面倒かもしれません。


(5) KNOPPIX実験室のminiroot.gzで追加した「cdrom=/dev/hda2」オプションについて

なお、KNOPPIX実験室実験1-3実験1-4で提供しているminiroot.gzでは「cdrom=/dev/hda2」というオプションがあり、これが、cheatcodes.txtに書かれている「fromhd=/dev/hda2」に相当する機能、すなわち、"="の右辺で指定したデバイスのKNOPPIX/KNOPPIXをcloopでマウントしてKNOPPIXを起動するという機能を実現しています。

もちろん、これらのminiroot.gzでも、toram tohd fromhd オプションはサポートしています。

(6) これらのオプションの推奨される使い方

これらのオプションの推奨される使い方は、以下のようなものでしょうか。

初回 knoppix tohd」オプションで、CDROMの内容をHDにコピーしておく。
次回以降 knoppix toram fromhd」オプションで、HDからメモリにコピーして起動する。

このような使い方をした場合、メモリは事実上1GB以上必要になりますが、実験1-1実験1-4で苦労しているような問題は発生しないと考えられます。

(7) NTFSパーティションから読み込んでKNOPPIXを起動

また、実験1-3実験1-4で提供しているminiroot.gzと併用すると、「knoppix toram fromhd ntfs」オプションを使用することで、NTFSパーティションからメモリにコピーして起動できると思います。(未確認ですが) 1GB以上のメモリを搭載したマシンを持っている方、実験して結果を教えていただけると幸いです。




この記事は、2003/10/11の日記「KNOPPIX 3.3の新機能:オンメモリKNOPPIX」の一部として書かれたものです。
オンメモリKNOPPIXに関連する日記は、他に以下のようなものがあります。
2003-10-15 オンメモリKNOPPIX - ntfsから読み込みにはもう一ひねり必要?
2003-10-13 オンメモリKNOPPIX - パッケージ削除版を使って実験


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

KNOPPIX実験室


Copyright (c) 1997-2017 Rakuten, Inc. All Rights Reserved.