最終更新日:

KNOPPIX実験室



HDブート関係の実験結果報告




実験1-1

KNOPPIXをFAT32パーティションにコピーしてGRUBで起動する。

実験の概要

KNOPPIXの本体ファイル(/cdrom/KNOPPIX/KNOPPX)をFAT32パーティションにコピーしておき、grubで起動する実験です。

この方法はUnix User誌の2003年2月号の57ページ付近で紹介されました。その記事のPDFファイルはKNOPPIXのCD-ROMにも入っていますし(cdrom:\Aist\unixuser.pdf)、この方法を追試した報告が、KNOPPIXメーリングリストの[knoppix:0961]から始まるスレッドにもあります。

私が、この実験を行ったのは5月連休の終わりごろでした。当時、公開されたばかりの20030415-20030430版をダウンロードして実験しました。私が、KNOPPIXを本格的に使い始めたのは、この実験以後です。

このときの実験結果は、以後の実験の基礎になる部分なので、現在、思い出せる範囲内で以下に報告します。(2003/8/17)

なお、本件については、本実験、および、以降の実験の結果得られたノウハウを総合して、最も良いと考える方法をhowto風に整理しましたので、それも参考にしてください。

実験結果
実験日 実験結果
2003/5/5頃 私のノートパソコン(FMV-BIBLO NB10A)で実験が成功しました。

KNOPPIXメーリングリストの[knoppix:0962]の記事を参考にKNOPPIXをFAT32パーティションにコピーしてgrubで起動する環境を構築し、うまく起動できることを確認しました。

そこで、/etc/profileのalias設定を好みのものに変更し、パスワードやsambaサーバを設定して、フロッピーディスクに「KNOPPIXの設定を保存」、これ(knoppix.sh、configs.tbz)をFAT32パーティションのKNOPPIXディレクトリにコピーして、起動時に自動的にこれらの設定が反映されるようにしました。

しかし、HDDアクセスがかなり遅いのです。原因は、hdparmをチェックしてすぐに分かりました。DMAが設定されていないためでした。そこで、knoppix.shにhdparmコマンドを追加して/dev/hdaにはUDMA5でアクセスするように設定しました。(この頃は、まだ、ブートオプション「dma」を知らなかったため、このような方法で設定しました。「dma」オプションを知るのはknoppix-autoconfigをいじり始めるようになってからです)

これで私のノートパソコン(FMV-BIBLO NB10A)では、KNOPPIXが通常のLinux同様にサクサク動く環境になりました。

2003/5/7頃 職場の実験機(Dell Dimension V400c)ではDMAを効かせるとKDE起動中にハングアップします。

5/4にノートパソコンに対して設定したのと同じ設定を職場の実験機(Dell Dimension V400c、メモリ128MB、HDD 10GB)に対しても設定しました。

ところが起動しません。KDEを起動中にハングアップするのです。いろいろ調べた結果、knoppix.shに追加したhdparmコマンドが問題で、これを削除すると起動することが判明。しかし、これを削除するとDMAが効かなくなるので、非常に遅くなります。

そこで、KDEのオートスタート機能を使って、KDE起動終了時にシェル手続きを実行させ、その中でhdparmコマンドを実行するようにしました。この結果、起動は遅いままですが、起動後は、通常のLinux同様にサクサク動くようになりました。

しかし、非常に不安定。Mozillaをオートスタートで起動しようとすると、Mozillaの起動中に必ずシステムがハングアップするし、手操作でMozillaを起動する場合も、しばしば、システムがハングアップします。また、何か(たとえばMozilla)を起動処理中に別の何か(たとえばコンソール)を起動しようとすると、かならず、システムがハングアップします。

2003/5/9頃 職場の実験機のHDDを交換したらDMAを効かせても起動するようになりました。ただし、やや不安定。

あまりの不安定さに、実験機でKNOPPIXを使うのを半ばあきらめ始めた頃、試しに別のHDDに交換してみたところ、そのHDDでは、DMAを効かしたままでも、KDEが起動しました。KDEを起動中にハングアップする現象も時々は発生するのですが、頻度はかなり減りました。

Mozillaをオートスタートで起動することもできるようになりました。ただし、オートスタートでも、Mozillaは起動に時間がかかるので、しばらくMozillaの画面が出てきません。その間に、コンソールを開くなどの操作をすると、そのとたんにシステムがハングアップします。また、何か(たとえばMozilla)を起動処理中に別の何か(たとえばコンソール)を起動しようとすると、かならずではなくなりましたが、しばしば、システムがハングアップします。

この2台のHDDは共にUDMA(ATA/33)対応で、容量でも10GB⇒13GBと大差ないのですが、1年ほど後に購入したためか、性能は多少良いのです。この問題はタイミング的なもののようなので、性能が向上したことが何か良い影響を与えたのかもしれません。

2003/5/13頃 /etc/mtabの記述が実態と合わないことに起因する問題を対策しました。

(問題状況)

これまで、起動が成功したといっても、/cdromにマウントされたFAT32パーティションをrwモードでリマウントすることが出来ませんでした。/etc/mtabには/dev/cdromというiso9660のデバイスが/cdromにマウントされているように記載されているためです。

(資料1)起動直後の/etc/mtabの例・・・mountコマンドはこれによってマウント状況を認識します。

root@ttyp0[knoppix]# cat /etc/mtab
/dev/root / ext2 rw 0 0
/dev/cdrom /cdrom iso9660 ro 0 0
/dev/cloop /KNOPPIX iso9660 ro 0 0
/ramdisk /ramdisk tmpfs rw,size=194088k 0 0
usb /proc/bus/usb usbdevfs rw,devmode=0666 0 0
< b>/dev/hda2/mnt/hda2vfatro,nosuid,nodev,umask=000,uid=1000,gid=1000,iocharset=euc-jp,codepage=932 0 0
automount(pid892)/mnt/autoautofsrw,fd=6,pgrp=892,minproto=2,maxproto=4 0 0

このため、/cdromや/dev/cdromをrwモードでリマウントしようとすると、mountコマンドは/etc/mtabの記述に基づいて/cdromには/dev/cdromというiso9660のファイルシステムがマウントされていると判断し、これをrwモードでリマウントすることはできないとしてエラーにしてしまうのです。

反面、FAT32パーティション(仮に/dev/hda2とします)を/mnt/hda2にマウントすることは出来てしまいます。mountコマンドは/etc/mtabの記述に基づいて/dev/hda2と/dev/cdromは独立したデバイスであると判断するからです。

KDEのデスクトップに作成される各パーティションのアイコンhda2も、/dev/hda2のマウントポイントは/cdromではなく、/mnt/hda2として作成されます。

(資料2)/etc/fstabの例・・・KDEのデスクトップにある各ドライブのアイコンは、これに従って作成されます。

root@ttyp0[knoppix]# cat /etc/fstab
proc /proc proc defaults 0 0
pts /dev/pts devpts mode=0622 0 0
/dev/fd0 /mnt/auto/floppy auto user,noauto,exec,umask=000 0 0
/dev/cdrom /mnt/auto/cdrom auto user,noauto,exec,ro 0 0
# Added by KNOPPIX
/dev/hda1 /mnt/hda1ntfsnoauto,users,exec,ro,uid=knoppix,gid=knoppix,iocharset=euc-jp 0 0
# Added by KNOPPIX
< b>/dev/hda2/mnt/hda2vfatnoauto,users,exec,umask=000,uid=knoppix,gid=knoppix,iocharset=euc-jp,codepage=932 0 0
/mnt/hda2/knoppix.swp swap swap defaults 0 0

 

しかし、このときのカーネルの認識は異なっています。/dev/hda2に対するリマウント要求として処理されるのです。この点は、/proc/mountsの内容を参照すると分かります。

(資料3)/proc/mountsの例・・・カーネルが認識している実際のマウント状況です。

root@ttyp0[knoppix]# cat /proc/mounts
rootfs / rootfs rw 0 0
/dev/root.old / ext2 rw 0 0
none /proc proc rw 0 0
none /dev/pts devpts rw 0 0
/dev/hda2 /cdrom vfat ro 0 0
/dev/cloop /KNOPPIX iso9660 ro 0 0
ramdisk /ramdisk tmpfs rw 0 0
usb /proc/bus/usb usbdevfs rw 0 0
/dev/hda2 /mnt/hda2 vfat ro,nosuid,nodev 0 0
automount(pid892) /mnt/auto autofs rw 0 0

この結果、/dev/hda2のマウント要求のうち、マウントポイントの指定と、ro/rwなどの一部のオプションだけが処理され、umask、uid、gid、iocharsetなどの多くのオプションは無視されてしまいます。このことは、/mnt/hda2にマウントされたパーティション内のディレクトリ一覧を表示させてみるとファイルのユーザIDやグループIDがknoppixでなく、最初に/cdromにマウントしたときのrootのままになっていることからも分かります。

(資料4)/mnt/hda2にマウントされたパーティション内のディレクトリ一覧

・・・uid=1000,gid=1000のオプションが無視されています。

root@ttyp0[Aist]# cd /mnt/hda2/Aist
root@ttyp0[Aist]# ll
合計 8128
-r-xr-xr-x    1 root     root        40448 2003-03-31 11:55 excel_sample.xls
-r-xr-xr-x    1 root     root      5402078 2003-04-30 15:28 kaisetu32.sxi
-r-xr-xr-x    1 root     root       417280 2003-03-31 11:55 powerpoint_sample.ppt
-r-xr-xr-x    1 root     root         1274 2003-04-30 17:00 setup.sh
-r-xr-xr-x    1 root     root      1467379 2003-04-03 16:50 unixuser.pdf
-r-xr-xr-x    1 root     root       987136 2003-03-31 11:55 word_sample.doc

