今まで、最小インストールした後に/usrをXFSに移行、というフェーズをとってきた。でもそれって違うと思う。
とりあえずFedora Coreのカーネルは2.4.22-ac1が当たったやつだ。acシリーズにはXFSが入っているのだが、.configで
にされてしまっている。これをセットしてコンパイルし、インストーラもそっちのカーネルを使うようにすればひとまずマウントはできるはずだ。
あとはインストーラだが、もともとanacondaはファイルシステム追加するのは楽だったように思うんだよなぁ。mkfs.xfsのファイルを追加したら勝手に検出してくれたりして。
fsset.pyを見ると、/proc/filesystemsに出てくるやつはmountableだと思うようなのと、supportedに数値が埋め込まれていた。また、/proc/cmdlineにreiserfsと書いておけば、ReiserFSはsupportedになる。モジュールとして入れたりmkfsを入れたりするだけじゃダメ。supportedを-1にしてfsset.pyの処理の前にモジュールを読み込んでおくようにするのがいいのかな。ただ、supported=1にすればmountableかどうかは判定してないので、モジュールであってマウントするときに必要に応じてロードされるようにすることもできそうだ。JFSも同じようにjfsと書けばいいみたい。XFSはそれでもダメのようだ。おのれ。
とりあえずsyslinuxで与えるカーネルの引数にreiserfsやjfsと書いて様子を見てみようかな。それでReiserFSやJFSでインストールできるようなら、supportedをいじればいいってことになるよね。コメントにthis is totally, 100% unsupported.
などと脅し文句が書いてあるが知ったことではない。
supportedだけでうまくいけば、やることが
- カーネル: .configを変更して再コンパイルしたものとカーネルパッケージを入れ換え
- インストーラ: /proc/cmdlineを使ってXFSもsupportedを立てられるようにする
- インストーラ: インストーラのカーネルイメージを作る(XFSモジュール入り)
- インストーラ: ループバックでマウントするファイルシステム(stage2)にmkfs.xfsを入れ、fsset.pyも入れ換える。
- DVD: イメージを作って焼く
くらいで済みそうな感じ。こんだけで済めばいいな。
modules.cgz類とかcramfsってanacondaのコマンドで勝手に作ってくれるのかな?
あ、あとできれば実験用のPCを1台欲しいところ。まあ、失敗しても少し悲しいだけだから、別にいいけど。
(追記) 2003-11-15 15:22
syslinuxのオプションにreiserfsとかjfsを与えると、ボリュームの選択肢にreiserfsとjfsが登場するのを確認した。これにすればreiserfsやjfsを/usrとか/にしてインストールできるのかもしれない。mountableじゃなくてsupportedだけでいいのかな。
しかしFedoraのブートオプション、memtest86とかいろいろオプションがあるねえ。今までのRed Hatにもあって私が気づかなかっただけかな。
(追記) 2003-11-15 22:59
とりあえずカーネルパッケージを作ってみているが、XFSコンパイルひっかかるじゃん。バッファ関係を自力でやってるからな。
とりあえずパッチを作ってみた。SPECファイルもこのように修正(ついでにmodversionsも無効にしてみた)。そんで今コンパイル中だが猛烈に時間がかかるっぽいねぇ。
(追記) 2003-11-16 08:55
朝早起きしたらもうコンパイルが終わっていた。全部で7回もカーネルコンパイルしてるねぇ。あとはインストーラ関連だな。上のほうに書いたリストに加えて、
- パッケージ:XFSの管理ツール(xfsprogs:mkfs/fsck/その他)をパッケージに入れてcomps.xmlにも入れる。reiserfs-utilsやjfsutilsはbaseに入ってるのでそこに。comps.rpmはどうやって作るんだろう。
が必要だ。
(追記) 2003-11-16 09:07
とりあえず、できたカーネルパッケージをここに置いとく。さすがにでかいが。
(追記) 2003-11-16 10:40
このへん(fuga.jp)も参考にはなるね。