EN JA
NANOBSD(8)
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#1code#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 構築プロセスの buildworldinstallworld ステージの両方に設定オプションを渡すことが可能です。これらのオプションで、システムダウンをカットすることができるので、わずか 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
構築の buildworldinstallworld ステージの両方に渡されるオプション。
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 は、 Poul-Henning Kamp <phk@FreeBSD.org>によって開発されました。このマニュアルページは、 Daniel Gerzo <danger@FreeBSD.org>によって書かれました。
May 20, 2010 FreeBSD