(検討)

これらの問題は、すべて、/etc/mtabと/etc/fstabの記述が実態と合わないところに起因します。試しに、grubのオプションでランレベル2を指定してテキストモードで起動し、/etc/mtabと/etc/fstabを正しく修正した後で「telinit 5」によってKDEを起動すると、この問題は解消されます。すなわち、/cdromや/dev/cdromをrwモードでリマウントすることも出来ますし、KDEのデスクトップに作成される各パーティションのアイコンhda2も、/dev/hda2のマウントポイントは/cdromとして作成されます。このときの/etc/mtab、/etc/fstab、/proc/mountsの状態は以下のとおりです。(修正箇所はitaric+underlineで示します)

(資料5)/etc/mtabと/etc/fstabを修正してからKDEを起動した場合

root@ttyp0[knoppix]# cat /etc/mtab
/dev/root / ext2 rw 0 0
/dev/hda2 /cdrom vfat ro 0 0
/dev/cloop /KNOPPIX iso9660 ro 0 0
/ramdisk /ramdisk tmpfs rw,size=194088k 0 0
usb /proc/bus/usb usbdevfs rw,devmode=0666 0 0
automount(pid892)/mnt/autoautofsrw,fd=6,pgrp=892,minproto=2,maxproto=4 0 0

root@ttyp0[knoppix]# cat /etc/fstab
proc /proc proc defaults 0 0
pts /dev/pts devpts mode=0622 0 0
/dev/fd0 /mnt/auto/floppy auto user,noauto,exec,umask=000 0 0
/dev/cdrom /mnt/auto/cdrom auto user,noauto,exec,ro 0 0
# Added by KNOPPIX
/dev/hda1 /mnt/hda1ntfsnoauto,users,exec,ro,uid=knoppix,gid=knoppix,iocharset=euc-jp 0 0
# Added by KNOPPIX
/dev/hda2
/cdromvfatnoauto,users,exec,umask=000,uid=knoppix,gid=knoppix,iocharset=euc-jp,codepage=932 0 0
/mnt/hda2/knoppix.swp swap swap defaults 0 0

root@ttyp0[knoppix]# cat /proc/mounts
rootfs / rootfs rw 0 0
/dev/root.old / ext2 rw 0 0
none /proc proc rw 0 0
none /dev/pts devpts rw 0 0
/dev/hda2 /cdrom vfat ro 0 0
/dev/cloop /KNOPPIX iso9660 ro 0 0
ramdisk /ramdisk tmpfs rw 0 0
usb /proc/bus/usb usbdevfs rw 0 0
/dev/hda2 /mnt/hda2 vfat ro,nosuid,nodev 0 0
automount(pid892) /mnt/auto autofs rw 0 0

/proc/mountsをみると、/dev/hda2が/mnt/hda2にもマウントされていますが、これはknoppix-autoconfig(ブート時に実行されるシステム初期化処理の一つ)でスワップファイル/mnt/hda2/knoppix.swpを使用するためにマウントされたものです。このときは、まだ、/etc/mtabも/etc/fstabも修正されていないため、このようになります。もし、knoppix-autoconfigのスワップファイルの処理を実行するより前に/etc/mtabと/etc/fstabが正しく設定されていれば、これも実行されなくなると思われます。

 

(対策)

そこで、miniroot.gzの中にあるlinuxrcを書き換えて、/cdromへのマウントに成功したとき、/etc/mtabと/etc/fstabに、そのマウント情報を書き込むように変更しました。(私が公開するminiroot.gzの中では、他に、/KNOPPIXへのマウントに成功したとき、/etc/mtabにマウント情報を書き込む処理も入っていますが、この処理は必ずしも必要ではないため、ここでは、この処理を行わない場合の対策方法を説明します。)

具体的には以下のようにします。

(1)miniroot.gzの中の/etc/mtabを以下のように修正します。/etc/fstabを修正する必要はありません。

変更前 /dev/root / ext2 rw 0 0
/dev/cdrom /cdrom iso9660 ro 0 0
/dev/cloop /KNOPPIX iso9660 ro 0 0
変更後 /dev/root / ext2 rw 0 0
/dev/cloop /KNOPPIX iso9660 ro 0 0

(2)linuxrcの中のmountit関数でマウント情報を収集しながらマウント処理します。

(3)mountit関数が成功したら、収集されたマウント情報を/etc/mtabの末尾と/etc/fstabの末尾に追加します。

また、この対策のためにlinuxrcを修正する時、/cdromのマウントモードは、マウントするファイルシステム種別に応じて、iso9660ならroモード、vfatかext2ならrwモードでマウントするようにする修正も、併せて行いました。

この対策により、/cdromや/dev/cdromをrwモードでリマウントすることも出来ますし、KDEのデスクトップに作成される各パーティションのアイコンhda2も、/dev/hda2のマウントポイントは/cdromとして作成されます。

この対策後の/etc/mtab、/etc/fstab、/proc/mountsの状態は以下のとおりです。

(資料6)対策後の/etc/mtab、/etc/fstab、/proc/mountsの状態

knoppix@ttyp0[knoppix]$ cat /etc/mtab
/dev/root / ext2 rw 0 0
/dev/hda2 /cdrom vfat rw 0 0
/dev/cloop /KNOPPIX iso9660 ro 0 0
/ramdisk /ramdisk tmpfsrw,size=194016k,nr_inodes=194016 0 0
usb /proc/bus/usb usbdevfs rw,devmode=0666 0 0
automount(pid899)/mnt/autoautofsrw,fd=6,pgrp=899,minproto=2,maxproto=4 0 0

knoppix@ttyp0[knoppix]$ cat /etc/fstab
proc /proc proc defaults 0 0
pts /dev/pts devpts mode=0622 0 0
/dev/fd0 /mnt/auto/floppy auto user,noauto,exec,umask=000 0 0
/dev/cdrom /mnt/auto/cdrom auto user,noauto,exec,ro 0 0
/dev/hda2 /cdrom vfat rw 0 0
# Added by KNOPPIX
/dev/hda1 /mnt/hda1ntfsnoauto,users,exec,ro,uid=knoppix,gid=knoppix,iocharset=euc-jp 0 0

knoppix@ttyp0[knoppix]$ cat /proc/mounts
rootfs / rootfs rw 0 0
/dev/root.old / ext2 rw 0 0
none /proc proc rw 0 0
none /dev/pts devpts rw 0 0
/dev/hda2 /cdrom vfat rw 0 0
/dev/cloop /KNOPPIX iso9660 ro 0 0
ramdisk /ramdisk tmpfs rw 0 0
usb /proc/bus/usb usbdevfs rw 0 0
automount(pid899) /mnt/auto autofs rw 0 0

2003/5/14〜

2003/6/1頃

/cdrom内にスワップファイルの作成(mkdosswapfile)、継続的ホームディレクトリの作成(mkpersistenthome)、KNOPPIXの設定の保存(saveconfig)を行えるようにしました。

この対策版を使っているうちに以下の問題が出てきたため、これらを対策しました。

分類 問題と対策 修正箇所
スワップ
ファイル
mkdosswapfileでスワップファイルを/cdrom内に作成することができない。

⇒/cdromにマウントされているファイルシステム種別がvfatであるとき、最後に/cdromにもスワップファイルを作るかどうか問い合わせる。

mkdosswapfile
スワップファイル/cdrom/knoppix.swpが存在するのに使用されない。

⇒vfatパーティションのマウントポイントが/cdromになることがあり、そのときはすでにマウント済みであることを考慮してknoppix-autoconfigのスワップファイルマウント処理を修正する。

knoppix-autoconfig
継続的ホーム
ディレクトリ
mkpersistenthomeで継続的ホームディレクトリとしてループバックマウントするファイルknoppix.imgを/cdrom内に作成することができない。

⇒/cdromがrwモードでマウントされているとき、継続的ホームディレクトリファイルknoppix.imgを作成するパーティションの選択肢の先頭に/cdromにマウントされているパーティションを加える。

mkpersistenthome
継続的ホームディレクトリファイル/cdrom/knoppix.imgが存在するのに使用されない。

⇒knoppix-autoconfigで/mnt/xxxxをすべてスキャンしても継続的ホームディレクトリファイルknoppix.imgが見つからないとき、/cdrom/knoppix.imgが存在するかどうかチェックする。

knoppix-autoconfig
日本語モード(ブートオプションlang=ja)で作成した継続的ホームディレクトリファイル/cdrom/knoppix.imgが存在するとき、英語モード(ブートオプションlang=us)で起動してもKDEは日本語になる。

⇒以下のように対策した。

  • mkpersistenthomeで作成するファイルを以下のように変更した。
    (変更前)マウントポイント/knoppix.img
    (変更後)マウントポイント/KNOPPIX/$LANGUAGE/knoppix.img
  • knoppix-autoconfigで継続的ホームディレクトリファイルknoppix.imgをサーチするとき、以下の順でサーチする。
    @マウントポイント/KNOPPIX/$LANGUAGE/knoppix.img
    Aマウントポイント/$LANGUAGE/knoppix.img
    Bマウントポイント/KNOPPIX/knoppix.img
    Cマウントポイント/knoppix.img
mkpersistenthome

knoppix-autoconfig

継続的ホームディレクトリがしばしば壊れる。ブートオプションhome=scanなどを指定するとKDEが起動しなくなる現象である。

