|
|
kema's web Top | Who is kema? | 電気・回路 | 無線 | コンピュータ |
| バイク | 鉄道関係 | 妙な写真・イラスト | kema's料理 | ゲーム関係 | |
|
1:カーネル構築 2:Crunched Binary作成 3:1FDディスクイメージ作成 4:起動フロッピーディスク作成 |
1FDディスクイメージ作成わざわざ1FDイメージファイルを作成する理由1FD用のカーネルを作成し、shをはじめとしたcrunchされたツールを準備したら、次は1FDのディスクイメージの作成です。 # cd /root/fd/これでひとまず1.44MBの空のファイルが出来ました。 # vnconfig -s labels -c /dev/rvn0 mfsroot.imgこれで、作成したファイルを仮想的にマウントできるようになります。そして、ファイルシステムとしてマウント可能にするため、ディスクラベルを書き込みます。これは、「俺は1.44MBのフロッピーだよ?」と宣言するためのもので、これが無いと正常にマウントできないという具合。 # disklabel -w -B vn0 fd1440そして、ファイルシステムを作成。 # newfs -i 4000 -o space -m 0 /dev/rvn0cこれでマウントして読み書きできるようになります。 # mount /dev/vn0c /mnt以降、展開後のフロッピーイメージを/mntに対して構築していきます。その実体は/root/fd/mfsroot.imgにあり、作業終了後は/mntをアンマウント、そしてmfsroot.imgを圧縮してフロッピーにコピーしてやるわけです。 1FD ディスクイメージ上にディレクトリを作成1FDイメージ上にディレクトリを作成します。 # cd /mntこの中でfdというのは、圧縮されたFDイメージが展開された後、元の物理的なフロッピーは切り離されてしまう(マウントされない)ため、改めて物理的なフロッピーディスクをマウントし直すために作ってあります。 起動シーケンスの中で元のフロッピーディスクをマウントし、そこに記述した起動スクリプトを実行することで、設定を柔軟に変更することが出来るわけです。 (1FDイメージファイルの構成を変えるためには、一旦vnデバイスに結び付けてマウントし、マウントした上で作業して、それを再度圧縮してフロッピーに書き戻すという非常に面倒な作業になるので、1FDイメージファイルは、一旦出来上がってしまえば、あとは極力いじりたくないわけです) それから、/binと/sbinを作成します。といっても、/に対するシンボリックリンクですが。 # ln -s . bin デバイスファイル作成
# cd /mnt/devこれで必要なデバイスファイルが作成されました。後はMAKEDEVは用済みなので消してしまって構いません。 # rm MAKEDEV crunched binaryをコピー
既に作成済みのcrunched binaryを仮想FDイメージ上にコピーします。そして、中に織り込んだコマンドの数だけ、ハードリンクを作成します。 # cd /mnt /etc/rcを作成
1FDイメージが展開された後実行される/etc/rcを作ります。 #!/bin/shというわけで、物理フロッピーをマウントし、そこに書いたrcを実行し、shを立ち上げるだけです。 無駄領域をゼロパッド
作成した1FDイメージを圧縮する際、圧縮率を上げるために空き領域をゼロで埋めると良いらしいのですが、実際に処理前と処理後でサイズを比較したところ、むしろ処理前の方が圧縮率が良かったりしました。多分たまたまだと思いますが、それほど劇的な効果がある訳でもなさそうです。(場合にもよるでしょうが) # dd if=/dev/zero of=/mnt/aといった具合です。 余談ですが、Windowsのシステムディスクなどは、defragした後空き容量をゼロパッドすることにより、物理ディスクイメージファイルの圧縮後サイズが劇的に小さくなったりします。 アンマウント
最後はアンマウントして終わりです。 # cd /root/fdこれで、編集作業が反映したmfsroot.imgファイルが出来上がりました。 | ||||