diff from rev 1.1.2.8 to 1.1.2.12
Submitted by: Yoshiteru Kageyama <yt-kage@cb3.so-net.ne.jp>
This commit is contained in:
parent
b5bcf4d542
commit
361968d175
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=12870
1 changed files with 553 additions and 99 deletions
|
@ -1,8 +1,8 @@
|
||||||
.\" -*- nroff-fill -*-
|
.\" -*- nroff-fill -*-
|
||||||
.\" %FreeBSD: src/share/man/man8/picobsd.8,v 1.1.2.8 2001/07/22 11:02:04 dd Exp %
|
.\" %FreeBSD: src/share/man/man8/picobsd.8,v 1.1.2.12 2002/03/21 03:22:04 luigi Exp %
|
||||||
.\"
|
.\"
|
||||||
.\" $FreeBSD: doc/ja_JP.eucJP/man/man8/picobsd.8,v 1.7 2001/07/29 05:15:29 horikawa Exp $
|
.\" $FreeBSD$
|
||||||
.Dd June 20, 2001
|
.Dd March 9, 2002
|
||||||
.Os
|
.Os
|
||||||
.Dt PICOBSD 8
|
.Dt PICOBSD 8
|
||||||
.Sh 名称
|
.Sh 名称
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
.Nd フロッピディスクベースの FreeBSD システム
|
.Nd フロッピディスクベースの FreeBSD システム
|
||||||
.Sh 書式
|
.Sh 書式
|
||||||
.Nm
|
.Nm
|
||||||
.Op options
|
.Op Ar options
|
||||||
.Op Ar floppy-type Op Ar site-name
|
.Op Ar floppy-type Op Ar site-name
|
||||||
.Sh 解説
|
.Sh 解説
|
||||||
.Nm
|
.Nm
|
||||||
|
@ -20,56 +20,105 @@
|
||||||
.Nm PicoBSD
|
.Nm PicoBSD
|
||||||
と呼ばれます) の生成に使用可能です。
|
と呼ばれます) の生成に使用可能です。
|
||||||
生成物は、典型的には 1 枚のフロッピディスクに収まるか、
|
生成物は、典型的には 1 枚のフロッピディスクに収まるか、
|
||||||
CDROM やフラッシュメモリや
|
CDROM やフラッシュメモリといったメディア、あるいは
|
||||||
.Xr etherboot
|
.Xr etherboot
|
||||||
経由といった様々なメディアからダウンロード可能となります。
|
経由から単一のイメージファイルとしてダウンロード可能な
|
||||||
|
ものとなります。
|
||||||
|
.Nm
|
||||||
|
は、もともとファイアウォールやブリッジのような単純な
|
||||||
|
スタンドアロンシステムを構築するために作られたものですが、
|
||||||
|
サーバに存在するものとは違うソースツリーを使用してイメージを
|
||||||
|
クロスビルドできるため、開発者にとってはシステムを
|
||||||
|
再インストールせずに自分の書いたコードをテストできるので
|
||||||
|
大変便利でしょう。
|
||||||
.Pp
|
.Pp
|
||||||
ブートメディア (典型的にはフロッピディスク) は、
|
ブートメディア (典型的にはフロッピディスク) は、
|
||||||
ブートローダと、メモリファイルシステムを含む圧縮カーネルを含みます。
|
ブートローダと、メモリファイルシステムを含む圧縮カーネルを含みます。
|
||||||
メディアに依存し、多数の追加ファイルを含むかもしれません。
|
メディアに依存しますが、追加ファイルをいくつか含むかもしれません。
|
||||||
これらは、実行時に更新可能であり、
|
これらは、実行時に更新可能であり、
|
||||||
メモリファイルシステム中のファイルの書き換え/更新に使用されます。
|
メモリファイルシステム中のファイルの書き換え/更新に使用されます。
|
||||||
.Pp
|
.Pp
|
||||||
システムは、カーネルを通常の方法でロードし、
|
システムは、カーネルを通常の方法でロードし、
|
||||||
メモリファイルシステムを伸長し、これをルートとしてマウントします。
|
メモリファイルシステムを伸長し、これをルートとしてマウントします。
|
||||||
その後、メモリファイルシステムを、ブートメディアからのファイルで更新し
|
その後、メモリファイルシステムを、ブートメディアからのファイルで更新し
|
||||||
(存在する場合のみ)、特別な
|
(存在する場合のみ)、特別なバージョンの
|
||||||
.Pa /etc/rc
|
.Pa /etc/rc
|
||||||
を実行します。
|
を実行します。
|
||||||
ブートメディア (フロッピ等) は、ロードのためだけに必要であり、
|
ブートメディア (フロッピ等) は、ロードのためだけに必要であり、
|
||||||
典型的には読み取り専用で使用されます。
|
一般には読み取り専用で使用されます。
|
||||||
ブートフェーズ後は、システムは完全に RAM で実行されます。
|
ブートフェーズ後は、システムは完全に RAM で実行されます。
|
||||||
.Pp
|
.Pp
|
||||||
次のオプションが使用可能です (詳細は
|
次のオプションが使用可能です (詳細は
|
||||||
.Nm
|
.Nm
|
||||||
も参照してください):
|
も参照してください):
|
||||||
.Pp
|
.Pp
|
||||||
.Bl -tag -width "--floppy_size" -compact
|
.Bl -tag -width indent
|
||||||
.It Fl c
|
.It Fl -src Ar SRC_PATH
|
||||||
.It Fl clean
|
.Pa /usr/src
|
||||||
以前の構築における生成物を除去します。
|
にあるものではなく
|
||||||
|
.Ar SRC_PATH
|
||||||
|
にあるソースツリーを使用します。
|
||||||
|
このオプションは、フロッピイメージをクロスビルドする際に
|
||||||
|
便利でしょう。
|
||||||
|
このオプションを使用する際には、
|
||||||
|
.Ao Ar SRC_PATH Ac Ns Pa /../usr
|
||||||
|
にサブツリーを作成し、クロスビルドに必要な
|
||||||
|
正しいヘッダファイルやライブラリ、そしてツール (
|
||||||
|
.Xr config 8
|
||||||
|
のような) を置いてツリーを初期化しておく必要があります
|
||||||
|
(後述の
|
||||||
|
.Fl -init
|
||||||
|
オプションを参照してください)。
|
||||||
|
ソースファイルは
|
||||||
|
.Nm
|
||||||
|
スクリプトによっては変更されません。しかし、
|
||||||
|
ソースツリーは完全に読み込み専用であるというわけではありません。
|
||||||
|
なぜなら、
|
||||||
|
.Xr config 8
|
||||||
|
はカーネル設定ファイルがソースツリーのサブディレクトリにある
|
||||||
|
ものとしていますし、また
|
||||||
|
.Pa usr
|
||||||
|
サブツリーを初期化する過程でソースツリーのいくつかの部分に
|
||||||
|
触れてしまうからです (この動作はリリースビルド用スクリプトの
|
||||||
|
バグであり、時間がたてばこのバグは取り払われるでしょう)。
|
||||||
|
.It Fl -init
|
||||||
|
.Fl -src
|
||||||
|
オプションと一緒に使用した場合、後で
|
||||||
|
.Nm
|
||||||
|
イメージを構築するのに必要となる
|
||||||
|
.Ao Ar SRC_PATH Ac Ns Pa /../usr
|
||||||
|
サブツリーを初期化します。
|
||||||
|
.It Fl -modules
|
||||||
|
カーネルモジュールも構築します。
|
||||||
|
カーネルモジュールはフロッピイメージには入りませんが、
|
||||||
|
構築用ディレクトリには利用可能なまま残っています。
|
||||||
.It Fl n
|
.It Fl n
|
||||||
スクリプトを、非対話的にします。
|
スクリプトを、非対話的にします。
|
||||||
最初のメニューを表示せず、ユーザの入力を要せずに構築処理に進みます。
|
最初のメニューを表示せず、ユーザの入力を要せずに構築処理に進みます。
|
||||||
.It Fl v
|
.It Fl v
|
||||||
スクリプトを冗長表示にし、実行する様々なコマンドを表示し、
|
スクリプトを冗長表示にし、実行するコマンドを表示し、
|
||||||
それらの実行前にユーザの入力を待ちます。
|
それらの実行前にユーザの入力を待ちます。
|
||||||
デバッグ時に有用です。
|
デバッグ時に有用です。
|
||||||
.It Fl -floppy_size Ar size
|
.It Fl -all_in_mfs
|
||||||
フロッピイメージの大きさを設定します。
|
カーネル内に含まれているメモリファイルシステムイメージにある
|
||||||
CDROM に焼いたり
|
ファイルシステムの内容をすべて置きます。
|
||||||
|
これはデフォルトの動作であり、
|
||||||
.Xr etherboot
|
.Xr etherboot
|
||||||
からダウンロードするイメージ用に、1440 以外の値を使用可能です。
|
もしくは
|
||||||
.It Fl -src Ar pathname
|
.Xr pxeboot 8
|
||||||
標準の
|
を使用して、完全に機能するシステムとしてカーネルそのものを
|
||||||
.Ar /usr/src
|
ロードできるため大変便利です。
|
||||||
の代りに、
|
.It Fl -no_all_in_mfs
|
||||||
.Ar pathname
|
.Pa floppy.tree
|
||||||
を、ソースツリーとして使用します。
|
に含まれているファイルをフロッピイメージに残します。これにより、
|
||||||
フロッピイメージをクロス構築する場合に有用かもしれませんが、
|
ファイルをカーネルとは別にロードすることができます
|
||||||
.Xr config 8
|
(そして、個別にファイルを更新してフロッピイメージを
|
||||||
プログラムおよびインクルードファイルとライブラリへの依存があることに
|
カスタマイズできます)。
|
||||||
注意してください。
|
.It Fl -floppy_size Ar size
|
||||||
|
フロッピイメージのサイズを設定します。
|
||||||
|
CDROM に焼くイメージ用に、1440 以外の値を使用可能です。
|
||||||
|
.It Fl c, clean
|
||||||
|
前回の構築時にできた生成物を消します。
|
||||||
.El
|
.El
|
||||||
.Sh 環境
|
.Sh 環境
|
||||||
サイズ制限が極めて厳しいため、
|
サイズ制限が極めて厳しいため、
|
||||||
|
@ -79,7 +128,7 @@ CDROM
|
||||||
といくつかの点で異なっています:
|
といくつかの点で異なっています:
|
||||||
.Bl -bullet
|
.Bl -bullet
|
||||||
.It
|
.It
|
||||||
ダイナミックライブラリはなく、
|
ダイナミックライブラリは存在せず、
|
||||||
.Pa /usr/lib
|
.Pa /usr/lib
|
||||||
ディレクトリもありません。
|
ディレクトリもありません。
|
||||||
そのため、スタティックリンクした実行体のみ実行可能です。
|
そのため、スタティックリンクした実行体のみ実行可能です。
|
||||||
|
@ -98,123 +147,527 @@ CDROM
|
||||||
.Xr vmstat 8
|
.Xr vmstat 8
|
||||||
の機能限定版です。
|
の機能限定版です。
|
||||||
.El
|
.El
|
||||||
.Sh picobsd の構築
|
.Sh PicoBSD の構築
|
||||||
.Nm
|
.Nm
|
||||||
のソースはディレクトリ
|
のソースはディレクトリ
|
||||||
.Pa /usr/src/release/picobsd
|
.Pa /usr/src/release/picobsd
|
||||||
の下にあります。
|
の下の階層にあります。
|
||||||
以下では、相対パス名はすべてこのディレクトリからの相対位置です。
|
以下では、相対パス名はすべてこのディレクトリからの相対位置です。
|
||||||
.Nm
|
.Nm
|
||||||
の構築過程は、時とともに少し変化しました。
|
の構築過程は、時とともに少し変化しました。
|
||||||
コード量の不可避な増加に対応するために、
|
コード量がやむなく増加していることに対応するため、
|
||||||
なるべく多くをフロッピに詰め込むための沢山のからくりが必要となったからです。
|
なるべく多くのものをフロッピに詰め込むための
|
||||||
|
からくりがだんだんと多く必要となったからです。
|
||||||
.Fx 4.3
|
.Fx 4.3
|
||||||
では、サポートされている構築スクリプトは
|
以降では、サポートされている構築スクリプトは
|
||||||
.Pa /usr/src/release/picobsd/build/picobsd
|
.Pa /usr/src/release/picobsd/build/picobsd
|
||||||
であり、どこからでも実行可能です。
|
であり、どこからでも実行可能です。
|
||||||
この対話的なスクリプトは、いくつかパラメータを尋ねた後、
|
対話的モードで実行した場合 (
|
||||||
適切な単一フロッピ版を構築します。
|
.Fl -n
|
||||||
次の種類のフロッピが想定されています:
|
オプションをつけなければこれがデフォルトです)、
|
||||||
.Bl -hang -width "install "
|
スクリプトによってフロッピイメージを構築するのに使用される
|
||||||
.It bridge
|
さまざまなパラメータを設定可能です。
|
||||||
はブリッジ、ルータ、ファイアウォールに適したコンフィギュレーションです。
|
認識するフロッピイメージは次の種類があります。私達は、このイメージを
|
||||||
.It dial
|
機能するものに維持し、カーネルおよびアプリケーションのサイズが
|
||||||
はダイヤルアウト (ppp) ネットワーキングに適したコンフィギュレーションです。
|
やむを得ず大きくなっていますがそれでも 1.44MB フロッピに収まる
|
||||||
.It install
|
ように努めています。
|
||||||
はソフトウェアインストールに適したコンフィギュレーションです。
|
.Bl -hang -width ".Pa bridge"
|
||||||
.It isp
|
.It Pa bridge
|
||||||
はダイヤルイン (ppp) ネットワーキングに適したコンフィギュレーションです。
|
ブリッジ、ルータおよびファイアウォールに適した設定です。
|
||||||
.It net
|
.El
|
||||||
は一般的なネットワーキングに適したコンフィギュレーションです。
|
.Pp
|
||||||
.It router
|
次の設定も存在はしますが、参照するにとどめてください。
|
||||||
はルータとして使う場合に適したコンフィギュレーションです。
|
これらの設定の多くはもう直せないほど古いものになっていますし、
|
||||||
この特別なコンフィギュレーションは、最小限のハードウェアで動作することを
|
体裁を整える努力はなんら払われていません。
|
||||||
|
.\" kageyama: irrimediably => irremediably (回復できない)では?
|
||||||
|
.Bl -hang -width ".Pa bridge"
|
||||||
|
.It Pa dial
|
||||||
|
ダイヤルアウト
|
||||||
|
.Pq Xr ppp 8
|
||||||
|
ネットワークに適した設定です。
|
||||||
|
.It Pa isp
|
||||||
|
ダイヤルイン
|
||||||
|
.Pq Xr ppp 8
|
||||||
|
ネットワークに適した設定です。
|
||||||
|
.It Pa net
|
||||||
|
一般的なネットワークに適した設定です。
|
||||||
|
.It Pa router
|
||||||
|
ルータとして使用する場合に適した設定です。
|
||||||
|
この特別な設定は、最低限のハードウェアで動作することを
|
||||||
目標としています。
|
目標としています。
|
||||||
.El
|
.El
|
||||||
.Pp
|
.Pp
|
||||||
これらのコンフィギュレーションは、
|
これらの設定は、
|
||||||
あなた自身による構築の参考のためだけにあります。
|
あなたが独自の変更を行うときに参考にするためだけにあります。
|
||||||
すべてがテストされたわけではありませんし、
|
すべてがテストされたわけではありませんし、
|
||||||
動かすため、もしくはコード量増加時に空きディスク空間に納めるために、
|
動かすため、もしくはコード量増加時に空きディスク空間に納めるために、
|
||||||
コンフィギュレーションファイルにちょっとした修正が必要となるかもしれません。
|
設定ファイルにちょっとした修正が必要となるかもしれません。
|
||||||
.Pp
|
.Pp
|
||||||
あなた自身のフロッピタイプを定義可能であり、
|
あなた独自のフロッピタイプを定義可能です。それには、
|
||||||
このためには次のものを含む好み (例 FOO) のディレクトリを作成します。
|
何か好きな名前 (例えば
|
||||||
.Pp
|
.Pa FOO )
|
||||||
.Bl -tag -width "floppy.tree.exclude" -compact
|
を選んでディレクトリを作成し、その中に次のファイル
|
||||||
|
およびディレクトリのいくつかを含めれば良いのです。
|
||||||
|
これらのファイルを作成するための詳細情報については、
|
||||||
|
標準の
|
||||||
|
.Nm
|
||||||
|
の設定のどれか 1 つを参考資料として見てください。
|
||||||
|
.Bl -tag -width indent
|
||||||
.It Pa PICOBSD
|
.It Pa PICOBSD
|
||||||
カーネルコンフィギュレーションファイル (必須)。
|
カーネル設定ファイル (必須)。
|
||||||
|
これは、大抵の場合標準のカーネル設定ファイルですが、
|
||||||
|
場合によってはカーネルサイズを小さくするために
|
||||||
|
必要のないドライバやオプションを削っているためファイルが小さく
|
||||||
|
なっていることがあります。
|
||||||
|
.Pp
|
||||||
|
.Nm
|
||||||
|
カーネル設定ファイルとして認識されるためには、
|
||||||
|
次に示すように
|
||||||
|
.Dq Li #PicoBSD
|
||||||
|
で始まる行も含め、対応する
|
||||||
|
.Dv MD_ROOT_SIZE
|
||||||
|
オプションも含める必要があります:
|
||||||
|
.Bd -literal -offset indent
|
||||||
|
#marker def_sz init MFS_inodes floppy_inodes
|
||||||
|
#PicoBSD 4200 init 8192 32768
|
||||||
|
options MD_ROOT_SIZE=4200 # def_sz と同じ
|
||||||
|
.Ed
|
||||||
|
.Pp
|
||||||
|
この設定でメモリファイルシステムのサイズをスクリプトに教え、
|
||||||
|
イメージを構築する方法に関する他の詳細をいくつか与えます。
|
||||||
.It Pa crunch.conf
|
.It Pa crunch.conf
|
||||||
crunchgen コンフィギュレーションファイル (必須)。
|
.Xr crunchgen 1
|
||||||
|
設定ファイル (必須)。
|
||||||
|
この設定にはプログラムソースを含んだ
|
||||||
|
ディレクトリのリスト、構築されるバイナリのリスト、および
|
||||||
|
これらのバイナリプログラムが使用するライブラリのリストが
|
||||||
|
含まれています。
|
||||||
|
このファイルの文法に関する正確な詳細は
|
||||||
|
.Xr crunchgen 1
|
||||||
|
マニュアルページを参照してください。
|
||||||
|
.Pp
|
||||||
|
.Nm
|
||||||
|
の設定を扱う際には次の点がとりわけ重要です:
|
||||||
|
.Bl -bullet
|
||||||
|
.It
|
||||||
|
Makefile のオプションに、Makefile が理解できる構築用オプションを
|
||||||
|
渡すことができます。プログラムのサイズを減らすためです。
|
||||||
|
次の形式の行を用いて実現されます。
|
||||||
|
.Bd -literal -offset indent
|
||||||
|
buildopts -DNOPAM -DRELEASE_CRUNCH ...
|
||||||
|
.Ed
|
||||||
|
.It
|
||||||
|
ソースファイルのあるディレクトリのリストを与えるときは、
|
||||||
|
次のエントリを最初にリストしておくと便利です:
|
||||||
|
.Bd -literal
|
||||||
|
srcdirs /usr/src/release/picobsd/tinyware
|
||||||
|
.Ed
|
||||||
|
こうすると、
|
||||||
|
.Nm
|
||||||
|
特有のバージョンのプログラムがこのディレクトリで見つけられる
|
||||||
|
ようになります。
|
||||||
|
.It
|
||||||
|
文字列
|
||||||
|
.Pa @__CWD__@
|
||||||
|
は、
|
||||||
|
.Nm
|
||||||
|
設定ファイルが入っているディレクトリ
|
||||||
|
(すなわち、
|
||||||
|
.Pa PICOBSD, crunch.conf
|
||||||
|
などが見つかるディレクトリ)
|
||||||
|
のフルパス名に置き換わります。
|
||||||
|
設定ファイルのあるディレクトリの中に
|
||||||
|
存在するソースコードを参照するのに便利でしょう。例えば、次の
|
||||||
|
ようにです。
|
||||||
|
.Bd -literal -offset indent
|
||||||
|
srcdirs @__CWD__@/src
|
||||||
|
.Ed
|
||||||
|
.El
|
||||||
.It Pa config
|
.It Pa config
|
||||||
.Pa picobsd
|
.Nm
|
||||||
スクリプトが読み取るシェル変数 (省略可能)。
|
スクリプトが読み取るシェル変数 (省略可能)。
|
||||||
|
ここで最も重要な変数は次のものです:
|
||||||
|
.Bl -tag -width MY_DEVS
|
||||||
|
.It Va MY_DEVS
|
||||||
|
(-CURRENT では DEVFS がありますので使用されていません)
|
||||||
|
イメージの
|
||||||
|
.Pa /dev
|
||||||
|
ディレクトリに作成されるべきデバイスのリストを設定すべきです
|
||||||
|
(これは、
|
||||||
|
.Xr MAKEDEV 8
|
||||||
|
に渡される引数そのものですから、デバイスの名称については
|
||||||
|
.Xr MAKEDEV 8
|
||||||
|
のマニュアルページを参照してください)。
|
||||||
|
.It Va fd_size
|
||||||
|
.Nm
|
||||||
|
イメージのサイズ (キロバイト単位) です。
|
||||||
|
デフォルトでは
|
||||||
|
.Va fd_size
|
||||||
|
は 1440 に設定されます。この値では、標準のフロッピディスクに
|
||||||
|
適したイメージを生成します。
|
||||||
|
.Pp
|
||||||
|
CDROM にイメージを保存するつもりなら (例えば、
|
||||||
|
.Dq "El Torito"
|
||||||
|
フロッピエミュレーションを用いて)、
|
||||||
|
.Va fd_size
|
||||||
|
を 2880 に設定できます。
|
||||||
|
ハードディスク (パーティション内もしくはディスク全体) に
|
||||||
|
イメージをダンプするつもりなら、標準のフロッピサイズに
|
||||||
|
制限されることはありません。
|
||||||
|
それ自体がサイズの大きなイメージを使用しても実行時に RAM が
|
||||||
|
浪費されることはありません。なぜなら、実際にイメージから
|
||||||
|
ロードされるファイルしかメモリ使用量には関わってこないからです。
|
||||||
|
.It Va import_files
|
||||||
|
フロッピツリー内に取り込まれるファイルのリストを含みます。
|
||||||
|
絶対パス名の場合標準ファイルシステムを、相対パス名の場合
|
||||||
|
使用しているソースツリー
|
||||||
|
(すなわち
|
||||||
|
.Va SRC_PATH/..
|
||||||
|
) のルートディレクトリを表します。
|
||||||
|
通常、共有ライブラリやデータベースなどのファイルを
|
||||||
|
取り込みたい場合に、
|
||||||
|
.Pa floppy.tree/
|
||||||
|
ディレクトリ配下の設定内でそれらのファイルの
|
||||||
|
複製を最初に作らなくても良いように、このオプションを使用できます。
|
||||||
|
.El
|
||||||
|
.Pp
|
||||||
.It Pa floppy.tree.exclude
|
.It Pa floppy.tree.exclude
|
||||||
標準フロッピツリーから得る、必須ではないファイル (省略可能)。
|
標準フロッピツリーから得る、コピーしたくないファイルのリスト (省略可能)。
|
||||||
.It Pa floppy.tree/
|
.It Pa floppy.tree/
|
||||||
標準フロッピツリーへの、ローカルな追加 (省略可能)。
|
標準フロッピツリーへの、ローカルな追加 (省略可能)。
|
||||||
.It Pa floppy.tree.${site}
|
このサブツリーの内容はフロッピイメージにそのままコピーされます。
|
||||||
|
.It Pa floppy.tree. Ns Aq Ar site-name
|
||||||
上と同じですが、サイト固有です (省略可能)。
|
上と同じですが、サイト固有です (省略可能)。
|
||||||
.El
|
.El
|
||||||
.Pp
|
.Pp
|
||||||
構築過程に関する更なる情報は、
|
構築過程に関する更なる情報は、
|
||||||
.Pa picobsd
|
.Nm
|
||||||
スクリプトに記述されています。
|
スクリプトのコメントに記述されています。
|
||||||
サンプルのコンフィギュレーションは
|
サンプルの設定ファイルは
|
||||||
.Pa /usr/src/release/picobsd/ Ns ${type} Ns /
|
.Pa /usr/src/release/picobsd/ Ns Ao Ar floppy-type Ac Ns Pa /
|
||||||
にあります。
|
にあります。
|
||||||
.Sh 別のソースツリーの使用
|
.Sh 別のソースツリーの使用
|
||||||
構築スクリプトは、別のソースツリーを使用するよう、
|
構築スクリプトは、別のソースツリーを使用するよう、
|
||||||
.Fl -src Ar pathname
|
.Fl -src Ar SRC_PATH
|
||||||
オプションで指示可能です。
|
オプションで指示可能です。
|
||||||
指定するツリーは、カーネルおよびイメージに含める全プログラムの
|
指定するツリーは、カーネルおよびイメージに含める全プログラムの
|
||||||
ソースすべてを含む必要があります。
|
ソースすべてを含む必要があります。
|
||||||
このオプションは非常に注意して指定する必要があります。
|
例として、RELENG_4 ソースツリーを使って
|
||||||
なぜならば、別のインクルードファイル、
|
.Pa bridge
|
||||||
別のライブラリ、または別バージョンの
|
フロッピをクロスビルドするには、次のようにしてできます:
|
||||||
.Xr config 8
|
.Bd -literal -offset indent
|
||||||
プログラムを、この別のソースツリーが参照するかもしれないためです
|
cd <some_empty_directory>
|
||||||
|
mkdir FOO
|
||||||
|
(cd FOO; cvs -d<my_repository> co -rRELENG_4 src)
|
||||||
|
picobsd --src FOO/src --init # これは 1 回だけ必要です
|
||||||
|
picobsd --src FOO/src -n -v bridge
|
||||||
|
.Ed
|
||||||
|
.Pp
|
||||||
|
構築に成功すると、ディレクトリ
|
||||||
|
.Pa build_dir-bridge/
|
||||||
|
には
|
||||||
|
.Xr etherboot
|
||||||
|
でダウンロード可能な
|
||||||
|
.Pa kernel
|
||||||
|
、
|
||||||
|
.Pa picobsd.bin
|
||||||
|
という名前のフロッピイメージ、さらに
|
||||||
|
他のディレクトリでコンパイルされた生成物が入ります。
|
||||||
|
.Pa FOO/src
|
||||||
|
内のソースツリーを変更したい場合は、
|
||||||
|
新しいイメージは単に
|
||||||
|
.Pp
|
||||||
|
.Dl "picobsd --src FOO/src -n -v bridge"
|
||||||
|
を実行すれば得られます。
|
||||||
|
.Pp
|
||||||
|
これに対し、変更によって、インクルードファイルや
|
||||||
|
ライブラリに影響がでる場合は、最初にそれらを更新する
|
||||||
|
必要があります。例えば、まず最初に
|
||||||
|
.Pp
|
||||||
|
.Dl "picobsd --src FOO/src --init # これは 1 回だけ必要です"
|
||||||
|
.Pp
|
||||||
|
を実行するのです。
|
||||||
|
このような変更があれば通常はいつでも実行するでしょう。
|
||||||
|
.Sh PicoBSD のインストール
|
||||||
|
.Ss フロッピへのインストール
|
||||||
|
歴史的には、
|
||||||
|
.Nm
|
||||||
|
はフロッピディスクから起動されます。この場合、単に
|
||||||
|
.Pp
|
||||||
|
.Dl "dd if=picobsd.bin of=/dev/rfd0"
|
||||||
|
.Pp
|
||||||
|
を実行してインストールできます。そうすれば、フロッピで
|
||||||
|
ブートできます。
|
||||||
|
.Ss ハードディスクへのインストール
|
||||||
|
イメージをハードディスク (ボリューム全体もしくはスライスの 1 つ)
|
||||||
|
に置くのにも同じプロセスが使用できます。
|
||||||
|
.Bd -literal -offset indent
|
||||||
|
dd if=picobsd.bin of=/dev/ad2
|
||||||
|
dd if=picobsd.bin of=/dev/ad2s3
|
||||||
|
dd if=picobsd.bin of=/dev/ad2 oseek=NN
|
||||||
|
.Ed
|
||||||
|
.Pp
|
||||||
|
1 番目の形式では、イメージをディスク全体にインストールします。
|
||||||
|
このときには、イメージはフロッピに対するときと同じ方法で動作します。
|
||||||
|
.Pp
|
||||||
|
2 番目の形式では、イメージをスライス番号 3 にインストールします
|
||||||
|
(このスライスがイメージの内容を保存するのに充分な大きさを
|
||||||
|
持っている必要があります)。
|
||||||
|
しかし、このやり方は、指定したパーティションに正しいディスク
|
||||||
|
ラベルが入っていない場合にしか成功せず、正しいディスクラベルを
|
||||||
|
持っている場合には、カーネルはラベルを上書きされないようにする
|
||||||
|
でしょう。
|
||||||
|
この場合、3 番目の形式を使うことができます。
|
||||||
|
.Ar NN
|
||||||
|
のところは実際のパーティションの開始位置で置き換えてください
|
||||||
|
(開始位置は
|
||||||
|
.Xr fdisk 8
|
||||||
|
を使用すると決定できます)。
|
||||||
|
スライスにイメージを保存した後でも、まだ認識はされないという
|
||||||
|
ことに注意してください。
|
||||||
|
ラベルを正しく初期化するには
|
||||||
|
.Xr disklabel 8
|
||||||
|
コマンドを使用しなくてはなりません
|
||||||
|
(どうしてかは聞かないでください!)。
|
||||||
|
初期化を行う 1 つの方法としては、
|
||||||
|
.Bd -literal -offset indent
|
||||||
|
disklabel -w ad0s2 auto
|
||||||
|
disklabel -e ad0s2
|
||||||
|
.Ed
|
||||||
|
.Pp
|
||||||
|
とし、エディタから実際のパーティションに対応する行を入力します。
|
||||||
|
例えば、イメージが 2.88MB (5760 セクタ) である場合、パーティションに
|
||||||
|
対して次の行を入力する必要があります:
|
||||||
|
.Pp
|
||||||
|
.Dl "a:5760 0 4.2BSD 512 4096"
|
||||||
|
.Pp
|
||||||
|
この時点で、このパーティションはブート可能になります。
|
||||||
|
イメージサイズはスライスサイズ (パーティション
|
||||||
|
.Dq Li c:
|
||||||
|
として示されます) よりも小さい可能性があることに注意してください。
|
||||||
|
.Ss CDROM へのインストール
|
||||||
|
もう 1 つのオプションに、イメージを CDROM に置くというものが
|
||||||
|
あります。
|
||||||
|
ディスクタイプ
|
||||||
|
.Pa foo
|
||||||
|
に対するイメージがディレクトリ
|
||||||
|
.Pa build_dir-foo
|
||||||
|
にあると仮定します。そうすると、次のコマンドでブート可能な
|
||||||
|
.Pq "El Torito"
|
||||||
|
イメージを生成する (さらに、焼く) ことができます:
|
||||||
|
.Bd -literal -offset indent
|
||||||
|
mkisofs -b picobsd.bin -c boot.catalog -d -N -D -R -T \\
|
||||||
|
-o cd.img build_dir-foo
|
||||||
|
burncd -f /dev/acd0c -s 4 data cd.img fixate
|
||||||
|
.Ed
|
||||||
|
.Pp
|
||||||
|
イメージサイズは 1.44MB もしくは 2.88MB に制限される
|
||||||
|
ことに注意してください。その他のサイズではまず動作しない
|
||||||
|
でしょう。
|
||||||
|
.Ss ネットワークからのブート
|
||||||
|
.Nm
|
||||||
|
を用いたさらにもう 1 つの方法は、ネットワークから
|
||||||
|
イメージをブートすることです。
|
||||||
|
これを実現するためには、コンパイルによる副産物として
|
||||||
|
入手できる非圧縮カーネルを使用する必要があります。
|
||||||
|
さらなる詳細については、ネットワークブートに関する
|
||||||
|
ドキュメントを参照してください。
|
||||||
|
.Nm
|
||||||
|
カーネルは、標準
|
||||||
|
.Fx
|
||||||
|
kernel
|
||||||
|
としてブート可能です。
|
||||||
.Sh PicoBSD のブート
|
.Sh PicoBSD のブート
|
||||||
.Nm
|
.Nm
|
||||||
をブートするには、フロッピを挿入してマシンをリセットします。
|
をブートするには、フロッピを挿入してマシンをリセットします。
|
||||||
ブート手順は標準の
|
ブート手順は標準の
|
||||||
.Fx
|
.Fx
|
||||||
ブートと似ていますが、
|
ブートと似ています。
|
||||||
非常にゆっくりと進みます。
|
フロッピからのブートは普通は非常にゆっくりと進みます
|
||||||
POST (BIOS の Power On Self Test) が終ってから
|
(1 ~ 2 分というオーダです)。イメージをハードディスクや
|
||||||
システムが立ち上がって走行するまで 1 ~ 3 分かかります。
|
コンパクトフラッシュ、あるいは CDROM に保存している場合、
|
||||||
|
事はずっと速く進みます。
|
||||||
.Pp
|
.Pp
|
||||||
ブートを高速化するには、
|
|
||||||
.Xr etherboot
|
.Xr etherboot
|
||||||
を使用して、ロード済みで圧縮を伸長したカーネルイメージをロードしてください。
|
を使用して、ロード済みで非圧縮のカーネルイメージを
|
||||||
|
ロードすることもできます。
|
||||||
このイメージは、
|
このイメージは、
|
||||||
.Nm
|
.Nm
|
||||||
構築過程で生成されます。
|
構築過程で生成される副産物です。
|
||||||
この場合、10Mbit/s イーサネットでさえ、ロード時間は数秒になります、
|
この場合、10Mbit/s イーサネットでさえ、ロード時間は数秒になります、
|
||||||
.Ss スワップ空間
|
.Pp
|
||||||
ブート後は、
|
ブート後は、
|
||||||
.Nm
|
.Nm
|
||||||
は完全にメモリファイルシステム上で走ります。
|
は、メモリファイルシステムからルートファイルシステムをロードし、
|
||||||
もはやフロッピは不要ですし、
|
.Pa /sbin/init
|
||||||
たとえ
|
を起動します。そして制御を 1 番目のスタートアップスクリプト
|
||||||
.Nm
|
.Pa /etc/rc
|
||||||
カーネルにハードディスクドライバが含まれていても、
|
に渡します。後者は
|
||||||
.Nm
|
.Pa /etc
|
||||||
はハードディスクにアクセスしません。
|
および
|
||||||
特に、スワップ空間もありませんので、
|
.Pa /root
|
||||||
メモリ不足の際には予期できない事態が発生し得ます。
|
ディレクトリにデフォルトファイル群と一緒に入っています。
|
||||||
|
そして、ブートデバイスを同定し (フロッピやハードディスクの
|
||||||
|
パーティション)、そして場合によってはルートファイルシステムの
|
||||||
|
内容をブートデバイスから読み込んだファイルで上書きします。
|
||||||
|
これによって、同一メディアにローカルの設定を
|
||||||
|
保存することが可能です。
|
||||||
|
このフェーズの後では、ユーザが明確に使用しようとしない限り
|
||||||
|
ブートデバイスはもう使用されません。
|
||||||
.Pp
|
.Pp
|
||||||
もしディスクドライバがあって、
|
この後、制御は 2 番目のスクリプト
|
||||||
スワップパーティションを含むディスクがあり、
|
.Pa /etc/rc1
|
||||||
しかもそのスワップパーティションに
|
に渡ります (このスクリプトはブートデバイスから上書き可能です)。
|
||||||
保存しておきたいダンプが含まれていないなら、
|
このスクリプトは、 1 番最初にくるイーサネットインタフェースの
|
||||||
そのスワップを
|
MAC アドレスをキーに、そして
|
||||||
.Nm PicoBSD
|
.Pa /etc/hosts
|
||||||
で使用することも可能です。
|
ファイルをルックアップテーブルに
|
||||||
.Xr swapon 8
|
使用してホスト名とシステムとを関連づけようとします。
|
||||||
コマンドを使って下さい。
|
そして、制御はメインのユーザ設定スクリプト
|
||||||
|
.Pa /etc/rc.conf
|
||||||
|
に渡されます。このファイルは、
|
||||||
|
.Pa /etc/rc.conf.defaults
|
||||||
|
で事前に設定されたいくつかの設定用変数の値を
|
||||||
|
上書きするためにあります。
|
||||||
|
.Va hostname
|
||||||
|
変数を用いて、同一ファイルから違った設定を
|
||||||
|
作成することができます。
|
||||||
|
制御が戻ってきたら、
|
||||||
|
.Pa /etc/rc1
|
||||||
|
は初期化を完了し、このスクリプトの一部として
|
||||||
|
ネットワークインタフェースを設定し、オプションで
|
||||||
|
ファイアウォール設定スクリプト
|
||||||
|
.Pa /etc/rc.firewall
|
||||||
|
を呼び出します。
|
||||||
|
このスクリプトには、独自のファイアウォール設定を保存できます。
|
||||||
|
.Pp
|
||||||
|
デフォルトでは、
|
||||||
|
.Nm
|
||||||
|
は、すべてメインメモリから実行し、明示的に要求しなければ
|
||||||
|
スワップ領域は持たないのだということに注意してください。
|
||||||
|
.Pa /etc/rc1
|
||||||
|
が制御を受け取った後では、ブートデバイスももう使用されません。
|
||||||
|
何度も言いますが、明示的に要求しなければです。
|
||||||
|
.Sh PicoBSD システムの設定
|
||||||
|
.Nm
|
||||||
|
システムの運用については、ブート時に読み込まれるいくつかの
|
||||||
|
ファイルを通して設定可能であり、標準の
|
||||||
|
.Fx
|
||||||
|
システムと大変良く似ています。しかしながら、保存しておくべき
|
||||||
|
ファイルおよび / もしくはカスタマイズすべきファイル数を
|
||||||
|
減らし、それによってスペースを節約するために
|
||||||
|
多少小さな違いがあります。
|
||||||
|
設定ファイルの中では、違いがあるものには次のものがあります:
|
||||||
|
.Bl -tag -width indent
|
||||||
|
.It Pa /etc/hosts
|
||||||
|
伝統的に、このファイルには IP とホスト名とのマッピングが
|
||||||
|
入っています。
|
||||||
|
このマッピングに加えて、
|
||||||
|
.Nm
|
||||||
|
バージョンのものにはイーサネット (MAC) アドレスとホスト名との
|
||||||
|
マッピングも次のように含まれています:
|
||||||
|
.Bd -literal -offset indent
|
||||||
|
#ethertable start of the ethernet->hostname mapping
|
||||||
|
#mac_address hostname
|
||||||
|
# 00:12:34:56:78:9a pinco
|
||||||
|
# 12:34:56:* pallino
|
||||||
|
# * this-matches-all
|
||||||
|
.Ed
|
||||||
|
.Pp
|
||||||
|
ここで、
|
||||||
|
.Dq Li #ethertable
|
||||||
|
を含んだ行はテーブルの始まりを表しています。
|
||||||
|
.Pp
|
||||||
|
MAC アドレスが見つからなかった場合、このスクリプトは
|
||||||
|
システム用のホスト名と IP アドレスを入力するよう促します。
|
||||||
|
そしてこの情報を (メモリ上の)
|
||||||
|
.Pa /etc/hosts
|
||||||
|
ファイルに保存し、後で簡単にディスク上に保存できるように
|
||||||
|
します。
|
||||||
|
.Pp
|
||||||
|
アドレス部にはワイルドカードを使用できますので、例の
|
||||||
|
最後の行のようにすると任意の MAC アドレスにマッチし、
|
||||||
|
システムに入力要求をさせないようにできるということに
|
||||||
|
注意してください。
|
||||||
|
.It Pa /etc/rc.conf
|
||||||
|
このファイルにはシステムの運用状況を制御する変数が
|
||||||
|
いくつか含まれています。例えば、インタフェース設定、
|
||||||
|
ルータ設定、ネットワークサービスの起動などです。
|
||||||
|
これらの変数の正確なリストおよびその意味については、
|
||||||
|
.Pa /etc/rc.conf.defaults
|
||||||
|
を参照してください。
|
||||||
|
.Pp
|
||||||
|
これらの変数の中には、
|
||||||
|
.Pa /etc
|
||||||
|
中のファイルの内容をいくつか上書きできるようにするものが
|
||||||
|
あるということに触れておく価値はあります。
|
||||||
|
このオプションは、さしあたり
|
||||||
|
.Pa /etc/host.conf
|
||||||
|
および
|
||||||
|
.Pa /etc/resolv.conf
|
||||||
|
用に利用可能です。これらのファイルの内容は一般的にとても
|
||||||
|
小さく、この種の更新を行うには向いています。
|
||||||
|
これらの変数を使用する場合、改行を適切に使うことを忘れないで
|
||||||
|
ください。例えば、次のようにです。
|
||||||
|
.Bd -literal -offset indent
|
||||||
|
host_conf="# この行は /etc/host.conf に入ります
|
||||||
|
hosts
|
||||||
|
bind"
|
||||||
|
.Ed
|
||||||
|
.Pp
|
||||||
|
必須というわけではありませんが、このファイル中では、
|
||||||
|
.Pa /etc/rc.conf.defaults
|
||||||
|
で示される変数しか設定してはいけません。そして、
|
||||||
|
ネットワークが起動しているかどうかに依ってしまうサービスは
|
||||||
|
起動させずにおくべきです。
|
||||||
|
ネットワークの起動は後からでも行えます。
|
||||||
|
.Va firewall_enable Ns = Ns Qq Li YES
|
||||||
|
に設定した場合、
|
||||||
|
.Pa /etc/rc.firewall
|
||||||
|
スクリプトがネットワークインタフェースの設定後に起動されますので、
|
||||||
|
ファイアウォールを設定し、安全にネットワークサービスを起動したり、
|
||||||
|
ルーティングやブリッジなどを有効にしたりできます。
|
||||||
|
.It Pa /etc/rc.firewall
|
||||||
|
このスクリプトは
|
||||||
|
.Xr ipfw 4
|
||||||
|
ファイアウォールを設定するために使用することができます。
|
||||||
|
エントリ時に、
|
||||||
|
.Va fwcmd
|
||||||
|
変数はファイアウォール用コマンドのパス名に設定されます。
|
||||||
|
.Va firewall_type
|
||||||
|
には
|
||||||
|
.Pa /etc/rc.conf
|
||||||
|
ファイル中で設定された値が入っており、
|
||||||
|
.Va hostname
|
||||||
|
にはホストに割り当てられた名前が入っています。
|
||||||
|
.El
|
||||||
|
.Pp
|
||||||
|
.Nm update
|
||||||
|
という名前の小さなスクリプトがあり、これを用いてブート後に変更した
|
||||||
|
ファイルを編集したり、ディスクに保存したりできます。
|
||||||
|
このスクリプトは 1 つまたはそれより多い絶対パス名を取り、
|
||||||
|
引数として渡されたファイルに対してエディタを実行し、そして
|
||||||
|
ファイルを圧縮したコピーをディスクに保存します
|
||||||
|
(この操作の前後でディスクをマウント / アンマウントします)。
|
||||||
|
.Pp
|
||||||
|
引数無しでこのスクリプトを起動した場合、
|
||||||
|
.Nm update
|
||||||
|
は
|
||||||
|
.Pa rc.conf , rc.firewall
|
||||||
|
および
|
||||||
|
.Pa master.passwd
|
||||||
|
ファイルを編集し、保存します。
|
||||||
|
.Pp
|
||||||
|
引数の 1 つが
|
||||||
|
.Pa /etc
|
||||||
|
(ディレクトリ名だけ)
|
||||||
|
である場合、このコマンドは、/etc ディレクトリにあり、
|
||||||
|
(例えば、前回の updateの結果)
|
||||||
|
すでにコピーがディスク上にあるファイルを
|
||||||
|
みなディスクに (編集せずに) 保存します。
|
||||||
.Sh 関連項目
|
.Sh 関連項目
|
||||||
.Xr crunchgen 1 ,
|
.Xr crunchgen 1 ,
|
||||||
|
.Xr mdconfig 8 ,
|
||||||
.Xr swapon 8 ,
|
.Xr swapon 8 ,
|
||||||
.Xr vnconfig 8
|
.Xr vnconfig 8
|
||||||
.Sh 作者
|
.Sh 作者
|
||||||
|
@ -239,6 +692,7 @@ POST (BIOS
|
||||||
構築の過程は
|
構築の過程は
|
||||||
.Dq root
|
.Dq root
|
||||||
で実行しなければなりません。
|
で実行しなければなりません。
|
||||||
|
.Xr mdconfig 8 /
|
||||||
.Xr vnconfig 8
|
.Xr vnconfig 8
|
||||||
と
|
と
|
||||||
.Xr mount 8
|
.Xr mount 8
|
||||||
|
|
Loading…
Reference in a new issue