システムがハングアップしたとき、まれにではあるが[Alt]+[SysRq]+SなどのSysRqキーも効かないことがある。このような場合、電源を切断して再起動すると、多くの場合、継続的ホームディレクトリは壊れている。他に、まるで心当たりがないが壊れていたこともあった。

壊れた場合、home=scanを指定せずに再起動してe2fsckを実行することで回復できる場合もあるが、回復できない場合も多い。

⇒特に対策していない。以下のように運用している。

GRUBのブートメニューにhome=scanを指定したものと指定しないものを用意しておき、壊れたらhome=scanを指定しないもので起動して、継続的ホームディレクトリファイルを再作成する。

なお、壊れてKDEが起動しなくなっても、マウントは出来ることが多いので、マウントできる場合は、再作成後にデータをコピーする。

KNOPPIXの
設定の保存
KNOPPIXの設定の保存でも、継続的ホームディレクトリにおける日本語モード/英語モードの問題と同じ問題があると考え、knoppix-autoconfigでのサーチ順の拡張のみ同じ対策を実施した。(saveconfigは未対策であるが、必要なら設定の保存後、手操作で移動することを想定している。)

すなわち、以下のように対策した。

  • knoppix-autoconfigでKNOPPIXの設定展開手続きknoppix.shをサーチするとき、以下の順でサーチする。
    @マウントポイント/KNOPPIX/$LANGUAGE/knoppix.sh
    Aマウントポイント/$LANGUAGE/knoppix.sh
    Bマウントポイント/KNOPPIX/knoppix.sh
    Cマウントポイント/knoppix.sh
knoppix-autoconfig
継続的ホームディレクトリとKNOPPIXの設定の保存を併用するとき、その設定を継続的ホームディレクトリ内に保存できると便利なことがある。

⇒以下のように対策した。

  • saveconfigで継続的ホームディレクトリがマウントされているとき、設定の保存先としてホームディレクトリ(/home/knoppix)を選択できるようにする。
  • ブートオプションhome=scan指定のとき、/home/knoppix/knoppix.shを最初にチェックし、これがあれば、これをKNOPPIXの設定展開手続きとして使用する。(knoppix-autoconfig)
saveconfig

knoppix-autoconfig

これらの問題点の原因や具体的対策方法の説明は省略します。

2003/6/中旬 KNOPPIXを20030415-20030430⇒20030520-20030606にバージョンアップしたら、職場の実験機でKDEが起動しなくなり、結局元に戻すハメに。

ブートオプション「dma」を指定しなければ問題なく起動するのですが、「dma」指定なしでは遅すぎて使えないため、結局、職場の実験機だけは20030415-20030430版に戻しました。他のマシンは20030520-20030606にバージョンアップしました。

このときはKDEも3.1.1⇒3.1.2にバージョンアップしていたのですが、旧版で保存した設定をそのまま使っていたため、これが原因ではないかと考え、設定は新たに保存しなおしました。しかし、それでもKDEが起動しない原因は解決しなかったため、これが原因ではないと考えます。. 

2003/7/初 職場の実験機のメモリを128MB⇒256MBに拡張したら、KNOPPIXを20030415-20030430⇒20030606-20030625にバージョンアップしても、「dma」指定で起動できるようになりました。安定度は若干向上したように思いますが、まだ、やや不安定であることには変わりありません。
2003/7月 職場の実験機のHDDを再度交換(ATA/33⇒ATA/66)したらブートオプション「dma」指定で起動しても安定して動作するようになりました。

以下の順にシステムを拡張していきました。そのたびに性能が向上するのはもとより、安定性も向上していったように思います。
5〜6月ころは、かなりの頻度で発生していたハングアップが、最近はめっきり減っているからです。

(1) HDDは13GB ATA/33 ⇒ 30GB ATA/66に交換しました。ただし、このときはケーブルは40芯のままで、スレーブにCDROMを接続している状態であったため、ATA/66による高速アクセスはできません。これは、/dev/hdcと/dev/hddにもHDDがつながっていたためです。

(2) Promiseの増設IDEインタフェースUltra100を増設し、/dev/hdc⇒/dev/hde、/dev/hdd⇒/dev/hdg、/dev/hdb(CDROM)⇒/dev/hdcに接続変更、/dev/hdaの接続ケーブルも80芯のものに交換してATA/66による高速アクセスができるようにしました。

 

以上のことを総合して考えると、メモリ増設にせよ、HDD交換にせよ、性能が向上するような対策をすると、安定度も向上する(システムのハングアップが減る)ということが言えそうに思います。

2003/8/12以降 KNOPPIX 3.2 20030726-03330812版でカーネルが2.4.20⇒2.4.21に、cloopが0.63⇒1.0に、それぞれバージョンアップされまれましたが、このときを境に、KNOPPIXの安定性は劇的に向上し、システムのハングアップ頻度は、Windowsのそれと、大差ない程度まで減ってきたように感じられます。

 

 

ダウンロード

この実験の結果は以降の各実験に引き継いでいます。ダウンロードファイルは、以降の各実験で提供するものを使用してください。

ここでは、あくまで検討用として、この実験で作成したシェル手続きをアップします。

ファイル説明

linuxrc
    20030606-20030717版
    20030606-20030625版

    20030520-20030606版
    20030415-20030430版

最新版は実験1-6にアップ
したminirt24.gzの中に
入っています。

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

このlinuxrcは20030520-20030606版をベースに修正しましたが、以下の各版でも使用できます。

  • 20030415-20030430版
  • 20030520-20030606版
  • 20030606-20030625版
  • 20030606-20030717版
 

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

  • 内部関数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手続きが存在すれば、これを呼び出します。

knoppix-autoconfig
    20030520-20030606版

 

最新版は実験1-6にアップ
したminirt24.gzの中に
入っています。

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が存在しない場合のみ行われます。

mkdosswapfile
    KNOPPIX-DVD 3.2版
    KNOPPIX-RW0.2.0_20031223版
    20031119-20031219版
    20031103-20031119版
    20030924-20031015版
    20030924-20031002版
    20030726-20030826版
    20030726-20030812版
    20030606-20030717版
    20030606-20030625版

    20030520-20030606版
    20030415-20030430版

最新版は実験1-6にアップ
したminirt24.gzの中に
入っています。

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

mkpersistenthome
    KNOPPIX-DVD 3.2版
    KNOPPIX-RW0.2.0_20031223版
    20031119-20031219版
    20031103-20031119版
    20030924-20031015版
    20030924-20031002版
    20030726-20030826版
    20030726-20030812版
    20030606-20030717版
    20030606-20030625版

    20030520-20030606版
    20030415-20030430版

最新版は実験1-6にアップ
したminirt24.gzの中に
入っています。

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

saveconfig
    KNOPPIX-DVD 3.2版
    KNOPPIX-RW0.2.0_20031223版
    20031119-20031219版
    20031103-20031119版
    20030924-20031015版
    20030924-20031002版
    20030726-20030826版
    20030726-20030812版
    20030606-20030717版
    20030606-20030625版

    20030520-20030606版
    20030415-20030430版

最新版は実験1-6にアップ
したminirt24.gzの中に
入っています。

  • /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]

 

 


 

実験1-2

KNOPPIXをNTFSパーティションにコピーしてGRUBで起動する。

実験の概要

KNOPPIXの本体ファイル(/cdrom/KNOPPIX/KNOPPX)をNTFSパーティションにコピーしておき、grubで起動する実験です。

grubで使用するファイルはFAT32パーティションにおいておきますが、最大の容量を閉める本体ファイルはNTFSパーティションに置こうというものです。

この場合のKNOPPIXの起動処理は、おおむね、以下のようになります。

  1. MBRにインストールしたGRUBを起動し、grubがFAT32パーティションからvmlinuzとminiroot.gzを読み込んで、kernelに制御を渡す。

  2. kernelは基本的なハードウェアを認識し初期化した後、ashを使ってlinuxを実行する。

  3. linuxrcの中ではNTFSパーティションを/cdromにroモードでマウントしたのち、

  4. /cdrom/KNOPPIX/KNOPPXを/KNOPPIXにro,cloopでループバックマウントする。

 

実験結果
実験日 実験結果
2003/5/24 /cdromへのNTFSのマウントは成功しましたが、KNOPPIXの本体ファイル/KNOPPIXにマウントするところでエラーになり、失敗でした。
2003/7/5 前回の実験で使った本体ファイルは、激しくフラグメントしたファイルであったことが判明。

ちなみに、iso9660のCDROMでは原理的にフラグメントは無く、FAT32にインストールした場合もフラグメントは少ないものでした。

そこで、NTFSを最適化してまったくフラグメントの無い状態にして再トライしました。

しかし、やはり今回も同じところで失敗。今回はKNOPPIXの本体ファイル/KNOPPIXにマウントするところでエラーではなく、システムがハングアップしてしまうことが異なるだけでした。

2003/8/23頃 KNOPPIX-20030726-20030812版で試してみたが、結果は7/5と同じ。このバージョンからcloopが1.0に、カーネルが2.4.21に上がってきるので期待したが、残念。
2003/10/9 KNOPPIX-20030924-20031002版で試してみたが、やはり、結果は7/5と同じ。このバージョンからcloopが1.02に、カーネルが2.4.22に上がっている。
2003/12/15 実験1-6でcloopファイルをNTFSから読み込んでオンメモリKNOPPIXを立ち上げる実験に成功しました。詳細は実験1-6楽天広場のこの日の日記ページを参照してください。
2004/3/20頃 KNOPPIX-20040216-20040220版で試してみたが、やはり、結果は7/5と同じ。このバージョンからカーネルが2.4.24に上がっている。cloopは既にV2になっている。
2004/5/22〜23

