[ya-knoppix-jp-users 344] Re: miniroot.gzの再構築について.

Back to archive index

Natureza natur****@beige*****
2004年 6月 5日 (土) 00:17:46 JST


from K.Wonderboy

> miniroot.gzの再構築について御教授お願い致します.

MAXさん(お久しぶりでぇ〜す)がすでにご紹介くださっていますので
私は実際に行なった時のことを思い出しながら..........
お役に立てるかどうかは判りませんが。

>  miniroot.gzの中にあるlinuxrcの内容を変更したのですが,
> boot-ja.imgが一枚のFDに格納できない状態となり,再び
> linuxrcの内容を変更(一部削除)し,容量を削減しました.
> 内容変更後に,圧縮しminiroot.gzを作成したのですが,
> 容量の変化がありません.

miniroot.gz(またはinitrd.gz)を何回も書き換えたり、大量にファイルを
入れ替えたりすると、果てはノード(かな?)を使い切って書き込めなく
なります。
なので、例えば元の中身からファイルを削除して小さくする場合は
minirootのe2fsを作成し直して、そこに一つずつコピーしていくと
上手く行きます。
具体的には、元になるminirootのノード数などを次のコマンドで
予め調べておきます。miniroot.gz をgzip -cd で >~/miniroot で解凍。
dumpe2fs ~/miniroot   でinode数がわかります。
ちなみに、knoppix20040209版では、確か 8192だったと思います。
小さくしたいとのことなので、inode数を削減することも必要かも知れま
せんが、うかつに削ると、不足して動作しなくなることがあります。
inode数は大目に取っておいた方が無難なようです。
ddコマンドで新規のminiroot-newの箱を作成します。
ここがウロ覚えのところですが、私は確か以下のような感じにしました。
dd if=/dev/zero of=~/miniroot-new bs=1k count=3500
count=3500で大体3.4MBくらいなのでgzにすると knoppixのminirootで
あれば450-500KBくらいになります。中身スカスカですから。
次にmke2fs で同じinode数のminiroot-newをフォーマットします。
mke2fs -F -i 1024 -N 8192 ~/miniroot-new
あとは、これをloopマウントして、元になるminirootもマウントして
必要なものをコピー(cp -Rp)すればイイと思います。
もし削除した場合は  lost+rrmoved も消しておいた方がイイでしょう。
但し、削除を繰り返すと例え削除といえどもその場所は使われたまま
になる感じですので、小さくはなりません。たしか。

本家では2枚組のブートフロッピーの仕組みをkernelとramdiskパラメータ
でinitrdを別のフロッピーで読み込むようにしているみたいです。
knoppixではKNOPPIXというファイルをlinuxrcで探しに行ってマウントするので
OKなのですが、通常のHD上のルートディレクトリを起動したい場合は
linuxrcでそれを探す仕組みにしないと起動できないと思います。
なので、私はHDインストールシステムの起動フロッピーには、grubを使って
います。ですが、grub自体で200KBくらい使うので、巨大化したkernel2.6系は
収まりきりませんので、今は3枚組にしてます(^.^)。
kernelは.configによって、特化した用途であればまだまだ小さく出来ると思いま
す。
余談でした。

ご参考になれば幸いです。ウロ覚え(当時のメモがHDDを飛ばしてしまって
なくなってしまった)の箇所もあるので、何かありましたらご連絡下さい。





Ya-knoppix-jp-users メーリングリストの案内
Back to archive index