HD へ boot プログラムを書き込む方法


version 1.0
1998/9/13
内藤 隆一

1stboot_hd.s の中をいじくって、ジオメトリ情報と読み込み開始位置を手で
修正するのは面倒なので、自動的に計算してブートイメージに書き込むための
プログラムも作りました。

!!十分に注意して使ってください。
!!これらのプログラムを実行したからといって、HD が破壊されることは
!!ないはずですが、バグ等がないとは言い切れません。


こちらは、writeboot.tar.gz という形で入っています。適当なディレクトリ
下で展開して、make してください。read_partition、getgeo、writeboot と
いう 3 つのコマンドができます。

使い方は、

	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 回実行すると、この値は違った値が出力されます。

# 要するに、ブートイメージに書き込まれている値が出力されるわけです。


こうしてできた bootimage_hd を cp コマンドなり、dd コマンドなりで
HD に書き込むとブートから立ち上げることができます(lilo などのブートセ
レクタの設定を変更するのを忘れずに!)。



B-Free オフィシャルホームページへ戻る
Copyright (C) 1996-1998 B-Free Project