blackboxさんが実験を行い、KNOPPIX 3.4でサポートされたKernel 2.6だとNTFSからブートできること、および、Kernel 2.4でも、NTFS上のisoイメージをループバックマウントした上で、その中のcloopファイルをマウントすれば成功することがわかり、その結果を以下のページに報告してくれました。blackboxさん、ありがとうございます。

http://plaza.rakuten.co.jp/miyawaki/diary/200405160000/

http://park7.wakwak.com/~blackbox/

2004/6/5〜6 blackboxさんが行われた実験を私も追試し、KNOPPIX実験室のminirt24.gz/minirt26.gzでもNTFSからブートできることを確認しました。そのminirt24.gz/minirt26.gzは実験1-6からダウンロードできます。

 

参考資料

この実験では、mldmini2.0のデバイス確認版のramimage.gz(特に、その中のlinuxrc)を参考にしました。

mldmini2.0ではvmlinuzとramimage.gzをNTFS上に置いておき、NTFS上のext2イメージファイルをループバックマウントしてシステムを起動します。このため、そのlinuxrcでNTFSをどのように取り扱っているかを参考にさせていただきました。

 


 

実験1-3

USB HDD上のファイルをcloopでマウントしてKNOPPIXを起動する。

実験の概要

KNOPPIXの本体ファイル(/cdrom/KNOPPIX/KNOPPX)を外付けUSB HDD上のFAT32パーティションにおいておき、grubで起動する実験です。

grubで使用するファイルは内蔵IDE HDDのFAT32パーティションにおいておきますが、最大の容量を閉める本体ファイルは外付けUSB HDD上のFAT32パーティションに置こうというものです。

この実験はKNOPPIXのメーリングリストでUSB CDROMからブートする方法の問い合わせがあったことがきっかけでした。わたしはUSBのCDROMは持っていませんが、USBのHDDは持っており、このHDDからKNOPPIXを起動できたら便利になるので、実験してみました。

この場合のKNOPPIXの起動処理は、おおむね、以下のようになります。

  1. MBRにインストールしたGRUBを起動し、grubがFAT32パーティションからvmlinuzとminiroot.gzを読み込んで、kernelに制御を渡す。

  2. kernelは基本的なハードウェアを認識し初期化した後、ashを使ってlinuxrcを実行する。(以下は、このlinuxrcでの処理)

  3. 必要な追加モジュールをインストール(insmod)する。

  4. kernelにscsiバスのスキャンを指示し、USB HDDをkernelに認識させる。

  5. 外付けUSB HDD上のFAT32パーティションを/cdromにroモードでマウントしたのち、

  6. /cdrom/KNOPPIX/KNOPPXを/KNOPPIXにro,cloopでループバックマウントする。

実験結果
実験日 実験結果
2003/7/5 成功しました。

ポイントは、FAT32パーティションを/cdromにマウントする前に、以下の処理をしておくことです。

(1)以下のモジュールをinsmodします。

モジュール 概要
usbcore.o USB共通
usb-uhci.o USB1.1ドライバ
ehci-hcd.o USB2.0ドライバ
usb-ohci.o USB2.0インタフェースのUSB1.1ドライバ
usb-storage.o USB HDD
nls_cp437.o
nls_iso8859-1.o
英語をサポートするためのモジュール
nls_cp932.o
nls_euc-jp.o
日本語をサポートするためのモジュール

現在、使用していませんが、別の実験で日本語を使えるようにする実験があり、そのときに使用するため、入れてあります。

(2)kernelにSCSIバスのスキャンを指示します。

そのコードは以下のとおりです。

for hostadapter in 0 1 2 3; do
    echo scsi add-single-device $hostadapter 0 0 0 > /proc/scsi/scsi
done
sleep 2

(3)knoppix-autoconfigでは、すでにusb関連のモジュールが読み込まれている可能性があることを考慮して処理を修正します。

knoppix-autoconfigを修正しないとブート時に認識したUSBストレージ以外のUSBデバイス(USBマウス含む)が使えない状態で起動してしまいます。しかし、knoppix-autoconfigはknoppix.shでは修正できません。

そこで、私は、linuxrc2を使ってknoppix-autoconfigを修正しました。linuxrc2は私がminiroot.gzをカスタマイズしたときに追加したスクリプトで、linuxrc(ブート時に最初に実行されるシステム初期化スクリプト)の最後で呼び出されます。この時点では、まだknoppix-autoconfigが呼び出される前ですが、すでにRAMディスクにコピーされているので、ここでknoppix-autoconfigを入れ替えることで修正できます。

knoppix-autoconfigとlinuxrc2を以下のように配置すれば、knoppix-autoconfigを入れ替えることができます。(ただし、「/cdrom」にマウントするUSBドライブがWindowsでは「e:」であると仮定します。)
  • e:\KNOPPIX\linuxrc2.d\linuxrc2
  • e:\KNOPPIX\linuxrc2.d\files.d\etc\init.d\knoppix-autoconfig

なお、linuxrc2の詳細については、設定保存機能の拡張についてを参照してください。


[残留問題点]

ただし、まだ以下の問題が残っています。

  • PCMCIA(CardBus)を使用して増設したUSBインタフェースには対応していません。
  • 起動直後はUSBマウスが認識されません。USBポートから抜いて挿しなおすと認識されます。
2003/8/1 私の環境では、日本語化されているはずのMozillaのメニューやダイアログが英語になるという問題が発覚し、その原因の1つが、このlinuxrcの中で実行している「cd /proc」であることが判明しました。

問題の箇所は、デバッグ等のために、/procの情報をログに出力する関数にありました。

