2004年08月05日
XML
カテゴリ: KNOPPIX
私は、時々、通常のcloopファイルのほかに、もうひとつcloopファイルをマウントできると便利なのになと思うことがあります。

例えば、RAMディスクや継続的ホームディレクトリにいろんなファイルをインストールした後で、それらをcloopに固めておいて、必要に応じて、ボートオプションで選択してマウントできるようにしておくのです。例えば、あるときは、標準のcloopだけ、あるときは、Javaとeclipseをインストールしたcloopを追加、あるときは、Oracleをインストールしたcloopを追加、といった具合に使うのです。
それなら、継続的ホームディレクトリを複数用意しておいて切り替えればいいと言われそうですが、cloopだと圧縮されていて、しかも圧縮したままマウントできるのが魅力です。特に、50MB程度に収まる場合は、標準のKNOPPIX CDからisolinuxとcloopだけをいただいてきて、それに追加のcloopをいれて、簡単にオリジナルCDの出来上がりとなります。(注)

実際、現在のKNOPPIXには/dev/cloopの他に/dev/cloop1,2,3があったり、UML KNOPPIXを起動すると、/dev/cloop4が作られたりで、2つ目のcloopをマウントすることは不可能ではなさそうに見えます。
第一、別々のcloopを指定して3つのUML KNOPPIXを起動できるということは、カーネルは都合4つのcloopを管理しているということになります。/proc/mountsなどを表示しても、それらは見当たらないのですが、これらは、どういう仕掛けで動いているのでしょうね。

しかし、問題になるのは、そのcloopのマウント方法。以下のようなコマンドでマウントする必要があるのです。
insmod -f cloop.o file=/path/to/the/cloop/file
mount /dev/cloop -t iso9660 -o ro /KNOPPIX

このうち、insmodが曲者です。cloop.oのinsmodは、1回しかできないので、普通にやったら、cloopは1つしかマウントできないのです。


しかし、仮想のカーネルだって、本当のカーネルとの仲を取り持つだけで、実際の処理は本当のカーネルが行うはずです。
ならば、仮想のカーネルは、どのようにして本当のカーネルに対して、2つ目以降のcloopの存在を通知しているのでしょう。
insmodでは通知できないので、何か別の方法で通知しているはずです。私も、その方法をいろいろと調べてみたのですが、結局、分からずじまいでした。

産総研さんなら、UML KNOPPIXの開発を通じて、この辺のノウハウをお持ちのことと思いますが、それを公開してもらえないものだでしょうかネェ。
とはいっても、こっちは趣味でやっているだけだし、代替案もいろいろ有りそうだし、ちょっと、「折り入ってお願いがあります」「教えてください」などと頼み込むのは気が引けますよね。

せめて、このページで、ささやかにお願いすることにします。
このページをご覧の方で、この辺のノウハウをお持ちの方、いらっしゃいましたら、是非、それをお教えいただけるとありがたいです。
よろしくお願いいたします。




(注)「それなら圧縮isofsも同じですよ、圧縮率はcloopよりは劣るみたいだけど、どのLinuxでも使える・・・」などといわれると弱いですが。




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

KNOPPIX実験室







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

最終更新日  2004年08月05日 20時54分32秒
コメント(2) | コメントを書く


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

PR

×

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