[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bfree-prj 124] HD からboot する方法



まさです。

浪花さんの助言を受け入れ再編集しました。

もし以下の文章を読んで「分かりにくい」とか「もっと詳しく」
など指摘していただけると嬉しいです。

初心者の方歓迎です。

注意:あらかじめLinuxに慣れてないUSERへ.
        本文に出てくるコマンド(writeboot、mkfs、statfs)を実行するときの注意 

        違うディレクトリにシェルスプリクトがある場合(POSIX/mkfs/statfs /dev/mkdir /system) 
        今いるディレクトリにシェルスプリクトがある場合(./statfs /dev/mkdir /system) 
        /sbinにシェルスプリクトを置いて実行する場合(statfs /dev/mkdir /system) 

        (/sbinに置くことによってすべてのディレクトリから実行できる。

    1.B-Free OS をインストールするパーティションを確保します。
        LinuxとBtronを一つのハードディスクにインストールする例を紹介します。

        Linuxをインストールする途中にパーティションを編集する場面で以下のようにします。

         /dev/hda1   Linux native
         /dev/hda2   Linux swap
         /dev/hda3   B-FreeOS boot
         /dev/hda4   B-FreeOS sfs


    2.B-Free OS のソースを落とします。
        URL: ftp://www.sccs.chukyo-u.ac.jp/pub4/B-Free/pub/IBM-PC/ の下に、b-free-pc.xx.yy.zz.tar.gz という名前で入っていま
        す。
        (xx.yy.zz はバージョンです。値の大きいものが新しいバージョンです) 
    3.落としたファイル (tar + gzip ファイル) を適当なディレクトリで展開します。 

                tar xvzf<落としてきたファイル> 

    4.Make します。 boot ディレクトリに入り、make を実行します。 

                cd boot
                make hd_image 

        boot ディレクトリに bootimage_hd というファイルができます。 

    5.ブートプログラムを変更します。 
            1.boot/toolディレクトリに入り、makeを実行します。 
            2.bootディレクトリに戻ります。

                cd .. 
            3.writebootで4で作ったbootimage_hdにハードディスク情報を書き込みます。

                writeboot -v -w >デバイス< >パーティション番号< >ブートイメージ<

                例 tool/writeboot -v -w /dev/hda 3 bootimage_hd

                すると、以下のようなメッセージが出力されます。


                device: /dev/hda, partition: 3, bootimage: bootimage_hd
                /dev/hda3
                geometry:
                heads: 128
                cylinders: 621
                sectors: 63
                start:
                heads: 0
                cylinders: 610
                sectors: 1
                old geometry information:
                cylinder 4
                head 5
                sector 6
                old start CHS information:
                cylinder 1
                head 2
                sector 3


                geometry と start の各項目は、HD によって違っています。


                make hd_image で作成した直後のブートイメージを指定すると、old geometry
                information と old start DHS information は、この通りの値が出力されま
                す。もし、違った値が出たら bootimage_hd がおかしいことが考えられます。
                なお、writeboot を 1 回実行すると、この値は違った値が出力されます。

                # 要するに、ブートイメージに書き込まれている値が出力されるわけです。 
    6.boot プログラム を HD に書き込みます。
        5. で作成した boot プログラムを、あらかじめ確保しておいた boot 用の パーティションに書き込みます。 

                dd if=bootimage_hd of=/dev/hda3 または cp bootimage_hd /dev/hda3

    7.kernel を make します。
        kernel/BTRON/make ディレクトリに移動し、make コマンドを実行します。 

                cd kernel/BTRON/make
                make 

        kernel/BTRON/make ディレクトリの下に btron というファイルができます。 

    8.ファイルシステム作成用のツールを make。
        kernel/POSIX/mkfs にあるファイルシステム作成用のツールを make します。 

                cd kernel/POSIX/mkfs
                make 

        kernel/POSIX/mkfs ディレクトリに mkfs と statfs というファイルがで きます。 

    9.ファイルシステムの作成。
        あらかじめ準備しておいた B-Free OS のファイルシステム用のパーティショ ンに B-Free OS のファイルシステムを構築します。 
            1.mkfs を実行します。

                mkfs(BTRON用)はすでに/sbinに同じ名前のmkfs(Linux用)があるため
                間違いやすいので注意が必要です。

                kernel/POSIX/mkfs を実行して、パーティションをフォーマットします。 

                ./mkfs /dev/HDのパーティション ブロック数 ブロックサイズ I-node数

                I-node数とはそのパーティションのファイルの最大数を表わします。ブロックサイズは無条件に512を指定してください。
                ブロック数の計算方法はパーティションのサイズ÷512で計算してください。fdiskを起動してpコマンドで情報が見れます。

                例 ./mkfs /def/hda4 604800 512 1000

                mkfs を実行すると、/lost+found というディレクトリだけがあるファイ ルシステムができます。 
            2.mkfs が成功したかを確認します。
                statfs を実行してファイルシステムの中を覗いてみます。 

                        ./statfs /dev/hda4 dir / 

                ファイルシステムのトップディレクトリの中身が表示されます。 
  10.B-Free OS をファイルシステムに入れます。
        7. で作成した B-Free OS を新しく作ったファイルシステムの中にコピー します。/system/btron386 という名前でコピーする必要
        があります。 

                cd kernel/BTRON/make
                statfs /dev/hda4 mkdir /system
                statfs /dev/hda4 write /system/btron386 btron 

        これで、/system ディレクトリの下に btron386 というファイルが作られ ます。 

                statfs コマンド statfs /dev/hda4 dir /system を実行して、btron386 というファイルがあれば成功です。 

  11.boot パーティションから起動するための準備を行います。
        lilo プログラムなどを使って、BTRON の boot パーティションから boot するように設定を変更します。

        liloの設定はLinuxのパッケージやバージョンによって方法が異なるため直接的な方法を紹介します。
        まずviエディタでetc/lilo.confを編集します。

        vi /etc/lilo.conf

        以下に意味を示します

        boot=/dev/hda-------liloがインストールされている場所を表します。FDだと/dev/fd0 パーティション1だと/dev/hda1
        delay=100-----------liloが起動するまでの待ち時間です。ここでは10秒を意味します。delay=timeout

        image=/boot/vmlinux-Linuxカーネルの位置を指定します。
        label=linux----------起動時に入力するとOSが起動します。起動時にTabを押すとラベルの一覧がでます。
        root=/dev/hda1------パーティションの位置を示しますl。

        other=/dev/hda3-----Linux以外のOSをliloに登録する場合に使います。
        label=btron
        table=/dev/hda------ohterのOSのパーティションテーブルの位置を指定します

        vi初心者の方へ 終了の方法はEscを押した後:wq(保存して終了)、Escの後に:q!(保存せずに終了)

        さらに今編集したliloをアクティブにするため

        lilo

        とコマンドで打ちます。
  12.boot します。
        マシンを再起動します。 

        BTRON のブートパーティションを指定して、BTRON のブートプログラムを 実行させます。 

        ブートプログラムが起動すると、boot> というプロンプトを表示します。 ここで、B-Free OS が入っているパーティションを指定して
        OS を立ち上 げます。 


        >boot hd 0 3

  13.BTRON OS が起動すれば成功です!