変更前 snapprocinf() {
   cd /proc
   echo "----------" /proc "----------"
   echo * scsi/* bus/*/*
   for proc in cmdline modules partitions filesystems devices scsi/scsi bus/*/d* pci; do
       echo "----------" /proc/$proc "----------"
       cat /proc/$proc
   done
   echo "----------" end /proc "----------"
}
変更後 snapprocinf() {
   echo "----------" /proc "----------"
   echo /proc/* /proc/scsi/* /proc/bus/*/*
   for proc in /proc/cmdline /proc/modules /proc/partitions /proc/filesystems /proc/devices  /proc/scsi/scsi /proc/bus/*/d* /proc/pci; do
       echo "----------" $proc "----------"
       cat $proc
   done
   echo "----------" end /proc "----------"
}

私は、この「cd /proc」の効果は関数からリターンすると消えるものと思っていました。しかし、内部関数の呼び出しは、組み込みコマンド「.」によるシェル手続き呼び出し同様、シェル変数等の環境が引き継がれるようで、ここで実行した「cd /proc」の効果が、linuxrc終了時まで持続され、これがシステム全体のグローバルな初期設定となってしまったようです。

 

ダウンロード

この実験で使用したファイルを以下にアップしておきます。参考にしてください。

ファイル 説明

miniroot.gz
   20031103-20031119版

最新版のminiroot.gzは実験1-6
でアップしています。ただし、その
miniroot.gzは1.44MBブートFD
イメージには入りません。ご注意
ください。

(当該バージョンのアップロードは
終了致しました。ご入用の方は、
メールをいただければ、お送り致
します。)

下のminiroot.gzを20031103-20031119版対応に修正したものです。

20031119-20031219版でも使用できますが、この版のtestcdオプションの変更(チェック中のファイル名が表示される等)は反映されていません。

本家の20031103版でcloopのバージョンが1.02⇒2.00にアップしたため、cloopファイル形式に互換がなくなってしまったようです。ほかに、scsiドライバも2つほど更新されていました。

このminiroot.gzは、下のminiroot.gz中の、これらのモジュールを入れ替えたものです。

miniroot.gz
   20030924-20031015版

   20030924-20031002版

(当該バージョンのアップロードは
終了致しました。ご入用の方は、
メールをいただければ、お送り致
します。)

下のminiroot.gzのカーネルモジュールをバージョン2.4.22-xfsのものに入れ替えたものです。

KNOPPIXは、このバージョンからカーネルのバージョンが2.4.21-xfs⇒2.4.22-xfsにアップしたためです。

以下の点を除き、20030726-20030812版向けのもの同じ修正も入れてあります。

  • 20030726-20030812版で起動すると/etc/fstabに「iocharset=euc-jp」が入らない問題を対策する/usr/sbin/rebuildfstabは不要になったため削除しました。

miniroot.gz
   20030726-20030826版

   20030726-20030812版

(当該バージョンのアップロードは
終了致しました。ご入用の方は、
メールをいただければ、お送り致
します。)

下のminiroot.gzのカーネルモジュールをバージョン2.4.21-xfsのものに入れ替えたものです。

KNOPPIXは、このバージョンからカーネルのバージョンが2.4.20-xfs⇒2.4.21-xfsにアップしたためです。

他に以下の修正も入れてあります。

これらの組み込まれたファイルは、独自に追加したブートオプション「linuxrc2」を指定し、miniroot.gz内のlinuxrc2が実行されると、対応するファイルと入れ替えられます。

miniroot.gz
   20030606-20030717版
   20030606-20030625版

   20030520-20030606版

(当該バージョンのアップロードは
終了致しました。ご入用の方は、
メールをいただければ、お送り致
します。)

本実験で使用したminiroot.gzです。オリジナルのminiroot.gzに対する主な変更点は以下のとおりです。
  • linuxrcを修正版(本表内のlinuxrcの項目を参照)に変更しました。
  • /etc/mtabから/dev/cdromの行と、/dev/cloopの行を削除しました。これらの行に相当する情報はlinuxrcの中でmountが成功したときに出力されます。
  • USBブート用のモジュールを追加しました。
  • SCSI用のモジュールの多くを削除しました。残っているのは、ADAPTECのSCSIカード用のモジュールとncr53c8xx.oだけです。

なお、20030520-20030606版をベースに修正していますが、20030606-20030625版や20030606-20030717版でも、そのまま使用できます。

knoppix-autoconfig
   
20030726-20030826版
   20030726-20030812版

 

最新版は実験1-6にアップ
したminirt24.gzの中に
入っています。

下のknoppix-autoconfigに20030606-20030717版⇒20030726-20030812版の変更点を反映したものです。
20030726-20030826版ではknoppix-autoconfigの変更はないので、そのまま動作します。

他に以下の修正も入れてあります。

  • 「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)を使用できる可能性があるためです。
  • 「dma nocddma」を指定すると、IDEのHDDはDMAを使ってアクセスしますが、CDROMにはDMAを使用せず、PIOでアクセスするようになります。
    (理由)このバージョンから「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

     

knoppix-autoconfig
   20030606-20030717版
   20030606-20030625版

最新版は実験1-6にアップ
したminirt24.gzの中に
入っています。

下のknoppix-autoconfigに20030520-20030606版⇒20030606-20030625版の変更点を反映したものです。
20030606-20030717版ではknoppix-autoconfigの変更はないので、そのまま動作します。

knoppix-autoconfig
   20030520-20030606

20030520-20030606版をベースに修正したknoppix-autoconfig(解説は、こちら)に本実験のための修正を入れたものです。

他に以下の修正もいれてあります。

  • vfatをマウントするときのumaskオプションは022に統一しました。(2003/8/2)

linuxrc
    20031103-20031119版

    20030924-20031015版
    20030924-20031002版
    20030726-20030826版
    20030726-20030812版
    20030606-20030717版
    20030606-20030625版

    20030520-20030606版

 

最新版は実験1-6にアップ
したminirt24.gzの中に
入っています。

miniroot.gzの中に入っているlinuxrcです。検討の便宜を考え最新版のlinuxrcをアップします。
20030520-20030606版をベースに修正したもの(解説は、こちら)に本実験のための修正を入れました。

なお、修正のベースは20030520-20030606版ですが、以後の各版での修正内容も反映しており、左記の各版で共通に使用できます。

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

  • ブートオプション「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)

linuxrc2
   20030606-20030717版
   20030606-20030625版

   20030520-20030606版

 

最新版は実験1-6にアップ
したminirt24.gzの中に
入っています。

今回の実験では、knoppix-autoconfigを入れ替えるために使用します。

ただし、20030726-20030812版向け以降のminiroot.gzには、knoppix-autoconfigの入れ替えに必要なファイルが入っているので、以下の操作は不要です。20030606-20030717版以前のminiroot.gzを使用する場合は、以下の操作をしてください。

knoppix-autoconfigとlinuxrc2を以下のように配置してください。(ただし、「/cdrom」にマウントするUSBドライブがWindowsでは「e:」であると仮定します。)

  • e:\KNOPPIX\linuxrc2.d\linuxrc2
  • e:\KNOPPIX\linuxrc2.d\files.d\etc\init.d\knoppix-autoconfig

このlinuxrc2には、他にも機能がありますが、それについては、こちらを参照してください。

grub/menu.lst

最終更新日

私が普段使っているgrubのメニューファイルです。参考にしてください。
このうち、USBブートの実験で使用したメニュー項目は以下の項目です。
  • Knoppix 3.2 japanese (sda1, home=ramdisk, USB)
    kernel (hd0,1)/boot/vmlinuz.recent ro cdrom=/dev/sda1 init=/etc/init lang=ja hdb=scsi    hdc=scsi noapic nofirewire vga=normal screen=1024x768 refresh=75 dma usb2.0 usbboot
    initrd (hd0,1)/boot/miniroot.recent.gz


参考資料

この実験では、mldmini2.0のデバイス確認版のramimage.gz(特に、その中のlinuxrc)を参考にさせていただきました。

このmldmini2.0では、セールスポイントの一つに「外付のHDDからのブート:USB接続、IEEE1394接続またはPCMCIAカード経由でのSCSI,IDEディスクへもインストールして起動することができます。」が挙げられており、そのlinuxrcは大変参考になりました。カーネルにscsiバスのスキャンを指示するところは、このlinuxrcを読んで分かったことです。

今後、PCMCIA(CardBus)を使用して増設したUSBインタフェース経由でのUSBブートを実験するときにも大変参考になりそうです。

 

 


 

実験1-4

miniroot.gzに/bin/mountを組み込み、オプション付でマウントできるようにする。

実験の概要

linuxrcで/cdromをマウントするときにオプション指定でマウントしようという実験です。

linuxrcで使っているmountコマンドはash-knoppixの組み込みのmountコマンドですが、このコマンドだと、オプションは、remountとro/rw程度しか指定できません。そこで、miniroot.gzに/bin/mountを組み込み、各種オプションを指定できるようにすることがこの実験の目的です。

オプションを指定できると、以下のようなメリットがあります。

この実験では、次のようなオプションを指定します。このオプションはKDEのアイコンでマウントしたときと同じです。

         -orw,umask=000,uid=1000,gid=1000,nosuid,nodev,iocharset=euc-jp

/bin/mount自体は小さいのですが、ライブラリ/lib/libc.so.6を使用し、これが1MBを超える巨大なものです。このため、minirootのサイズも3MBでは足りなくなり、今後のことも考えて5MB程度に拡大します。

この結果、miniroot.gzは1.44MBのFDイメージには入りきらなくなります。ディスク上でgrubを使ってブートするときには問題ありませんが、CDブートする場合には、2.88MBのFDイメージに切り替えるか、ISOLINUXを使う必要があります。

2.88MBのFDイメージでは、将来、再び容量不足に見舞われることも考えられることと、ISOLINUXは柘植さんが実験結果を報告してくださっていることから、今回はISOLINUXを使用するつもりです。

実験自体は、以下の2ステップで行います。

ステップ 内容 状況
KNOPPIXをFAT32にインストールし、GRUBで本実験用のminiroot.gzを指定して起動する。 OK
ISOLINUXで本実験用のminiroot.gzを指定してCDブートする。 近日実験予定

 

実験結果
実験日 実験結果
2003/6/21 miniroot.gzに/bin/mountを組み込み、オプション指定でマウントしてみましたが、ファイルが見つからない旨のエラーになり、起動できず、失敗。

失敗原因はすぐには分かりませんでしたが、その後、libcが必要なこと、そしてminiroot容量不足、起動FDイメージ容量不足などが相次いで判明しました。
2003/7/13 まず、第1ステップとして、FAT32にインストールしてgrubで起動できるようにするところまで行います。実験のベースとして使用するminiroot.gzは、実験1-3でUSBブート機能を追加したものですが、実験1-3で削除したSCSIドライバも復活させて、オリジナルのminiroot.gzが持っていた機能はすべて包含するようにしました。

しかし、・・・残念、失敗しました。libcだけではなく、まだ何か足りないようです。なんだろう。・・・調査中です。

2003/7/24 7/13に実験したminiroot.gzに/lib/ld-linux.so.2を追加したところ、成功しました。

/bin/mountは/etc/mtabも更新してくれるので、linuxrcでの/etc/mtabの更新は不要になり、削除しました。

2003/8/4 linuxrcは実験1-3用のminiroot.gzと同じものを使用できるように修正しました。

 

ダウンロード

この実験で使用したminiroot.gzを以下にアップしておきます。参考にしてください。他のファイルは実験1-3と同じものを使用します。(miniroot.gzの中に含まれるlinuxrcも実験1-3と同じものを使用しています)

ファイル 説明

miniroot.gz
   20031103-20031119版

最新版のminiroot.gzは実験1-6
でアップしています。

(当該バージョンのアップロードは
終了致しました。ご入用の方は、
メールをいただければ、お送り致
します。)

下のminiroot.gzを20031103-20031119版対応に修正したものです。

本家の20031103版でcloopのバージョンが1.02⇒2.00にアップしたため、cloopファイル形式に互換がなくなってしまったようです。ほかに、scsiドライバも2つほど更新されていました。

このminiroot.gzは、下のminiroot.gz中の、これらのモジュールを入れ替えたものです。

miniroot.gz
   20030924-20031015版

   20030924-20031002版

(当該バージョンのアップロードは
終了致しました。ご入用の方は、
メールをいただければ、お送り致
します。)

下のminiroot.gzのカーネルモジュールをバージョン2.4.22-xfsのものに入れ替えたものです。

KNOPPIXは、このバージョンからカーネルのバージョンが2.4.21-xfs⇒2.4.22-xfsにアップしたためです。

実験1-3のminiroot.gzの20030924-20031002版と同じ修正もいれてあります。

miniroot.gz
   20030726-20030826版
   20030726-20030812版

(当該バージョンのアップロードは
終了致しました。ご入用の方は、
メールをいただければ、お送り致
します。)

下のminiroot.gzのカーネルモジュールをバージョン2.4.21-xfsのものに入れ替えたものです。

KNOPPIXは、このバージョンからカーネルのバージョンが2.4.20-xfs⇒2.4.21-xfsにアップしたためです。

他に以下の修正もいれてあります。

  • 実験1-3で削除したSCSI用のモジュールを復活しました。したがって、オリジナルのminiroot.gzが持っていた機能もすべて引き継いでいます。
  • 実験1-3のminiroot.gzの20030726-20030812版と同じ修正もいれてあります。

miniroot.gz
   20030606-20030717版
   20030606-20030625版

   20030520-20030606版

(当該バージョンのアップロードは
終了致しました。ご入用の方は、
メールをいただければ、お送り致
します。)

本実験で使用したminiroot.gzです。ベースは実験1-3で作成したminiroot.gzです。実験1-3で確認した機能はすべて引き継いでいます。主な変更点は以下のとおりです。
  • linuxrcでmountするとき、明示的に/bin/mountを指定し、マウントするファイルシステムに応じてマウントオプションを選んでマウントするようにしました。
  • /lib/libc.so.6と/lib/ld-linux.so.2を追加しました。
  • 実験1-3で削除したSCSI用のモジュールを復活しました。したがって、オリジナルのminiroot.gzが持っていた機能もすべて引き継いでいます。

なお、20030520-20030606版をベースに修正していますが、20030606-20030625版や20030606-20030717版でも使用できます。

 

 


 

実験1-5

Windows XPのスワップファイルをKNOPPIXのスワップファイルとして使う。

実験の概要

NTFSパーティションにあるWindows XPのスワップファイルPagefile.sysをKNOPPIXのスワップファイルとしても使う実験です。Pagefile.sysは容量が大きく、しかも、通常はフラグメントも少ないことが多いので、KNOPPIXでもスワップファイルとしてはうってつけです。

以前、まだ、live linux2を使っていた頃、FAT32パーティション上のスワップファイルPagefile.sys(Windows 2000)やWin386.swp(Windows 98)をLinuxのスワップファイルとしても使う実験を行い、うまくいった記憶があります。

これをKNOPPIXで追試するのが、この実験の目的です。このとき、FAT32をNTFSに変え、OSもWindows 2000⇒windows XPに変えて追試します。

実験結果
実験日 実験結果
未着手 近日、実験して報告したいと考えております。

 


 

実験1-6

オンメモリでKNOPPIXを使う。

実験の概要

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

最初、このオプションのうちのtohdオプションは、実験1-1で紹介しているブート方法を支援するオプションだと考えていました。

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

もちろん、このようなことをするためには、少なくとも900MB程度のメモリが必要になります。最近は、1GB以上のメモリを搭載したマシンも少なくなくなってきたのでサポートされたのでしょう。私のマシンは、まだ384MBなので、このようなことはできません。

しかし、パッケージ削除版や、最近公開されたKNOPPIX-RWを使えば、cloopファイルのサイズが150MB程度に縮小されるので、私のマシンでも、オンメモリでこれらを使用することが出来ます。ここでは、これらのKNOPPIXをオンメモリで使う実験を行い、その結果を報告します。

 

実験の経過と結果
日付 状況
(2003/2/27) 2/17に石岡さんがパッケージ削除版の構想をMLに投稿なさいました。その中で、「こちらでテストした限りでは、メモリ 64MB で動きます。iso9660 イメージのサイズは 150MB を切ると思います。」とのことだったので、私は、この日に「オンメモリKNOPPIX」と題して「ということなら、いっそのこと、cloopファイルシステム全体をRAMディスクに読み込むというのはどんなものでしょう。」「メモリも64MB+150MBなら214MB。全部RAMだから、性能は申し分なし。理想的なシステムになりそうな気がします。」と投稿しました。(このとき、石岡さんも同様なことは考えておられたようです。)
(2003/4/27) 石岡さんがパッケージ削除版(KDEMINI)を公開されました。cloopファイルのサイズは155MB。ベースは本家の2003-1-20-英語版。
(2003/10/3) toramオプション(KNOPPIXをオンメモリで実行するためのオプション)をサポートしたKNOPPIX3.3日本語版 (knoppix_20030924-20031002)が公開されました。
2003/10/11 toramオプションと、同時に追加されたtohd、fromhdオプションについて、机上調査した結果を楽天広場のこの日の日記ページにアップしました。
2003/10/13 toram、tohd、fromhdの各オプションをパッケージ削除版に移植して、オンメモリKNOPPIXの実験を行いました。cloopファイルのサイズが155MBまで小さくなっているため、搭載メモリが384MBしかない私のマシンでも、オンメモリKNOPPIXの実験が出来ました。HD⇒メモリのコピー時間は、DMAなしで39秒、DMAありで15秒でした。詳細は、楽天広場のこの日の日記ページを参照してください。
2003/10/15 NTFSから読み込んでオンメモリKNOPPIXを立ち上げる実験をしましたが、失敗。しかし、原因は分かっており、対策方針は固まりました。詳細は楽天広場のこの日の日記ページを参照してください。
(2003/12/09) 南島さんがKNOPPIX-RWを公開されました。cloopファイルのサイズは150MB。ベースは産総研の日本語版20031103-20031119版(当時の最新版)のようです。
2003/12/15 パッケージ削除版からKNOPPIX-RWに切り替えてオンメモリKNOPPIXの実験を再開。cloopファイルをFAT32から読み込むだけでなく、NTFSから読み込んでオンメモリKNOPPIXを立ち上げる実験にも成功しました。詳細は楽天広場のこの日の日記ページを参照してください。
2003/12/16 toramオプションでRAMディスクにコピーするとき、DMAを効かせて高速化する実験にも成功しました。このコピー処理の時間は以下の通りです。
条件 読込時間 [秒]
読み込み元 DMA条件 cloopファイル パッチファイル 合計
FAT32 DMAあり 15 1 16
FAT32 DMAなし 24 2 26
NTFS DMAあり 15 1 16
NTFS DMAなし 37 3 40
2003/12/20 メモリ256MBのマシンだと、普通にKNOPPIX-RWを起動しようとすると起動しないが、toramオプションを指定すると起動するという報告がKNOPPIX-MLにあり、その状況をK.Iwaiさんが克明に実験して報告してくれました。[knoppix:2445,2451]

この報告からinode数不足だとピンと来たため、/ramdiskをマウントするとき、inode数を指定するように変更しました。その指定値は、ramdisk容量に応じて以下のようになります。

ramdisk容量[単位:KB] inode数 算出式
50000KB以下 inode数=ramdisk容量
50001〜100000KB inode数=ramdisk容量/2 + 25000
100001KB以上 inode数=ramdisk容量/4 + 50000

なお、実験1-1、1-3、1-4でアップしているlinuxrcやminiroot.gzでは、すでに、「inode数=ramdisk容量」に指定しています。(この件については、本ページでの説明が漏れていましたが、この修正は実験1-1に着手する前(2003年2月頃)には修正していたため忘れていたものです。)

(2003/12/23) 南島さんがKNOPPIX-RWの第0.2版を公開されました。この版では、このページにアップしていた第0.1.1版対応のminiroot.gzが採用されました。
2003/12/25

2003/12/30
  • 第0.2版では、このページのminiroot.gzを採用しているにもかかわらず、NTFSから読み込んでオンメモリで使用しようとするとNTFSのマウントに失敗する現象が発生しました。
    原因は不明ですが、私が普段使っているminiroot.gzの再作成用のshell手続きを使って再作成すると、問題なく起動するようになりました。推測ですが、解凍後のminiroot 4.3MBのうち、実際にディスクイメージで初期化されるのは先頭の4MBだけになっているのかもしれません。(同様な現象は以前にも起きたことがあり、楽天広場の2003/12/15の日記で触れています。)
    この再作成用のshell手続きとその関連ファイルはアーカイブファイル「miniroot.resizer.tbz」にアップしました。
  • linuxrcの冒頭で、環境変数に設定されている内容をログに出力するようにしました。この結果、ブートオプションで「キーワード=値」の形式で指定したオプション(例:cdrom=/dev/hda2)は、キーワードと同じ名前の環境変数に、その値が設定された状態でlinuxrcが実行されることが判明しました。そこで、実験的に、cloop=xxxxのオプションについて、この環境変数を使う処理に書き換えました。
  • /libの持ち方を第0.1.1版で行っていたようなシンプルな持ち方に戻しました。ただし、この変更をlinuxrcの処理の中で動的に行っているため、その処理が数ステップ増えています。
    おそらく、CDROMをアンマウントできない現象の対策実験として/lib/libc.so.6をルートファイルシステムに持つことで対策できないか実験したものとおもわれ、そのときの処理が、そのまま第0.2版に残ったものだろうと思います。しかし、産総研版KNOPPIXでは、/libは/KNOPPIX/libへのシンボリックリンクのままでCDROMをアンマウント出来ているので、これが原因ではないと考えたこと、および、戻さないと産総研版KNOPPIXとのlinuxrcやminiroot.gzの統合が困難になることなどを考え、シンプルな第0.1.1版の処理に戻すことにしました。
  • 私のマシンのネットワーク機能が自動認識されない原因が分かり、対策しました。ネットワーク関係の自動認識結果の入っているファイル(/etc/resolv.conf、/etc/dhcpc/resolv.conf)を自動認識前の状態に戻す処理が、産総研版KNOPPIXのlinuxrcには入っていたのですが、その処理がコメントアウトされていたためでした。この処理を復活したところ、私のマシンのネットワーク機能も自動認識されるようになりました。
  • 産総研版KNOPPIXとKNOPPIX-RWの2つのKNOPPIXのlinuxrcを統合しました。この結果、カーネルのバージョンが同じなら、同じminiroot.gzを使って起動できるようになります。ただし、動作確認は、まだ、KNOPPIX-RWで行ったのみで、産総研版KNOPPIXでは未確認です。(なお、パッケージ削除版との統合は、あきらめました。)
  • KNOPPIX-RWの停止時に「Can't unmount CD」のメッセージが出る件、調査し、対策しました。
    KNOPPIX-RWでは、/etc/init.d/knoppix-halt(システム停止処理スクリプト)をはじめ、多くのものが/ramdiskにあるので、システム停止処理中に/KNOPPIXがアンマウントされてしまいます。
    しかし、システム停止処理に必要なファイルが、まだ少し/KNOPPIXに残ったまま、/KNOPPIXがアンマウントされてしまうため、以後の処理でエラーになってしまいます。
    mkwritableを実行して以下の2つのファイルを/ramdiskにコピーすると、このエラーは生じなくなります。
         mkwritable /lib/modules/2.4.22-xfs/modules.dep
         mkwritable /lib/modules/2.4.22-xfs/kernel/drivers/block/loop.o
    こうすると、FAT32ブートなら、knoppix-halt実行中に/KNOPPIXと/cdromはアンマウントされるので、「KNOPPIX halted.」のメッセージが出て数秒すると電源が切れます。
    しかし、CDブートでは、/etc/initに戻ったときには/KNOPPIXと/cdromはアンマウントされているので、/etc/initはCDROMの排出が必要とは認識できないのか、CDROMを排出してくれません。やはり、「KNOPPIX halted.」のメッセージが出て数秒すると電源が切れてしまいます。
    (本件、KNOPPIX-RWでも、KNOPPIX同様、knoppix-haltは/KNOPPIX/etc/init.d/knoppix-halt
    へのシンボリックリンクのままにしておくと、うまくいくかもしれません。)
2003/12/31
  • 同じminiroot.gzを総研版KNOPPIXとKNOPPIX-RWの両方で使えるデバッグしました。反面、KNOPPIX-RWだと、再び、「Can't unmount CD」のメッセージが出るようになってしまいました。この点は、来年、デバッグします。
  • このデバッグの過程でlinuxrcのデバッグ用ログ収集処理を強化しました。
  • linuxrcのログの出力先をブートオプション「rclog=xxxx」(新設)で指定できるようにしました。
2004/1/4
  • 昨日の版で、再び、「Can't unmount CD」のメッセージが出るようになっていた原因が判明し、対策しました。
    /etc/localtimeがシンボリックリンクになっていたためです。AIST版のlinuxrcでは
      rm -f /etc/localtime; cp -f /KNOPPIX/etc/localtime /etc/localtime
    を実行しており、通常のファイルに変わっていますが、KNOPPIX-RWでは、これが実行されないようになっていました。KNOPPIX-RWに/KNOPPIX/etc/localtimeは存在しないので、
      rm -f /etc/localtime; cp -p /KNOPPIX/usr/share/zoneinfo/Asia/Tokyo /etc/localtime
    を実行するようにしました。この結果、「Can't unmount CD」というメッセージは出なくなりました。
    (しかし、本件、12/30に、一旦、このメッセージが出なくなっていたときも同じだったはず。なぜ、あのときは、この対策無しでうまくいったのだろう。)
  • KNOPPIX-RWで再作成したminiroot.gzを使うとdmaが有効にならず、toramオプションでのメモリへの読み込みに時間がかかる現象が発覚。原因は、KNOPPIX-RWでhdparmコマンドが削除されていたためでした。linuxrcでminiroot.gz中の/static/hdparmを/sbin/hdparmにコピーすることで対策しました。
  • ブートオプション「cloop=xxxx」が指定されているとき、デフォルトの初期化手続きは「knoppix.sh」ではなく、「xxxx.sh」に変更しました。起動するKNOPPIXに応じて、初期化手続きを変更できるようにするためです。反面、これまで、初期化手続き名には「knoppix.sh」の代わりに「KNOPPIX.SH」や「Knoppix.sh」も使えましたが、これらは「knoppix.sh」に固定となりました。(knoppix-autoconfig修正)
  • インターネットにつながっていないとき、Mozillaが起動しない現象が発覚。未調査です。
2004/1/11
  • Linux Magagin 2004年2月号付録にDVD版のKNOPPIXが付いたので、このKNOPPIX向けのminiroot.gzを作成しました。
2004/1/14
  • saveconfigにシンボリックリンクを保存できるようにしたなどの修正をおこなってアップしました。そしてその旨をKNOPPIXメーリングリストの[knoppix:2720]でアナウンスしました。
    (ただし、KNOPPIX実験室内の関連記事は更新されていませんでした。)
2004/1/29

2004/2/3
  • 上記のminiroot.gzを使うと日本語入力が全く出来なくなってしまう不良を対策しました。2004/1/29に掲示板でご指摘頂き気付きました。このminiroot.gzを使うと、/etc/passwdと/etc/shadowが壊れることが原因で発生します。
    (私の場合、ブート時にsambaの設定を読み込んで自動起動するようにしているのですが、このとき、その設定の一部として/etc/passwdと/etc/shadowも読み込んでくるため、日本語入力も問題なく起動しており、ご指摘いただくまで全く気付きませんでした。)
2004/2/7
  • 2004/1/4〜2/3にアップしたminiroot.gzでは、mvetcオプションを省略するとKDEが起動しなくなるという問題があることが判明し、対策しました。
    原因は、linuxrcの最後で不要ファイルを削除するとき、削除漏れがあり、1MB以上の不要ファイルが削除されずに残ったため、/etcの空き領域不足となって起動しなかったものです。
    mvetcオプションはKNOPPIX実験室のminiroot.gzの追加オプションで、/etcの実体をルートファイルシステムから/ramdisk/etcに移動するオプションです。これにより、KNOPPIXではしばしば発生する/etcの領域不足の問題が発生しなくなります。今回も、これに助けられて、mvetcオプションを指定する場合は問題なく起動していました。
今後実験
したいこと
今後、以下の実験を行いたいと考えています。
  • 搭載メモリ量384MBのマシンでも、スワップファイルを併用することで、NTFSから通常のKNOPPIX(約700MB)を読み込んで擬似オンメモリで起動する。これが成功したら、搭載メモリ128MBのマシンでも、スワップファイル併用でKNOPPIX-RWを起動できるようになるはずです。
  • miniroot.gzを巨大化させているlibc.so.6等のライブラリやコマンドを/cdromに追い出して、1.44MBのブートFDイメージに入るようにする。
  • メディアラボのMLD mini 2.0を買うと付いてくるntliloを使って、FAT32を一切使用せずにNTFSだけから、オンメモリKNOPPIXを起動する。
  • apache、PHP、他のサーバ系ソフトをインストールして実験を行う。

 

ダウンロード

この実験で使用したminiroot.gzを以下にアップします。

ファイル 説明

minirt26.gz  md5
   20040816-20040914版

最終更新日

下のminirt26.gzを、産総研版KNOPPIX_3.6-20040816-20040914版のカーネル2.6.7対応に修正したものです。

KNOPPIX 3.4としてのlinuxrcとknoppix-autoconfigの修正にも追随しています。

minirt26.gz
   20040517-20040629版

(当該バージョンのアップロードは
終了致しました。ご入用の方は、
メールをいただければ、お送り致
します。)

下のminirt26.gzを、カーネル2.6.6対応に修正したものです。

minirt26.gz
   20040510-20040520版

   20040504-20040511版

(当該バージョンのアップロードは
終了致しました。ご入用の方は、
メールをいただければ、お送り致
します。)

下のminirt24.gz(20040504-20040511版のカーネル2.4.26に対応のもの)を、この版のKNOPPIXのもうひとつのカーネル2.6.5対応に修正したものです。

minirt24.gz  md5
   20040816-20040914版

最終更新日

下のminirt24.gzを、産総研版KNOPPIX_3.6-20040816-20040914版のカーネル2.4.27対応に修正したものです。

KNOPPIX 3.4としてのlinuxrcとknoppix-autoconfigの修正にも追随しています。

minirt24.gz
   20040517-20040629版
   20040510-20040520版
   20040504-20040511版

(当該バージョンのアップロードは
終了致しました。ご入用の方は、
メールをいただければ、お送り致
します。)

下のminiroot.gz(20040216-20040220版対応)を産総研版KNOPPIX_3.4-20040504-20040511版のカーネル2.4.26対応に修正したものです。
このKNOPPIXでサポートされた以下の変更を吸収しました。
  • カーネルが2.4.24-xfsから2.4.26-xfsにバージョンアップしました。
  • 他の変更点については、楽天広場の2004/5/16の日記を参照してください。

KNOPPIX-3.4では、多くのブートオプションが新設されました。それらのオプションは、すべて、このminirt24.gzにも含んでいます。

現在、以下の方法でのブートを確認してあります。(FAT32パーティションにインストールしたGRUBからのブートで確認しています)

  • FAT32ブート
  • USB 2.0 HDDからのブート
  • NTFS中のisoイメージを使用したブート(NTFSブート)

NTFSブートについては、blackboxさんが実験を行い、結果を報告してくれています。以下のページを参照してください。

http://plaza.rakuten.co.jp/miyawaki/diary/200405160000/

http://park7.wakwak.com/~blackbox/

これらのblackboxさんの実験結果は左記のminirt24.gzには、一応、反映したつもりです。

ここにアップしたminirt24.gzは従来の本実験室のminiroot.gzとして比較して、以下の点が相違します。

  • cdrom=/dev/xxxxオプションを削除しました。fromhd=/dev/xxxxオプションをご利用ください。
  • cloop=xxxxオプションを削除しました。knoppix_name=xxxxオプションをご利用ください。
  • usbbootオプションを指定しなくてもusb関係のドライバは組み込まれ、USBデバイスからブートできます。
  • usb2.0を指定しなくてもusb 2.0関係のドライバは組み込まれ、USB 2.0デバイスからブートできます。(産総研版KNOPPIXではUSB 2.0デバイスもUSB1.1で認識されましたが、このminiroot.gzを使えば、サポート済みのUSB2.0デバイスならUSB 2.0で、そうでなければ、USB1.1で認識されます。)
  • USBの認識処理中にハングアップするマシンの対策として、本実験室のminiroot.gzではnouhci、noohciというオプションをサポートしていました。KNOPPIX-3.4用のminirt24.gz/minirt26.gzでは、一時的に、これが現在未サポートに戻っていましたが、これらを再び、サポートしました。これに伴い、noehciというオプションを追加サポートしました。(サポートしたつもりでしたが、バグがあり、まだ使えません。近日、対策します。)
    これらのオプションの意味は以下のとおりです。
    noehci : USB 2.0デバイスの認識処理をスキップします。
    noohci : USB 2.0デバイスのUSB 1.1互換インタフェースの認識処理をスキップします。
    nouhci : USB 1.1デバイスの認識処理をスキップします。
  • CDROMにDMAを効かせるとハングアップするマシンのために、本実験室のminiroot.gzではnocddmaというオプションをサポートしていましたが、これが現在未サポートに戻りました。近日、再度サポートする予定です。
  • これまで、miniroot.gzの中にmountコマンドやawkコマンドなどを持ち込んでいましたが、これをやめ、busyboxによるコマンドに切り替えました。busyboxは、blackboxさんがNTFSブート用に作成されたminirt24.gzの中で使用されていたものを、そのまま拝借させていただきました。
  • linuxrcやknoppix-autoconfigなどで、これまで、/dev/nullに出力して捨てているエラーメッセージなどの出力をすべて画面やログファイルに出力されるように変更しました。これに伴い、カーネルオプション「quiet」を指定しているときは、これらの捨てていた出力は、ログファイル(/var/log/rc.log、/var/log/rc.err)に出力するのみとし、画面には出力されないようにしました。
  • /cdromが更新可能であるとき、/var/log/rc.logと同じ内容を/cdrom/temp/rc.logにも出力するようにしました。これは、ブート処理の途中でハングアップしてしまうような場合の調査に役立ちます。

miniroot.gz
   20040216-20040220版
   USB-KNOPPIX-20040316

(当該バージョンのアップロードは
終了致しました。ご入用の方は、
メールをいただければ、お送り致
します。)

下のminiroot.gz(20031119-20040202版対応)を産総研版KNOPPIX_20040216-20040220版対応に修正したものです。
このKNOPPIXでサポートされた以下の変更を吸収しました。
  • カーネルが2.4.22-xfsから2.4.24-xfsにバージョンアップしました。
  • 他の変更点については、楽天広場の2004/3/13の日記を参照してください。

KNOPPIX-RW-0.2.0-20031223版対応の機能も入っていますが、カーネルのバージョンが違うのでKNOPPIX-RW-0.2.0-20031223には使えません。

本実験室のminiroot.gzとしての新機能はありません。

このminiroot.gzをそのまま使ってUSB-KNOPPIX-3.3-20040316版を起動することもできました。

miniroot.gz
   KNOPPIX 3.2 DVD版

(当該バージョンのアップロードは
終了致しました。ご入用の方は、
メールをいただければ、お送り致
します。)

下のminiroot.gzをKNOPPIX 3.2 DVD版(Linux Magagin 2004年2月号付録版)対応に修正したものです。

miniroot.gz
   20031119-20040202版
   20031119-20031219版

   20031103-20031119版

   KNOPPIX-RW0.2.0版

(当該バージョンのアップロードは
終了致しました。ご入用の方は、
メールをいただければ、お送り致
します。)

下のminiroot.gzをKNOPPIX-RW-0.2.0-20031223版対応に修正したものです。
  • 「toram fromhd ntfs dma」オプションでNTFSから読み込んでオンメモリで起動しようとすると、起動しない件を対策しました。
  • 私のマシンのネットワーク機能が自動認識されない原因が判明し、対策しました。(linuxrc修正)
  • 産総研版KNOPPIXとKNOPPIX-RWの2つのKNOPPIXのlinuxrcを統合しました。この結果、カーネルのバージョンが同じなら、同じminiroot.gzを使って起動できるようになります。
  • コンソールメッセージやログの出力内容を一部変更しています。
  • linuxrc2オプションを指定したときに組み込まれるsaveconfigを新しいものに更新しました。
  • linuxrc2オプションを指定したときに組み込まれるknoppix-autoconfigとmkdosswapfileで、柘植さんがKNOPPIXメーリングリストの[knoppix:2708]で示してくれた低スペックPC対策を反映しました。

miniroot.gz
   KNOPPIX-RW0.1.1版

(当該バージョンのアップロードは
終了致しました。ご入用の方は、
メールをいただければ、お送り致
します。)

実験1-4にアップした20031103-20031119版用のminiroot.gzをベースにKNOPPIX-RWによるオンメモリKNOPPIXの実験のための修正を入れたものです。以下の修正が入っています。
  • toramオプションの実行に必要なコマンドとライブラリをminiroot.gzに追加しました。
  • hdparmコマンドの実行に必要なコマンドとライブラリをminiroot.gzに追加しました。
  • toramオプションの実行時、CDROM上のcloopファイルを一時的にマウントしていましたが、これをマウントしないですむようにしました。この結果、NTFS上に置かれたcloopファイルをtoramオプションでメモリに読み込んで起動することもできるようになりました。
  • この結果miniroot.gzが巨大化し、起動できなくなってしまったため、ADAPTEC以外のSCSIドライバのほとんどを削除しました。
  • cloop=xxxxオプションをサポートしました。/cdrom/KNOPPIX/KNOPPIXの代わりに、/cdrom/KNOPPIX/xxxxをcloopでマウントしてKNOPPIX-RWを起動できます。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

miniroot.gz
   KDEMINI-20030427版

(当該バージョンのアップロードは
終了致しました。ご入用の方は、
メールをいただければ、お送り致
します。)

実験1-4にアップした20030924-20031002版をベースに、パッケージ削除版によるオンメモリKNOPPIXの実験のための修正を入れたものです。

パッケージ削除版でも「toram fromhd dma」オプションをサポートして、オンメモリで起動する実験をするために作成しました。詳細は、楽天広場の2003/10/13の日記を参照してください。

minirt26.resizer.tbz
   (20040816-20040914版)
    20040517-20040629版
   (20040510-20040520版)
   (20040504-20040511版)

最終更新日

下のminiroot.resizer.tbz.gzを、総研版KNOPPIX_3.4-20040517-20040629版のカーネル2.6.6対応に修正したものです。

左記の各版で共通に使えますが、カッコつきの版ではresize.shの中のシェル変数に設定しているカーネルのバージョン番号と、作成するminirt26のサイズを修正して実行する必要があります。

minirt24.resizer.tbz
   (20040816-20040914版)
    20040517-20040629版
    20040510-20040520版
    20040504-20040511版

最終更新日

下のminiroot.resizer.tbzを、総研版KNOPPIX_3.4-20040504-20040511版のカーネル2.4.26対応に修正したものです。

左記の各版で共通に使えますが、カッコつきの版ではresize.shの中のシェル変数に設定しているカーネルのバージョン番号と、作成するminirt24のサイズを修正して実行する必要があります。

miniroot.resizer.tbz
   20040216-20040220版
   20031119-20040202版
   20031119-20031219版
   20031103-20031119版

   KNOPPIX-RW0.2.0版
   KNOPPIX-DVD 3.2版

(当該バージョンのアップロードは
終了致しました。ご入用の方は、
メールをいただければ、お送り致
します。)

産総研版KNOPPIXのminiroot.gzから、左記の各版向けのminiroot.gzを作るシェル手続きminiroot/resize.shと、その関連ファイルのアーカイブです。

左記の各版のminiroot.gzを作成できますが、そのminiroot.gzは作成したときに使用したKNOPPIXと同じ版のKNOPPIXでのみ使用できます。例えば、20031119-20031219版のKNOPPIXで作成したminiroot.gzは20031119-20031219版のKNOPPIXでのみ使用でき、20040216-20040220版などの他の版で使用することは出来ません。20040216-20040220版のKNOPPIX上で、再度、このシェル手続きminiroot/resize.shを実行してminiroot.gzを作成する必要があります。

本実験室で提供するminiroot.gzは、このシェル手続きを使って作成したものです。

KNOPPIX-RW0.2.0_20031223版向けのminiroot.gzを作成する場合は、そのベースになっている産総研版KNOPPIX 20031103-20031119版から作るようにします。

その使用方法は以下の通りです。(KNOPPIX_20031103-20031119版のminiroot.gzを作る場合の例です)

  1. mkdir  /mnt/hda2/isolinux
  2. cd  /mnt/hda2/isolinux
  3. cp  -p  /cdrom/isolinux/*  .
  4. cp  -p  KNOPPIX_20031103-20031119のminiroot.gz  miniroot.aist.gz
  5. tar  jxvf  〜/miniroot.resizer.tbz
  6. cd miniroot
  7. resize.sh  # これを実行するとminiroot.gzが解凍され、/mnt/minirootにloopマウントされた後、その中のlinuxrcがviで開かれます。
  8. 必要に応じて編集した後、viを終了させます。すると、/mnt/minirootがアンマウントされ、新しいminiroot.gzが作成されます。編集前のminiroot.gzはminiroot.bk.gzにリネームされます。