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

[bfree-prj 117] Re: HD からboot できない→HD からboot する方法



高田です。

まさあきさん、きしださん、おはようございます。

ホームページにある「HD から boot する方法」ですが、
まさあきさんがアップデートしてくれました。

−−−−−−−−−−−−−−−−−−−−−−−−
注意:あらかじめLinuxに慣れてないUSERへ.
      本文に出てくるシェルスプリクト(writeboot、mkfs、statfs)を実行するときの注意

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


      (/sbinに置くことによってすべてのディレクトリから実行できる)
      mkfs(BTRON用)はすでに/sbinに同じ名前のmkfs(Linux用)があるため
      間違いやすいので注意が必要です。


    1.B-Free OS をインストールするパーティションを確保します。
      fdisk コマンドを使って、B-Free OS をインストールするパーティション を確保します。確保するパーティションは、1MB 程度の小
      さなパーティショ ン(boot プログラムが入ります)と 20MB のパーティション(B-Free のファ イルシステムとなります)です。
      B-Free のファイルシステムの方は、もっ と小さくても大丈夫ですが、少なくとも 1MB 以上は確保するようにしてく ださい。 
    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.writebootで4で作ったbootimage_hdにハードディスク情報を書き込みます。

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

            という風になります(root ユーザで実行してください)。

            -v と -w はオプションで、-v が verbose、-w がブートイメージに書き込む
            ことを表しています。-w をつけないと、ブートイメージには書き込みません。


            実際には、>デバイス< は /dev/hda、>パーティション番号< はブートイメー
            ジを入れたいパーティション (1 から 4)、>ブートイメージ< は、make hd_image
            で作成したブートイメージファイルです。

            たとえば、

            ./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/(または cp bootimage_hd /dev/)

    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 を実行します。
            kernel/POSIX/mkfs を実行して、パーティションをフォーマットします。 

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

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

            例 ./mkfs /def/hda4 604800 512 1000 

                  ブロック数 パーティションのブロック数です 1 ブロックは 512 バイトとして計算してください。 ブロックサイ
                  ズ HD をアクセスする時の単位をバイト数にて指定します。 512 を指定してください。 I-node 数 ファイル
                  の管理情報を入れる I-node の数を指定します。 適当な数を指定してください。 

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

                  ./statfs /dev/dir / 

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

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

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

            statfs コマンド statfs /dev/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のパーティションテーブルの位置を指定します

      BTRONの代わりにWIN95(98)を入れるとWIN95(98)が起動しなくなります。WIN95(98)とLinuxのパーティション
      の位置を入れ替えるかotherの後にloader=/boot/any_d.bを入れることによって回避できます。

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

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

      lilo

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

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

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

            boot hd 0 パーティション番号 パーティション番号には、B-Free OS が入っているパーティションの番号 を指定
            します(パーティション番号は 1 からはじまることに注意してくだ さい)。 

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


_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
B-Free Project
 http://www.tron-net.gr.jp/B-Free/index.html
 http://www.sccs.chukyo-u.ac.jp/B-Free/index.html

高田光隆 (Mitsutaka Takada)
 mitsu.takada@nifty.ne.jp
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/