NANOBSD(8) | FreeBSD System Manager's Manual | NANOBSD(8) |
名称
nanobsd.sh — 組み込みアプリケーションに適している FreeBSD システムイメージを作成するために使用するユーティリティ書式
nanobsd.sh | [ -bhknw][ -c config-file] |
解説
nanobsd.sh ユーティリティは、Compact Flash カードのような小さいメディアまたは他の大容量記憶メディアに通常適合する FreeBSD ( NanoBSD と呼ばれる) の最小限の実装を作り出すスクリプトです。それは、簡単なインストールとメンテナンスのために設計され、専門化したインストールイメージを構築するために使用することができます。次のオプションが利用可能です:
- -b
- 構築ステージ (kernel と world の両方) をスキップします。
- -c config-file
- 使用する設定ファイルを指定します。
- -h
- 使用法情報を表示します。
- -k
- buildkernel ステージの構築をスキップします。
- -n
- 各構築ステージの前にクリーンアップしません。これは、 buildworld ステージの前に通常行われているクリーンアップ動作を抑制して、各構築ステージ (world と kernel) のために使用される make コマンド行に -DNO_CLEAN を追加します。
- -w
- buildworld ステージの構築をスキップします。
NanoBSD の機能は、次を含みます:
- ports とパッケージは、 FreeBSD と同様に動作します。 FreeBSD と同じ方法で、 NanoBSD イメージを使用して、全ての単一のアプリケーションをインストールすることができます。
- 欠けている機能はありません。 FreeBSD で何かを行うことが可能であるなら、 NanoBSD イメージが作成されたとき、特定の機能が、それから明白に取り除かれなかったなら、 NanoBSD で同じことを行うことは可能です。
- すべては実行時に読み込み専用です。電源プラグを引き抜いても安全です。システムの正常でないシャットダウンの後でも fsck(8) を実行する必要はありません。
- 構築することとカスタマイズすることは簡単です。たった 1 つのシェルスクリプトと 1 つの設定ファイルの使用して、任意の要求の設定を満たすイメージを削減して、カスタマイズすることが可能です。
NanoBSD Ss メディアレイアウト
(通常、読み込み専用でマウントされる) 大容量記憶メディアは、デフォルトで 3 つの部分に分割されます:
- 2 つのイメージパーティション:
code#1
とcode#2
です。 - 実行時に /cfg ディレクトリ下にマウントすることができる、設定ファイルパーティション。
/etc と /var ディレクトリは、 md(4) (malloc で裏付けられた) ディスクです。
設定ファイルパーティションは、 /cfg ディレクトリ下に存続します。それは、 /etc ディレクトリのためにファイルを含んで、システムブートの直後に読み込み専用で手軽にマウントされます、したがって、システムリスタートの後に変更を存続するように望むなら、 /etc からもとの /cfg ディレクトリまで変更されたファイルをコピーする必要があります。
NanoBSD の構築
NanoBSD イメージは、 src/tools/tools/nanobsd ディレクトリにある、簡潔な nanobsd.sh シェルスクリプトを使用して構築されます。このスクリプトは、 dd(1) ユーティリティを使用して記憶メディアにコピーすることができる、ブート可能なイメージを作成します。NanoBSD イメージを構築してインストールために必要なコマンドは、次の通りです:
cd /usr/src/tools/tools/nanobsd sh nanobsd.sh cd /usr/obj/nanobsd.full dd if=_.disk.full of=/dev/da0 bs=64k
NanoBSD のカスタマイズ
たぶんこれは、 NanoBSD の最も重要で最も興味深い機能です。また、これは、 NanoBSD で開発するとき、利用者が最も時間を費すところです。2 つの方法で、カスタマイズを行います:
- 設定オプション。
- カスタム関数。
設定では、 NanoBSD の主要な構築プロセスに渡される内部のオプションと同様に、 NanoBSD 構築プロセスの buildworld と installworld ステージの両方に設定オプションを渡すことが可能です。これらのオプションで、システムダウンをカットすることができるので、わずか 64MB 程度になります。利用者は、ユーザランドでカーネルと 2、3 個のファイルだけから成るようになるまで、システムをさらに切り詰めるために設定オプションを使用することができます。
設定ファイルは、デフォルト値を上書きする、設定オプションから成ります。最も重要な指示は、次の通りです:
- NANO_NAME
- (作業ディレクトリ名を構築するために使用する) 構築名。
- NANO_SRC
- イメージを構築するために使用するソースツリーへのパス。
- NANO_KERNEL
- カーネルを構築するために使用するカーネル設定ファイルの名前。
- NANO_ARCH
- 構築するためのマシンプロセッサアーキテクチャ。 uname -p の出力をデフォルトとします。
- NANO_BOOT0CFG
- boot0cfg(8) に渡されるオプションを制御します。これらは、 boot0 の振る舞いに影響します。
- NANO_BOOTLOADER
- NANO_WORLDDIR 変数に関連して使用する boot0 ローダ。これは、 boot/boot0sio をデフォルトとして、VGA コンソールを提供するために boot/boot0 を上書きするべきです。
- CONF_BUILD
- 構築の buildworld ステージに渡されるオプション。
- CONF_INSTALL
- 構築の installworld ステージに渡されるオプション。
- CONF_WORLD
- 構築の buildworld と installworld ステージの両方に渡されるオプション。
- FlashDevice
- 使用するメディアのタイプを定義します。その他の詳細については、 FlashDevice.sub ファイルをチェックしてください。
より多くの設定オプションについては、 nanobsd.sh スクリプトをチェックしてください。
nanobsd.conf 設定ファイルを使用して NanoBSD イメージを構築するためには、次のコマンドを使用します:
sh nanobsd.sh -c nanobsd.conf
設定ファイルでシェル関数をして NanoBSD を微調整することは、可能です。次の例は、カスタム関数の基本のモデルを例証しています:
cust_foo () ( echo "bar=topless" > \ ${NANO_WORLDDIR}/etc/foo ) customize_cmd cust_foo
いつでも使用できるいくつかの事前に定義されたカスタマイズ関数があります:
- cust_comconsole
- 仮想の syscons(4) 端末 ( /dev/ttyv*) で getty(8) を無効にして、システムコンソールとして最初のシリアルポートの使用を有効にします。
- cust_allow_ssh_root
- sshd(8) によって root をログイン可能とします。
- cust_install_files
- いくつかのシステム管理のために役に立つスクリプトを含む、 nanobsd/Files ディレクトリからファイルをインストールします。
関連ファイル
- src/tools/tools/nanobsd
- NanoBSD 構築スクリプトの基本ディレクトリ。
使用例
/etc/resolv.conf: への永続的な変更を行います:
vi /etc/resolv.conf ... mount /cfg cp /etc/resolv.conf /cfg umount /cfg
/etc ディレクトリのデフォルトサイズを 5MB から 30MB に変更する、カスタマイズ関数のより役に立つ例は、つぎの通りです:
cust_etc_size () ( cd ${NANO_WORLDDIR}/conf echo 30000 > default/etc/md_size ) customize_cmd cust_etc_size
歴史
nanobsd.sh ユーティリティは、 FreeBSD 6.0 ではじめて登場しました。作者
NanoBSD は、 <phk@FreeBSD.org>によって開発されました。このマニュアルページは、 <danger@FreeBSD.org>によって書かれました。May 20, 2010 | FreeBSD |