4    カーネルの構成

この章では,インストレーション中およびインストレーション後のカーネル構成と,動的構成および静的構成について説明します。 この章で説明する情報は,以下のとおりです。

4.1    概要

オペレーティング・システムのカーネルは,メモリ常駐の実行可能イメージであり,ハードウェア割り込み,メモリ管理,プロセス間通信,プロセス・スケジューリングなど,すべてのシステム・サービスを処理するとともに,他の作業をオペレーティング・システム上で実行可能にします。 これらのコア・サービスをサポートするコードに加えて,カーネルには数多くのサブシステムが含まれています。

サブシステムはカーネル・モジュールであり,コア・カーネル・サービスの範囲を超えてカーネルを拡張します。 ファイル・システムやネットワーク・プロトコル・ファミリ,物理ドライバおよび擬似デバイス・ドライバはすべて,サポートされているサブシステムの例です。 サブシステムの中には,カーネルで必須のものあれば,オプションのものもあります。 カーネルの構成は,これらオプションのサブシステムを追加したり,削除することによって行います。 この構成は,インストレーションのときに行うこともできますし,インストレーション後にシステムを変更する必要が生じた場合に行うこともできます。

この他のカーネルの構成方法は,カーネル内に格納されている値を調整することです。 たとえば,カーネル内の値には,ディスク・アクセスを速くするように調整できるものがあります。 値を変更して,ディスク・アクセスを最適化すると,システムの性能を改善することができますが,他の性能に影響を及ぼすことがあります。 システムのチューニングおよび属性値の影響についての詳細は,『システムの構成とチューニング』 に説明しています。

カーネルの構成には,動的メソッドと静的メソッドの 2 つがあります。

動的メソッド

コマンドを使用して,カーネルの実行中に,カーネルを構成します。

静的メソッド

システム・ファイルを変更して,カーネルを再構築します。

システム・ファイルを変更してカーネルを再構築する処理は,多くの場合,難しいため,可能であれば動的カーネル構成を使用してください。 すべての変更が動的に行えるとは限りません。 また,動的な変更は,システムのリブート後も持続するわけではありません。

4.2    関連ドキュメントとユーティリティ

次に,システム属性,構成ツールとユーティリティについての情報,および構成オプションの詳細な参照情報を示します。 以下の項で説明する資料の形式は,マニュアル, リファレンス・ページ,およびオンライン・ヘルプです。

4.2.1    マニュアル

Tru64 UNIX オペレーティング・システムのドキュメント・セットにある以下のマニュアルでは,システム構成が説明されています。

4.2.2    リファレンス・ページ

ここで示すリファレンス・ページでは,システム属性とユーティリティについて説明しています。

sys_attrs(5)

システム属性を説明するとともに,streamssocket など,各カーネル・サブシステムについて説明しているいくつかの sys_attrs* リファレンス・ページを参照先として示しています。 構成可能な属性を持たないサブシステムがいくつかありますが,ここには挙げていません。

注意

属性値を変更する前に,該当するリファレンス・ページと『システムの構成とチューニング』を参照してください。

sys_attrs_vm(5)

カーネル構築時に必須となるサブシステムの属性について説明しています。 これらの必須サブシステムには,構成マネージャ (cm),汎用カーネル (generic),プロセス間通信 (ipc),プロセス (proc),仮想ファイル・システム (vfs),および仮想メモリ (vm) があります。

sys_attrs_advfs(5)

Advanced File System (advfs) カーネル・サブシステムの属性について説明しています。

sys_attrs_atm(5)

Asynchronous Transfer Mode (ATM) カーネル・サブシステムの属性について説明しています。 これらのカーネル・サブシステムには,Base ATM support (atm),ATM Forum Integrated Layer Management Interface (atmilmi3x),Classical IP services (atmip),ATM Forum signaling と Integrated Layer Management Interface support (atmuni),ATM Forum LAN Emulation (lane),および ATM Forum signaling (uni3x) があります。

sys_attrs_*(5)

各サブシステムの属性について説明しています。 以下の表には,これらのカーネル・サブシステムのリファレンス・ページを示していますが,調整可能な属性を持たないカーネル・サブシステムは省いてあります。

リファレンス・ページ 説明
sys_attrs_ace(5) シリアル・デバイス (ace) カーネル・サブシステム
sys_attrs_alt(5) ギガビット・イーサネット・アダプタで使用される alt カーネル・サブシステム
sys_attrs_autofs(5) AutoFS カーネル・サブシステム
sys_attrs_bparm(5) ブート・パラメータ・カーネル・サブシステム
sys_attrs_bsd_tty(5) BSD 端末カーネル・サブシステム
sys_attrs_cam(5) SCSI CAM I/O カーネル・サブシステム
sys_attrs_cm(5) 構成管理カーネル・サブシステム
sys_attrs_dli(5) データ・リンク・インタフェース・カーネル・サブシステム
sys_attrs_dlpi(5) データ・リンク・プロバイダ・インタフェース・カーネル・サブシステム
sys_attrs_ee(5) 10/100 MB イーサネット・アダプタで使用される,ee カーネル・サブシステム
sys_attrs_eisa(5) EISA バス・カーネル・サブシステム
sys_attrs_fta(5) FDDI (Fiber Distributed Data Interface) アダプタで使用される fta カーネル・サブシステム
sys_attrs_generic(5) 汎用カーネル・サブシステム
sys_attrs_gpc_input(5) GPC インプット・カーネル・サブシステム
sys_attrs_io(5) 入出力カーネル・サブシステム
sys_attrs_ipc(5) プロセス間通信カーネル・サブシステム
sys_attrs_iptunnel(5) インターネット・プロトコル・トンネリング・カーネル・サブシステム
sys_attrs_ipv6(5) インターネット・プロトコル・バージョン 6 のカーネル・サブシステム
sys_attrs_isa(5) ISA バス・カーネル・サブシステム
sys_attrs_kevm(5) カーネル・イベント管理カーネル・サブシステム
sys_attrs_lag(5) リンク・アグリゲーション・グループ・カーネル・サブシステム
sys_attrs_lfa(5) lfa カーネル・サブシステム
sys_attrs_lsm(5) Logical Storage Manager カーネル・サブシステム
sys_attrs_net(5) ネットワーク・カーネル・サブシステム
sys_attrs_netrain(5) NetRAIN (Redundant Array of Independent Network) アダプタ・カーネル・サブシステム
sys_attrs_pci(5) PCI カーネル・サブシステム
sys_attrs_ppp(5) ポイント・ツー・ポイント・プロトコル・カーネル・サブシステム
sys_attrs_presto(5) PrestoServe カーネル・サブシステム
sys_attrs_proc(5) プロセス・カーネル・サブシステム
sys_attrs_psm(5) プロセス・セット・マネージャ・カーネル・サブシステム
sys_attrs_pts(5) 擬似端末カーネル・サブシステム
sys_attrs_pwrmgr(5) 電力管理 (pwrmgr) カーネル・サブシステム
sys_attrs_rt(5) リアルタイム・カーネル・サブシステム
sys_attrs_scc(5) シリアル・ドライバ・カーネル・サブシステム
sys_attrs_scc_input(5) シリアル・ドライバ・キーボード・ドライバ・カーネル・サブシステム
sys_attrs_sec(5) セキュリティ・カーネル・サブシステム
sys_attrs_snmp_info(5) SNMP (Simple Network Management Protocol) カーネル・サブシステム
sys_attrs_socket(5) ソケット・カーネル・サブシステム
sys_attrs_streams(5) STREAMS カーネル・サブシステム
sys_attrs_tc(5) TURBOchannel バス・カーネル・サブシステム
sys_attrs_tu(5) 10/100 MB イーサネット・アダプタで使用される tu カーネル・サブシステム
sys_attrs_ufs(5) UFS (UNIX ファイル・システム) カーネル・サブシステム
sys_attrs_uipc(5) AF_UNIX プロセス間通信カーネル・サブシステム
sys_attrs_vfs(5) 仮想ファイル・システムのカーネル・サブシステム

doconfig(8)

現在のシステム構成ファイルで指定されている設定に従ってカーネルを構築するためのユーティリティについて説明しています。

kopt(8)

カーネル・オプションを選択するためのユーティリティについて説明しています。

sysconfig(8)sysconfigtab(4),および sysconfigdb(8)

コマンド行ユーティリティと,カーネル・サブシステムの構成管理やカーネル・サブシステム属性の変更または表示に使用するデータベースについて説明しています。 sysconfigtab コマンドでは,構成データベースのファイル形式について説明しています。 sysconfigdb ユーティリティを使用して,この構成データベースを管理してください。

sysconfigdb(8)stanza(4)

サブシステム構成データベースを管理するコマンド行ユーティリティについて説明しています。 stanza コマンドでは,スタンザ・ファイルの構成形式について説明しています。 このファイルの内容は,sysconfigdb を実行したときに構成データベースに組み込まれます。

autosysconfig(8)

自動構成の対象にする一連の動的カーネル・サブシステムを管理するユーティリティについて説明しています。

cfgmgr(8)

sysconfig および他のユーティリティがカーネル・サブシステムを管理するために使用するサーバについて説明しています。 カーネル・ロード・サーバについて説明している kloadsrv(8) リファレンス・ページも参照してください。

dxkerneltuner(8)

カーネル・サブシステムの属性を変更したり表示したりするグラフィカル・ユーザ・インタフェース (カーネル・チューナ) について説明しています。

sys_check(8)

さまざまなシステム属性を検査し,それら属性の適正値を表示する,sys_check ユーティリティについて説明しています。 詳細については,第 3 章 も参照してください。

4.2.3    オンライン・ヘルプ

カーネル・チューナ・グラフィカル・ユーザ・インタフェースには,独自のオンライン・ヘルプがあります。

4.3    インストレーション時のシステム構成

オペレーティング・システムをインストールすると,インストレーション・プログラムは最初にシステム・ディスクのルート・パーティションにカーネル・イメージをコピーします。 汎用カーネルとも呼ばれるこのカーネル・イメージは,オペレーティング・システムの現在のバージョンで使用できるすべてのプロセッサおよびハードウェア・オプションをサポートしています。 このように,どのような構成であっても,システムをブートできることをインストレーション・プログラムは保証します。 汎用カーネルのファイルは,/genvmunix です。

選択したすべてのサブセットがディスクに書き込まれ,その確認が終わると,インストレーション処理の最後に,インストレーション・プログラムは /usr/sbin/doconfig プログラムを呼び出します。 呼び出された /usr/sbin/doconfig プログラムは sizer という別のプログラムを呼び出します。 sizer プログラムは,システムにインストールされているハードウェアおよびソフトウェア・オプションを判断して,システム固有のターゲット構成ファイルを作成します。 この構成ファイルは,カーネルにリンクされるハードウェアおよびソフトウェア・サポートを制御するシステム・ファイルです。 その後,このターゲット構成ファイルをもとに,/usr/sbin/doconfig プログラムがカスタマイズした /vmunix カーネルを構築します。 このカーネルの構築では,すべてのサブシステム属性に対してその省略値が使用されます。

インストレーション時にシステムにコピーされる汎用カーネルとは異なり,ターゲット・カーネルは,使用するシステムに合わせてカスタマイズされています。 システムで使用できるハードウェアおよびソフトウェア・オプションだけがコンパイルされて,ターゲット・カーネル内に組み込まれます。 このため,ターゲット・カーネルは汎用カーネルよりも小さく,かつ効率的なものになります。

インストレーションが終了すると,システムの構築方法により,ターゲット・カーネルは,メモリまたはシステム・ディスクのルート・パーティションのいずれかに存在することになります (カーネルの異なる構築方法については,4.6 節を参照)。 コンソール・ブート変数を適切に設定していれば,システムは自動的にターゲット・カーネルをブートします。 コンソール・ブート変数の設定方法と使用方法については第 2 章を参照してください。

4.4    カーネルを再構成する時期と方法の決定

インストレーション・プロシージャによりターゲット・カーネルが構築されて起動されると,次のような状況が起こらないかぎり,そのカーネルを変更せずに使用することができます。

ほとんどのデバイスはシステムによって自動的に認識され,ブート時にカーネルへ組み込まれます。 デバイスの追加についての詳細は,『ハードウェア管理ガイド』を参照してください。 ただし,サードパーティ製のディスク・ドライブ,古いタイプのドライブやスキャナや PCMCIA カードなどのデバイスは手動で追加する必要があります。 これらのデバイスを追加する場合は,動的であれ静的であれ,カーネルを再構成する必要があります。 カーネルの再構成に使用するメソッドは,サブシステムまたはサブシステム属性によって提供されるサポートにより異なります。

envmon 環境モニタリング・サブシステムなどのカーネル・サブシステムは,動的にロードすることができます。 つまり,カーネルを再構築しなくても,カーネルに対してサブシステムの追加や削除を行うことができます。 また,動的にロード可能なサブシステムのほとんどは,その属性値を動的に構成することができます。 したがって,カーネルを再構築しなくても,これらのサブシステムの性能を調整することができます。 属性が動的に構成可能かどうかを調べる場合は,sysconfig で -m を使い,次のように動的識別子を検索します。

# sysconfig -m | grep dynamic
lat: dynamic
envmon: dynamic
hwautoconfig: dynamic
 
 

カーネルに対してこれらのサブシステムの追加や削除を行ったり,属性の値を構成したりする場合には,4.5 節で説明する手順に従ってください。

必須サブシステムなど,一部のサブシステムは動的にロードできません。 ただし,これらのサブシステムでは,属性の値を動的に構成することができます。 その場合,これらのサブシステムの属性値は,カーネルを再構築しなくても構成できます。

次のメソッドを使用して,属性を動的に構成できます。

これらのサブシステムの属性を構成する場合には,4.5.8 項 で説明する手順に従ってください。 /etc/sysconfigtab などのシステム・ファイルは,手動で編集しないことをお勧めします。 代わりに,dxkerneltuner などの,コマンドやユーティリティを使用して変更を行ってください。

デバイス・ドライバまたはその他のカーネル・サブシステムをサードパーティのベンダから購入した場合は,その製品は動的ロードが可能であったり,属性値の動的構成が可能なことがあります。 他のベンダの製品と一緒に使用する場合に,カーネルを動的に構成する方法については,その製品に付属のマニュアルおよび4.5 節を参照してください。

追加,削除,または構成を行うサブシステムが動的な構成をサポートしていない場合には,静的な構成メソッドを使用しなければなりません。 また,動的な構成をサポートしていないシステム・パラメータを構成する場合にも,このメソッドを使用する必要があります。 静的構成メソッドについては,4.6 節を参照してください。

4.5    動的システム構成

動的サブシステムのロード,アンロード,変更を行う必要がある場合は,/sbin/sysconfig コマンドを使用します。 このコマンドの構文は次のとおりです。

/sbin/sysconfig [-h hostname] [-i index [ -v | -c | -d | -m | -o | -q | -Q | -r | -s | -u ] ] [subsystem-name] [attribute-list | opcode]

サブシステムのロードおよびアンロードを行うには,スーパユーザでなければなりません。 また,管理するサブシステムの名前も知っておく必要があります。 サブシステムの名前は,そのサブシステムに付属のマニュアルを参照するか,またはサブシステムがインストールされているディレクトリを見て調べてください。 サブシステムは,ディレクトリ /subsys または /var/subsys のいずれかにインストールされます。 サブシステムがインストールされると,subsystem-name.mod という名前のファイルが,これら 2 つのディレクトリのいずれかに格納されます。 そのサブシステム名を /sbin/sysconfig コマンドの入力として使用してください。 以降の各項で,サブシステムの管理に使用するコマンドについて説明します。

サブシステムのロードおよびアンロードは,ローカル・システム上でもリモート・システム上でも行うことができます。 リモート・システム上でサブシステムの追加および削除を行う方法については,4.5.7 項を参照してください。

ロード可能なデバイス・ドライバや他のロード可能なサブシステムを記述している場合には,そのデバイス・ドライバのマニュアルおよび『プログラミング・ガイド』を参照してください。 デバイス・ドライバのマニュアルでは,ロード可能なデバイス・ドライバをインストールした場合に,システムが実行するタスクについて説明しています。 また,これらのマニュアルでは,ロード可能なデバイス・ドライバの作成およびパッケージ方法についても説明しています。 『プログラミング・ガイド』では,動的に構成できるサブシステムの作成に関する一般情報を記載するとともに,サブシステムおよび属性の動的構成をサポートするフレームワークについても説明しています。

4.5.1    サブシステムの構成

サブシステムを構成 (ロード) するには,-c オプションを使用して sysconfig コマンドを入力します。 このコマンドは,新しくインストールしたサブシステム,または /sbin/sysconfig -u (構成除外オプション) コマンドで削除したサブシステムを構成する場合に使用します。 たとえば,環境モニタリング (envmon) サブシステムを構成する場合,次のコマンドを入力します。

# /sbin/sysconfig -c envmon

4.5.2    構成サブシステムのリスト

カーネルがサブシステムを認識することができても,使用できるとは限りません。 使用できるサブシステムを判断するには,/sbin/sysconfig -s コマンドを使用します。 このコマンドを実行すると,すべてのサブシステムの状態が表示されます。 サブシステムは次のいずれかの状態をとります。

サブシステム名を指定しないで /etc/sysconfig -s コマンドを使用すると,構成されているサブシステムがすべて表示されます。 たとえば,次の例を参照してください。

# /sbin/sysconfig -s
cm: loaded and configured
hs: loaded and configured
ksm: loaded and configured
generic: loaded and configured
io: loaded and configured
ipc: loaded and configured
proc: loaded and configured
sec: loaded and configured
socket: loaded and configured
rt: loaded and configured
advfs: loaded and configured
.
.
.
envmon: unloaded
 
 

このリスト (途中から省略) には,静的にリンクされているサブシステムと動的にロードされているサブシステムの両方が含まれています。

特定のサブシステムの状態情報を取得するには,次のように,コマンド行にサブシステム名を指定します。

# /sbin/sysconfig -s lsm
lsm: unloaded
 

4.5.3    サブシステムのタイプの判断

サブシステムが動的にロード可能であるか,または静的なサブシステムであるかを判断するには,/sbin/sysconfig -m コマンドを次のように使用します。

# /sbin/sysconfig -m kinfo lat
kinfo: static
lat: dynamic
 

このコマンドの実行結果から,kinfo サブシステムは静的であることがわかるため,カーネルに対してそのサブシステムの追加や削除を行うには,カーネルを再構築する必要があります。 一方,lat サブシステムは動的です。 このサブシステムは,sysconfig -c コマンドで構成し,sysconfig -u コマンドで構成除外を行うことができます。

4.5.4    サブシステムのアンロード

サブシステムの構成除外 (および,おそらくアンロード) を行うには,次のように /sbin/sysconfig -u コマンドを使用します。

# /sbin/sysconfig -u hwautoconfig

デバイス・ドライバを頻繁に構成したり構成除外する場合には,特定のデバイス・ドライバに関連するデバイス特殊ファイルがその都度異なることに注意してください。 これは正常な動作です。 /sbin/sysconfig コマンドを使用してデバイス・ドライバを構成すると,システムはデバイス特殊ファイルを作成します。 そのデバイス・ドライバをアンロードして,同じ cdev または bdev 主デバイス番号を使用する別のデバイス・ドライバをロードすると,システムは,アンロードされたデバイス・ドライバ用のデバイス特殊ファイルを削除します。 したがって,次にそのデバイスを構成するときに,システムは新しいデバイス特殊ファイルを作成する必要があります。 デバイス特殊ファイルについての詳細は,『ハードウェア管理ガイド』と dsfmgr(8) リファレンス・ページを参照してください。

4.5.5    自動構成サブシステムのリストの保守

システムは,自動構成サブシステムのリストを検査することにより,リブート時にカーネル内で構成するサブシステムを決定します。 システムは,システム・リブート時に sysconfig -c コマンドを使用し,そのリストにある各サブシステムについて構成を行います。

自動構成サブシステムのリストの保守を行うには,/sbin/init.d/autosysconfig コマンドを使用します。

このコマンドの構文は次のとおりです。

/sbin/init.d/autosysconfig [list] [add subsystem-name] [delete subsystem-name]

リブート時にシステムが自動的に構成するロード可能なサブシステムのリストを確認するには,/sbin/init.d/autosysconfig list コマンドを使用します。

サブシステムをリストに追加するには,/sbin/init.d/autosysconfig add コマンドを使用します。 たとえば,lat サブシステムを追加するには,次のコマンドを入力します。

# /sbin/init.d/autosysconfig add lat

自動構成サブシステムのリストにあるサブシステムをアンロードする場合は,そのサブシステムをリストから削除する必要があります。 削除しない場合,システムは,次のリブート時にそのサブシステムをカーネルに戻して,構成を行います。 サブシステムを自動構成サブシステムのリストから削除する場合は,/sbin/init.d/autosysconfig delete コマンドを使用します。 たとえば,lat サブシステムを削除するときは,次のコマンドを入力します。

# /sbin/init.d/autosysconfig delete lat

4.5.6    サブシステム属性の管理

サブシステムやシステム全体の性能または動作を改善するために,サブシステム属性の値を変更することがあります。 これらの変更には,sysconfigsysconfigdb またはカーネル・チューナ GUI を使用します。 また,クラッシュしたシステムの回復などの特定の状況では,デバッガ dbx を使用して,クラッシュしたカーネル内の属性を調べて変更する必要があります。 この手順の詳細については,『Kernel Debugging』 を参照してください。

実行時に属性を変更すると,その変更は,システムが実行している間だけ持続します。 システムをシャットダウンしてリブートすると,変更は失われます。 サブシステム属性の変更がリブート後も持続するようにするには,4.5.8 項で説明するように,その属性の変更値を /etc/sysconfigtab データベースに格納する必要があります。 変更した属性値の持続性は,使用したコマンドまたはユーティリティのオプションによって異なります。 ガイドラインを次に示します。

注意

以前のオペレーティング・システムのリリースでは,/etc/sysconfigtab ファイルは,vi などのテキスト・エディタで変更可能なシステム・ファイルとして記述されています。 最近のリリースでは,アップデート・インストレーションおよびカーネルが変更を認識するうえで,サブシステム・スタンザの管理が重要になってきました。 /etc/sysconfigtab の構造を正しく維持するために,sysconfigdb コマンドまたはカーネル・チューナ・グラフィカル・ユーザ・インタフェースだけを使用して変更を行います。

詳細については, sysconfig(8)sysconfigdb(8)sysconfigtab(4),および dxkerneltuner(8) を参照してください。

システム構成ファイルに設定されたシステム・パラメータは,システム・テーブルを定義し,カーネルの省略値とみなされます。 必要な場合には,/sbin/sysconfig コマンドを使用するか,または値を /etc/sysconfigtab データベースに格納することによって,これらの値を上書きすることができます。 構成ファイル (および param.c) についての詳細は,4.6 節を参照してください。

動的サブシステム属性は,ローカルでもリモートからでも管理することができます。 /sbin/sysconfig コマンドをリモートから使用する方法については,4.5.7 項を参照してください。

4.5.6.1    サブシステム属性の現在値の確認

/sbin/sysconfig -q コマンドまたは dxkerneltuner を使用して,サブシステム属性に割り当てる値を確認することができます。 /sbin/sysconfig -q コマンドを入力するとき,コマンド行で指定するサブシステムはロードされて構成されていなければなりません。 ロードされて構成されているサブシステムをリスト表示する方法については,4.5.2 項を参照してください。

次の例は,このコマンドを使用して,generic サブシステムに属する属性を調べる方法を示しています。

# /sbin/sysconfig -q generic
generic:
booted_kernel = vmunix
booted_args = vmunix
lockmode = 0
lockdebug = 0
locktimeout = 15
max_lock_per_thread = 16
lockmaxcycles = 0
rt_preempt_opt = 0
cpu_enable_mask = 0x1
binlog_buffer_size = 0
msgbuf_size = 32768
dump_sp_threshold = 4096
use_faulty_fpe_traps = 0
partial_dump = 1
make_partial_dumps = 1
compressed_dump = 1
make_compressed_dumps = 1
expected_dump_compression = 500
expect_1000b_to_compress_to = 500
dump_to_memory = 0
dump_allow_full_to_memory = 0
leave_dumps_in_memory = 0
dump_user_pte_pages = 0
live_dump_zero_suppress = 1
live_dump_dir_name = /var/adm/crash
include_user_ptes_in_dumps = 0
lite_system = 0
physio_max_coalescing = 65536
kmem_percent = 25
kmemreserve_percent = 0
kmem_debug = 0
kmem_debug_size_mask = 0
kmem_protected_size = 0
kmem_protected_lowat = 1000
kmem_protected_hiwat = 0
kmem_protected_kmempercent = 75
kmem_audit_count = 1024
kmemhighwater_16 = 4
.
.
.
kmemhighwater_12k = 4
old_obreak = 1
user_cfg_pt = 45000
memstr_buf_size = 0
memstr_start_addr = 0
memstr_end_addr = 0
memlimit = 0
insecure_bind = 0
memberid = 0
memberseq = 0
clu_configured = 0
clu_active_member = 0
old_vers_high = 0
old_vers_low = 0
act_vers_high = 1441151880873377792
act_vers_low = 15044
new_vers_high = 1441151880873377792
new_vers_low = 15044
versw_switch = 0
versw_transition = 0
rolls_ver_lookup = 0
login_name_max = 12
enable_async_printf = 1
 
 

(ここでは,途中で表示を省略してあります。)

4.5.6.2    実行時に構成可能なサブシステム属性の識別

/sbin/sysconfig -Q コマンドを使用すると,どのサブシステムの属性が実行時に構成できるかを識別することができます。 次の例を参照してください。

# /sbin/sysconfig -Q vfs max-vnodes
vfs:
max-vnodes -    type=INT op=CRQ min_val=0 max_val=1717986918
 
 

この例では,-Q オプションを使用して,vfs サブシステムの max-vnodes 属性に関する情報を取得しています。 max-vnodes 属性は integer データ型であり,最小値が 0 で最大値が 1717986918 になります。 op フィールドは,max-vnodes 属性で実行できるオペレーションを示しています。 次に,このフィールドに表示される値を示します。

C

サブシステムが最初にロードされるときに,属性を変更できる。

R

サブシステムが動作しているときに,属性を変更できる。

Q

属性を照会できる。

4.5.6.3    属性値の実行時における変更

属性の値を実行時に変更するには,/sbin/sysconfig -r コマンド,dxkerneltuner,またはソース・レベル・デバッガ dbx を使用します。 加えた変更は,システムがリブートされるまで持続します。 システムをリブートすると,/sbin/sysconfig -r コマンドで行った変更は失われます。 これは,新しい値が保存されていないためです。 /sbin/sysconfig コマンドに -r オプションを指定すると,新しいサブシステム属性値のテストに役立ちます。 新しい値でシステムが予想どおりに実行された場合には,4.5.8 項で説明するように,その値をサブシステム属性データベースに格納しておきます。 詳細は, dbx(1) および『システムの構成とチューニング』を参照してください。

/sbin/sysconfig -r コマンドを使用する場合には,属性,新しい値,およびサブシステム名をコマンド行に指定します。 たとえば,generic サブシステムに対して,dump-sp-threshold 属性を変更する場合には,次のようなコマンドを入力します。

# /sbin/sysconfig -r generic dump-sp-threshold=20480
 

一度に複数の属性を変更するときには,/sbin/sysconfig コマンド行にリストを指定します。 たとえば,dump-sp-threshold 属性と locktimeout 属性を変更するには,次のようなコマンドを入力します。

# /sbin/sysconfig -r generic dump-sp-threshold=20480 \
locktimeout=20 

2 つの属性指定はコンマで区切らないことに注意してください。

属性値を永続的な値にするには,その値を適切な方法で /etc/sysconfigtab ファイルに追加する必要があります。 たとえば,カーネル・チューナ・グラフィカル・ユーザ・インタフェースを使用して,その属性値をブート時の値として指定します。

4.5.7    サブシステムおよび属性のリモート管理

/sbin/sysconfig -h コマンドを使用すると,ローカル・エリア・ネットワーク (LAN) 上の構成可能サブシステムおよび動的サブシステム属性をリモートで管理することができます。 これを使用すると,1 台のマシンから複数のシステムを管理できるようになります。

リモートで管理する各システムには,ローカル・システムの完全ドメイン名を含む /etc/cfgmgr.auth ファイルが必要です。 バークレー・インターネット・ドメイン (BIND) またはネットワーク情報サービス (NIS) を使用している場合には,/etc/cfgmgr.auth ファイル内の名前は,/etc/hosts ファイル,あるいは,BIND または NIS ホスト・データベースにある名前と同じでなければなりません。 省略時の設定でシステムに /etc/cfgmgr.auth ファイルがない場合には,そのファイルを作成する必要があります。 cfgmgr.auth ファイルの例を次に示します。

salmon.zk3.dec.com
trout.zk3.dec.com
bluefish.zk3.dec.com
 

リモート・システムでサブシステムと属性を管理するには,/sbin/sysconfig コマンドに -h オプションとホスト名を指定します。 たとえば,環境モニタリング lat サブシステムを MYSYS という名前のリモート・ホストにロードするには,次のコマンドを入力します。

# /sbin/sysconfig -h MYSYS -c lat

この例では,指定したサブシステムをロードする前に,lat.mod ファイルが,リモート・システム上の /subsys ディレクトリまたは /var/subsys ディレクトリのいずれかに存在している必要があります。 ロード可能サブシステムのサブセットが正しくキッティングされていれば,setld コマンドを使用してそのロード可能サブシステムをインストールするときに,subsystem-name.mod ファイルがリモート・システムにインストールされます。

4.5.8    サブシステム属性データベースの管理

動的に構成可能なサブシステム属性の情報は /etc/sysconfigtab データベースに格納されています。 このデータベースは,システムがリブートされるたびに,またはサブシステムが構成されるたびに,サブシステム属性に割り当てられた値を記録します。 このデータベースには,自動的に属性が登録されることはありません。 /etc/sysconfigtab データベースの変更は,必ずスーパユーザで sysconfigdb コマンド行ユーティリティまたは カーネル・チューナ・グラフィカル・ユーザ・インタフェースを使用して行う必要があります。 このメソッドの使用についての詳細は,カーネル・チューナのオンライン・ヘルプを参照してください。

注意

/etc/sysconfigtab データベースには,構成可能サブシステムの stanza.loadable ファイルからスタンザ・エントリが登録されていることがあります。 このファイルおよび /etc/sysconfigtab データベースのエントリは,任意の構成可能サブシステムをインストールしたとき,自動的に作成されます。 データベース内のこれらのエントリは変更してはなりません。

/etc ディレクトリには複数のバージョンの sysconfigtab.* ファイルがありますが,通常の動作で使用されるのは /etc/sysconfigtab バージョンだけです。 これらのバージョンは,/vmunix カーネルを作成するときのモジュールのダイナミック・リンクをサポートするために存在します。 この機能はブートリンクと呼ばれ,『Guide to Preparing Product Kits』で説明されています。 sysconfigtab.* ファイルのいずれかを削除すると,ブートリンクが使用できなくなります。

データベースのエントリに対して追加,更新,削除を行うには,変更する属性の名前と値の入っているスタンザ・フォーマットのファイルを作成します。 スタンザ・フォーマットのファイルについては, stanza(4) を参照してください。 たとえば,generic サブシステムの lockmode 属性を 1 に設定したい場合について考えてみます。 この属性を設定するには,たとえば,generic_attrs という名前のファイルを作成して,次の内容を含めます。

generic:
         lockmode = 1
 

スタンザ・フォーマットのファイルを作成すると,/sbin/sysconfigdb コマンドを使用して,/etc/sysconfigtab データベースを更新することができます。 コマンド行で -f オプションを使用して,スタンザ・フォーマットのファイルを指定します。 sysconfigdb コマンドは,指定されたファイルを読み込んで,ディスク上およびメモリ内にある両方のデータベースのコピーを更新します。 ただし,動作中のカーネルは更新されません。 動作中のカーネルを更新する場合は,4.5.6.3 項で説明しているように,sysconfig -r コマンドを使用します。

sysconfigdb コマンドの構文は,次のとおりです。

/sbin/sysconfigdb {-s}

/sbin/sysconfigdb -toutfile [-f infile -a | -usubsystem-name]

/sbin/sysconfigdb -toutfile [-f infile -m | -rsubsystem-name]

/sbin/sysconfigdb -toutfile [-f infile -d subsystem-name]

/sbin/sysconfigdb -toutfile [-f infile -l [ subsystem-name... ] ]

以降の各項では,/sbin/sysconfigdb コマンドを使用して,/etc/sysconfigtab データベースのエントリを管理する方法について説明します。

4.5.8.1    データベース内の属性のリスト

/etc/sysconfigtab データベース内のエントリをリストするには,/sbin/sysconfigdb -l コマンドを使用します。 コマンド行にサブシステム名を指定した場合には,そのサブシステムの属性がリストされます。 サブシステム名を指定しなければ,データベースに定義されているすべての属性がリストされます。

たとえば,generic サブシステムの属性設定をリストするには,次のコマンドを入力します。

# /sbin/sysconfigdb -l generic
generic:
        memberid = 0
        new_vers_high = 1441151880873377792
        new_vers_low = 15044
 
 

4.5.8.2    データベースへの属性の追加

/etc/sysconfigtab データベースにサブシステムの属性を追加するには,sysconfigdb -a コマンドを入力します。

たとえば,add_attrs という名前のファイルに格納されているエントリをデータベースに追加するには,次のコマンドを入力します。

# /sbin/sysconfigdb -a -f add_attrs generic

4.5.8.3    新しい定義の既存のデータベース・エントリへのマージ

属性の新しい定義を,/etc/sysconfigtab データベースの既存のエントリにマージするには,sysconfigdb -m コマンドを入力します。

sysconfigdb コマンドは,次のように,新しい定義を既存のデータベース・エントリにマージします。

たとえば,/etc/sysconfigtab データベースの generic サブシステムに次のエントリがあるとします。

generic:
   lockmode = 4
   dump-sp-threshold = 6000
 

このエントリを更新するために,次の情報を持つ merge_attrs という名前のファイルを作成します。

generic:
  lockmode = 0
  lockmaxcycles = 4294967295
 

merge_attrs ファイルの情報を /etc/sysconfigtab データベースにマージするには,次のコマンドを入力します。

# /sbin/sysconfigdb -m -f merge_attrs generic
 

コマンドが終了すると,データベース内の generic サブシステムのエントリは,次のようになります。

generic:
   lockmode = 0
   lockmaxcycles = 4294967295
   dump-sp-threshold = 6000
 

sysconfigdb -m コマンドを 1 度実行するだけで,/etc/sysconfigtab データベースに,複数のサブシステムの定義をマージできます。 たとえば,merge_attrs ファイルには,サブシステム lsmgeneric の属性に対する新しい定義を含めることができます。 merge_attrs ファイルに複数のサブシステム名を含めている場合は,次のように,コマンド行でサブシステム名を省略します。

# /sbin/sysconfigdb -m -f merge_attrs

4.5.8.4    データベース内の属性の更新

/etc/sysconfigtab データベースに既に存在するサブシステムを更新するには,/sbin/sysconfigdb -u コマンドを使用します。 たとえば,/etc/sysconfigtab ファイルで generic サブシステムが次のように定義されているとします。

generic:
   lockmode = 4
   dump-sp-threshold = 6000
 

このエントリを更新するために,次の情報を持つ update_attrs という名前のファイルを作成するものとします。

generic:
  lockmode = 0
  lockmaxcycles = 4294967295
 

属性を更新するには,次のように sysconfigdb コマンドを入力します。

# /sbin/sysconfigdb -u -f update_attrs generic
 

コマンドが終了すると,データベース内の generic サブシステムのエントリは,次のようになります。

generic:
   lockmode = 0
   lockmaxcycles = 4294967295

4.5.8.5    データベースからの属性定義の削除

/etc/sysconfigtab データベースから,選択した属性の定義を削除するには,/sbin/sysconfigdb -r コマンドを入力します。 -r オプションは,ファイルに保管されている属性定義をデータベースから削除することを指定します。

たとえば,generic サブシステムが,/etc/sysconfigtab データベースに次のように定義されているとします。

generic:
  lockmode = 4
  dump-sp-threshold = 6000
 

dump-sp-threshold 属性の定義を削除するには,最初に,次の情報を含む remove_attrs という名前のファイルを作成します。

generic:
   dump-sp-threshold = 6000
 

その後,次のコマンドを入力します。

# /sbin/sysconfigdb -r -f remove_attrs generic

コマンドが終了すると,データベース内の generic サブシステムのエントリは,次のようになります。

generic:
   lockmode = 4
 

/sbin/sysconfigdb コマンドは,同一のエントリだけを削除します。 つまり,同じ属性名と同じ値を持つエントリが削除されます。

sysconfigdb -r コマンドを 1 度実行するだけで,複数の属性の定義を削除することができます。 たとえば,remove_attrs ファイルには,lsm サブシステムと generic サブシステムから削除する属性定義を含めることができます。 remove_attrs ファイルに複数のサブシステムを含めている場合,次のように,コマンド行でサブシステム名を省略します。

# /sbin/sysconfigdb -r -f remove_attrs

4.5.8.6    データベースからのサブシステム・エントリの削除

/etc/sysconfigtab データベースからサブシステムの定義を削除するには,/sbin/sysconfigdb -d コマンドを入力します。

たとえば,generic サブシステム・エントリをデータベースから削除するには,次のコマンドを入力します。

# /sbin/sysconfigdb -d generic
 

次にそのサブシステムを構成するとき,generic サブシステムに省略時の値が渡されます。

4.6    静的システム構成

静的システム構成とは,新しいカーネルを作成,ブートするためのコマンドおよびファイルと,静的サブシステムを表します。 サブシステムは作成時にカーネルに直接リンクされているため,カーネルからは静的に認識されます。 静的にリンクされたカーネルを構築する手順は,カーネルを変更する理由によって異なります。

デバイス・ドライバを追加するためにカーネルを変更するときは,次の一般的な手順で行います。

カーネルを変更して,特定のカーネル・オプションをサポートするには,/usr/sbin/doconfig プログラムを実行し,処理中に表示されるメニューからカーネル・オプションを選択することによって,新しいカーネルを構築できます。 その後,システムをシャットダウンして,リブートします。

この方法で構築するカーネル・オプションを決定するには,/usr/sbin/kopt コマンドを入力します。 このコマンドは,カーネル・オプションのリストを表示して,カーネル・オプションを選択するように求めます。 オプションを選択せずに /usr/sbin/kopt コマンドを終了するときは,Return キーを押します。 /usr/sbin/doconfig プログラムを実行して,メニューからカーネル・オプションを追加する方法についての詳細は,4.6.2 項を参照してください。

別の理由で新しい静的カーネルを再構成する場合には,カーネルの再構築時に 1 つまたは複数のシステム・ファイルを変更する必要があります。 変更するシステム・ファイルは,カーネルに対して行う変更により異なります。

システム・ファイルを編集した後,/usr/sbin/doconfig プログラムを実行してカーネルを構築する方法については,4.6.3 項を参照してください。

デバイスを追加して構成する例については,『ハードウェア管理ガイド』を参照してください。

4.6.1    新しいデバイスをサポートするためのカーネルの構築

新しいデバイスをシステムに追加する場合,そのデバイス・インストレーションに SCP が含まれていなければ,ターゲット構成ファイルを編集して,オペレーティング・システムで新しいデバイスがサポートできるように定義する必要があります。 ターゲット構成ファイルにはデバイス定義キーワードをいれます。 オペレーティング・システムでは多くのデバイスをサポートしているため,ターゲット構成ファイルに追加するキーワードの決定が困難なこともあります。

次の手順は,ターゲット構成ファイルに追加するデバイス定義キーワードを決定する方法を示しています。 また,ターゲット構成ファイルの編集が終わった後,カーネルを再構築する方法も同時に示しています。 この手順では,追加する適当なキーワードがわかっていないことを前提としています。 場合によっては,ハードウェアやオペレーティング・システムの新しいバージョンに付属するマニュアルを参照することによって,適当なキーワードを判断できることがあります。 また,同じデバイスが接続されている別のシステム上に構成ファイルが存在している場合は,それによって判断できることもあります。 システムに追加するキーワードがわかっている場合は,4.6.3 項で説明している方法で,ユーティリティを使用し,そのキーワードをターゲット構成ファイルに追加して,カーネルを再構築します。

注意

この手順は危険なため,カスタマイズした /vmunix カーネル・ファイル,汎用カーネル /genvmunix,および現在の構成ファイルのそれぞれのコピーを取っていることを確認してください。 必要な場合には,これらのコピーを使用して,以前の構成に戻します。

システムのターゲット構成ファイルに追加するキーワードがわかっていない場合は,ハードウェアのマニュアルに従って,新しいデバイスをシステムに接続し,次の手順を実行します。

  1. この手順の後半で汎用カーネルをブートする必要があるので,/genvmunix ファイルが存在することを確認してください。 /genvmunix ファイルがシステム上に存在していない場合,または追加するデバイスを汎用カーネルが認識できない場合は,汎用カーネルをソフトウェア CD-ROM からコピーします。 CD-ROM 上の汎用カーネルの格納場所については,『インストレーション・ガイド』 を参照してください。

    まれに,汎用カーネルの再構築が必要になることがあります。 ただし,レイヤード・ソフトウェアまたはサードパーティ製のデバイス・ドライバがインストールされている場合には,汎用カーネルを再構築することはできません。 このような場合で,元の /genvmunix が壊れてしまったかまたは削除されてしまったにもかかわらず,ソフトウェア CD-ROM がない場合には,技術サポート部門に連絡して汎用カーネル /genvmunix のコピーを入手してください。

    レイヤード・アプリケーションがインストールされているかどうかを調べるには,/usr/sys/conf ディレクトリの .product.list ファイルの内容を確認します。

    汎用カーネルを再構築するときは,必須およびオプションのカーネル構築サブセットをすべてインストールしておく必要があります。 次のコマンドを実行すると,カーネル・サブセットのリストが表示されて,それぞれのカーネル・サブセットがインストールされているかどうかがわかります。

    # /usr/sbin/setld -i | grep Kernel Build
    

    すべてのカーネル・サブセットをインストールしたら,次のコマンドを入力します。

    # doconfig -c GENERIC
    

    -c オプションは,既存の構成ファイルを使用してカーネルを構築することを指定します。 この場合は,GENERIC 構成ファイルになります。 既存の構成ファイルからカーネルを構築する方法についての詳細は,4.6.3 項を参照してください。

    汎用カーネルが動作して新しいデバイスが認識されたら,ステップ 5 に進みます。 構築が終了したら,strip コマンドを使用して,カーネルのサイズを縮小することを検討してください。 詳細は, strip(1) を参照してください。

  2. root でログインするか,またはスーパユーザになって,省略時のディレクトリを /usr/sys/conf ディレクトリにします。

  3. 既存の /vmunix ファイルのコピーを保存します。 可能であれば,このファイルを,次のようにしてルート (/) ディレクトリに保存します。

    # cp /vmunix /vmunix.save
     
    

    ディスク・スペースに制約がある場合は,カーネル・ファイルをルート以外のファイル・システムに保存しても構いません。 たとえば,次のようにします。

    # cp /vmunix /usr/vmunix.save
    

  4. システムをシャットダウンして停止させます。 次のように入力します。

    # shutdown -h now
    

  5. コンソール・プロンプトで,汎用カーネル /genvmunix をブートします。 汎用カーネルでは,すべての有効なデバイスがサポートされているため,新しいデバイスをターゲット・カーネルに追加するときにブートすると,新しいデバイスが汎用カーネルによって認識されます。 汎用カーネルをブートするには,次のコマンドを入力します。

    >>> boot -fi "genvmunix"
    

  6. シングルユーザ・モードのプロンプトで,次のコマンドを実行して,ローカル・ファイル・システムの検査とマウントを行います。 ただし,Logical Storage Manager (LSM) を使用している場合は,その限りではありません。

    # /sbin/bcheckrc
    

    Logical Storage Manager (LSM) ソフトウェアを使用している場合は,次のコマンドを実行して,ローカル・ファイル・システムを検査して LSM を起動します。

    # /sbin/lsmbstartup
    

  7. sizer プログラムを実行して,システム・ハードウェアの大きさを判定し,新しいデバイスを含む新しいターゲット構成ファイルを作成します。

    # sizer -n MYSYS
    

    sizer -n コマンドは,ユーザのシステムに対する新しいターゲット構成ファイルを作成します。 この構成ファイルには,新しいデバイスに対応する適切なデバイス定義キーワードが含まれています。 このプロセスは,システムのインストレーション時のプロセスと似ています。 詳細については,4.3 節を参照してください。 sizer プログラムは,新しいターゲット構成ファイルを /tmp ディレクトリに格納します。

  8. sizer で作成した新しいターゲット構成ファイルを,システム上にある既存のターゲット構成ファイルと比較します。

    # diff /tmp/MYSYS MYSYS
    

    これらの 2 つのファイルの違いを検査して,新しいデバイス定義キーワードを探します。 maxusers オプションで省略時以外の値を指定して既存の構成ファイルをカスタマイズしている場合などは,他の箇所にも違いが出てくることがあります。

  9. 好みのテキスト・エディタを使用して,新しいデバイス定義キーワードを既存の構成ファイル (この場合 MYSYS) に追加します。 新しいキーワードを追加すると,既存の構成ファイルで新しいデバイスがサポートできるようになります。 なお,そのファイルに対して今まで行った変更が失われることはありません。

    注意

    構成ファイルに対して通信デバイスを追加または削除している場合には,/etc/inittab ファイルと /etc/securettys ファイルを編集して,新しい構成,つまり,/dev/ttynn デバイス特殊ファイルに一致させる必要があります。 詳細については, inittab(4) および securettys(4) を参照してください。

  10. 次の /usr/sbin/doconfig コマンドを実行して,新しいカーネルを構築します。

    # /usr/sbin/doconfig -c MYSYS
     
    *** KERNEL CONFIGURATION AND BUILD PROCEDURE ***
     
    Saving /usr/sys/conf/MYSYS as /usr/sys/conf/MYSYS.bck
     
     
    

    次のプロンプトが表示されたら,構成ファイルの編集は必要ないと答えます。

    Do you want to edit the configuration file? (y/n) [n]:n
     
    *** PERFORMING KERNEL BUILD ***
    .
    .
    .
    The new kernel is /usr/sys/MYSYS/vmunix
     
     
    

  11. カーネルの構成と構築プロセスがエラーなしで終了したら,新しい vmunix ファイルを /vmunix にコピーします。 MYSYS という名前のシステム上では,次のようなコマンドを入力します。

    # cp /usr/sys/MYSYS/vmunix /vmunix
     
    

    ファイルを移動する (mv) のではなく,必ずファイルをコピー (cp) して,コンテキスト依存シンボリック・リンク (CDSL) を維持します。 CDSL についての詳細は,第 6 章 を参照してください。

  12. 次のようにして,システムをリブートします。

    # /usr/sbin/shutdown -r now
    

新しい /vmunix ファイルのブートに失敗した場合には,この手順の最初に保存したカーネルを使用してブートします。 保存したカーネルを使用するときは,次の手順で行います。

  1. 次のように fsck -p コマンドを使用して,すべてのローカル・ファイル・システムを検査します。

    # fsck -p
    

  2. mount -u コマンドを使用して,root ファイル・システムを書き込み可能にします。 次のように入力してください。

    # mount -u /
    

  3. 必要であれば,/vmunix.save ファイルが保存されているファイル・システムをマウントします。 たとえば,/vmunix ファイルを /usr ファイル・システムにコピーしている場合は,次のコマンドを入力します。

    # mount /usr
    

  4. 保存したファイルのコピーをリストアします。 たとえば,動作しているカーネルを /vmunix.save ファイルに保存している場合,次のコマンドを入力します。

    # mv /vmunix.save /vmunix
    

  5. システムをシャットダウンしてリブートします。 次のように入力します。

    # shutdown -r now
    

システムが再度稼働を始めたら,ターゲット構成ファイルを必要に応じて変更し,ステップ 3 からの手順に従って,カーネルを再構築することができます。

4.6.2    選択したカーネル・オプションを追加するためのカーネルの構築

オプションを指定しないで /usr/sbin/doconfig プログラムを起動すると,メニューを使用してカーネルを変更することができます。 メニューを使用してカーネルを変更するには,次の手順に従ってください。

  1. root でログインするか,またはスーパユーザになって,省略時のディレクトリを /usr/sys/conf ディレクトリにします。

  2. 既存の /vmunix ファイルのコピーを保存します。 可能であれば,次のようにしてファイルをルート (/) ディレクトリに保存します。

    # cp /vmunix /vmunix.save
     
    

    ディスク・スペースに制約がある場合は,カーネル・ファイルをルート以外のファイル・システムに保存しても構いません。 たとえば,次のようにします。

    # cp /vmunix /usr/vmunix.save
     
    

  3. 次のように,オプションを指定しないで /usr/sbin/doconfig プログラムを実行します。

    # /usr/sbin/doconfig
     
    *** KERNEL CONFIGURATION AND BUILD PROCEDURE ***
     
    Saving /usr/sys/conf/MYSYS as /usr/sys/conf/MYSYS.bck
     
    

  4. 次のプロンプトに対して,構成ファイルの名前を入力します。

    Enter a name for the kernel configuration \
    file. [MYSYS]: MYSYS
    

    カーネル構成プロセスは,省略時の構成ファイル名を決定するときに,MYSYS のように,システム名を大文字に変換します。 たとえば,mysys という名前のシステムでは,省略時の構成ファイルは MYSYS という名前になります。

    指定した構成ファイル名が現在存在していなければ,/usr/sbin/doconfig プログラムによりそのファイル名でシステム構成ファイルが作成されます。 ステップ 10 のカーネル・オプションを選択して,この処理を継続してください。

  5. 指定した構成ファイル名が存在する場合,次のプロンプトが表示されるので,ファイルを重ね書きするよう応答します。

    A configuration file with the name MYSYS already exists.
    Do you want to replace it? (y/n) [n]: y
     
    

  6. 次のようなメニューが表示されるので,その中からカーネル・オプションを選択します。

    *** KERNEL OPTION SELECTION ***
    -----------------------------------------------------------
     
      Selection  Kernel Option
    -----------------------------------------------------------
         1     System V Devices
         2     NTP V3 Kernel Phase Lock Loop (NTP_TIME)
         3     Kernel Breakpoint Debugger (KDEBUG)
         4     Packetfilter driver (PACKETFILTER)
         5     Point-to-Point Protocol (PPP)
         6     STREAMS pckt module (PCKT)
         7     Data Link Bridge (DLPI V2.0 Service Class 1)
         8     X/Open® Transport Interface (XTISO, TIMOD, TIRDWR)
         9     ISO 9660 Compact Disc File System (CDFS)
         10    Audit Subsystem
         11    Alpha CPU performance/profiler (/dev/pfcntr)
         12    ACL Subsystem
         13    Logical Storage Manager (LSM)
         14    ATM UNI 3.0/3.1 ILMI (ATMILMI3X)
         15    IP Switching over ATM (ATMIFMP)
         16    LAN Emulation over ATM (LANE)
         17     Classical IP over ATM (ATMIP)
         18    ATM UNI 3.0/3.1 Signalling for SVCs (UNI3X)
         19    Asynchronous Transfer Mode (ATM)
         20    All of the above
         21    None of the above
         22    Help
         23    Display all options again
    -----------------------------------------------------------
     
    Enter the selection number for each kernel option you want.
    For example, 1 3 [18]:
     
     
    

  7. 次のプロンプトが表示されたら,構成ファイルの編集が必要かどうか応答します。

    Do you want to edit the configuration file? (y/n) [n]:
     
    

    メニューのサブシステムをカーネルに追加する以外の変更がなければ,構成ファイルを編集する必要はありません。

    構成ファイルの編集を選択した場合,/usr/sbin/doconfig プログラムが,EDITOR 環境変数で指定されているエディタを起動します。

    構成ファイルの詳細については,4.7 節を参照してください。

    構成ファイルの編集が終了すると,/usr/sbin/doconfig プログラムは新しいカーネルを構築します。

  8. カーネルの構成と構築プロセスがエラーなしで終了したら,新しい vmunix ファイルを /vmunix に移動します。 MYSYS という名前のシステム上では,次のコマンドを入力します。

    # mv /usr/sys/MYSYS/vmunix /vmunix
     
    

  9. 次のようにして,システムをリブートします。

    # /usr/sbin/shutdown -r now
     
    

新しい /vmunix ファイルのブートに失敗した場合には,この手順の最初に保存したカーネルを使用してブートします。 保存したカーネルを使用するときは,次の手順に従ってください。

  1. 次のように fsck -p コマンドを使用して,すべてのローカル・ファイル・システムを検査します。

    # fsck -p
    

  2. mount -u コマンドを使用して,root ファイル・システムを書き込み可能にします。 次のように入力してください。

    # mount -u /
    

  3. 必要であれば,/vmunix.save ファイルが保存されているファイル・システムをマウントします。 たとえば,/vmunix ファイルを /usr ファイル・システムにコピーしている場合は,次のコマンドを入力します。

    # mount /usr
    

  4. 保存したコピーをリストアします。 たとえば,動作しているカーネルを /vmunix.save ファイルに保存している場合は,次のコマンドを入力します。

    # mv /vmunix.save /vmunix
    

  5. システムをシャットダウンしてリブートします。 次のように入力します。

    # shutdown -r now
     
    

システムが再度稼働を始めたら,ターゲット構成ファイルを必要に応じて変更し,ステップ 3 からの手順に従って,カーネルを再構築することができます。

4.6.3    システム・ファイルを変更した後のカーネルの構築

ユーザまたは SCP が,ターゲット構成ファイルのようなシステム・ファイルを変更した場合は,/usr/sbin/doconfig -c コマンドを使用して,カーネルを再構築できます。 -c オプションを使用して既存の構成ファイルを指定すると,/usr/sbin/doconfig プログラムがそのファイルを使用してカーネルを構築します。 既存の構成ファイルを使用して新しいカーネルを構築するときは,次の手順に従ってください。

  1. root でログインするか,またはスーパユーザになって,省略時のディレクトリを /usr/sys/conf ディレクトリにします。

  2. 既存の /vmunix ファイルのコピーを保存します。 可能であれば,次のようにしてファイルをルート (/) ディレクトリに保存します。

    # cp /vmunix /vmunix.save
    

    ディスク・スペースに制約がある場合は,カーネル・ファイルをルート以外のファイル・システムに保存しても構いません。 たとえば次のようにします。

    # cp /vmunix /usr/vmunix.save
    

  3. -c オプションでターゲット構成ファイル名を指定して,/usr/sbin/doconfig プログラムを実行します。 たとえば MYSYS という名前のシステム上では,次のコマンドを入力します。

    # /usr/sbin/doconfig -c MYSYS 
     
    *** KERNEL CONFIGURATION AND BUILD PROCEDURE ***
     
    Saving /usr/sys/conf/MYSYS as /usr/sys/conf/MYSYS.bck
    

  4. 次のプロンプトが表示されたら,構成ファイルの編集が必要かどうかを応答します。

    Do you want to edit the configuration file? (y/n) [n]:
     
    

    この手順を始める前に構成ファイルを変更している場合は,構成ファイルの編集が必要ないことを応答します。

    構成ファイルの編集を選択した場合は,/usr/sbin/doconfig プログラムによって,EDITOR 環境変数で指定されているエディタが起動されます。

    構成ファイルの詳細については,4.7 節を参照してください。

    構成ファイルの編集が終了すると,/usr/sbin/doconfig プログラムは新しいカーネルを構築します。

  5. カーネルの構成と構築がエラーなしで終了すると,新しい vmunix ファイルを /vmunix に移動します。 MYSYS という名前のシステム上では,次のコマンドを入力します。

    # mv /usr/sys/MYSYS/vmunix /vmunix
    

  6. 次のようにして,システムをリブートします。

    # /usr/sbin/shutdown -r now
    

新しい /vmunix ファイルのブートに失敗した場合には,この手順の最初に保存したカーネルを使用してブートします。 保存したカーネルを使用するときは,次の手順に従ってください。

  1. 次のように fsck -p コマンドを使用して,すべてのローカル・ファイル・システムを検査します。

    # fsck -p
    

  2. mount -u コマンドを使用して,root ファイル・システムを書き込み可能にします。 次のように入力してください。

    # mount -u /
    

  3. 必要であれば,/vmunix.save ファイルが保存されているファイル・システムをマウントします。 たとえば,/vmunix ファイルを /usr ファイル・システムにコピーしている場合,次のコマンドを入力します。

    # mount /usr
    

  4. 保存したコピーをリストアします。 たとえば,動作しているカーネルを /vmunix.save ファイルに保存している場合,次のコマンドを入力します。

    # mv /vmunix.save /vmunix
    

  5. システムをシャットダウンしてリブートします。 次のように入力します。

    # shutdown -r now
    

システムが再度稼働を始めたら,ターゲット構成ファイルを必要に応じて変更し,ステップ 3 からの手順に従って,カーネルを再構築することができます。

4.7    構成ファイル

作業カーネルを作成し,実行するためには,/usr/sys ディレクトリの下に特定のディレクトリが存在していることが必要です。 図 4-1 に,システム構成ファイルのディレクトリ構造を示します。 点線は,他社の静的サブシステムのためのオプションのディレクトリおよびファイルを示しています。

図 4-1:  構成ファイルのディレクトリの階層構造

図 4-1 に示すように,/usr/sys/conf ディレクトリには,すべてを包含する汎用カーネルとターゲット・マシンのカーネルの両方のカーネル構成を定義するためのファイルが含まれています。 これらのファイルは,カーネル構成の静的な部分について表現しています。 システム・ファイルを処理してカーネルを再構成する場合には,主に次の 5 つのファイルを使用します。

以降の各項で,これらのファイルについて詳しく説明します。

4.7.1    /usr/sys/conf の構成ファイル

/usr/sys/conf ディレクトリには,2 つの重要なシステム構成ファイルである,ターゲット構成ファイルとGENERIC 構成ファイルが含まれています。

4.7.1.1    ターゲット構成ファイル

ターゲット構成ファイル /usr/sys/conf/NAME は,システムがカーネルに組み込む構成要素を定義するテキスト・ファイルです。 慣例により,パス名の NAME の部分には,システム名を大文字で指定します。 たとえば,システム名が MYSYS の場合には,/usr/sys/conf/MYSYS というファイル名になります。 ターゲット構成ファイルは,システムのインストレーション中に,sizer プログラムにより各システムに対して作成されます。 次のようなキーワード定義の変更を行いたい場合には,ターゲット構成ファイルを変更します。

4.7.1.2    GENERIC 構成ファイル

/usr/sys/conf/GENERIC 構成ファイルは,汎用カーネルを記述する構成ファイルです。 汎用カーネルは,すべての有効なデバイスをサポートしているため,新しいデバイスをシステムに追加するときに使用すると便利です。 汎用カーネルは,ターゲット・カーネルが何らかの理由で破損した場合に備えて,バックアップ・カーネルとして使用することもできます。

/genvmunix ファイルには汎用カーネルが含まれているため,このファイルは削除しないでください。 誤って汎用カーネルを削除した場合は,doconfig -c GENERIC コマンドを使用して,再構築することができます。 既存の構成ファイルを使用してカーネルを構築する方法については,4.6.3 項を参照してください。

注意

/usr/sys/conf/GENERIC ファイルは削除しないでください。

4.7.2    ターゲット構成ファイルの機能拡張

/usr/sys/conf ディレクトリには,ターゲット構成ファイルの拡張を記述する 2 つのオプションの構成ファイルが含まれています。 これらのファイルは,/usr/sys/conf/.product.list ファイルと /usr/sys/conf/NAME ファイルです。 これらのファイルには静的カーネル・サブシステムに関する情報が格納されるため,カーネル・レイヤード・プロダクトと呼ばれることがあります。

静的サブシステムをインストールする場合,通常,その SCP は /usr/sys/conf/.product.list ファイルを編集して,そのサブシステムのエントリを追加します。 SCP が終了した後,/usr/sbin/doconfig プログラムを実行して,新しいサブシステムをカーネル内に構成してください。

/usr/sbin/doconfig プログラムは NAME.list ファイルを作成します。 NAME 変数は,ターゲット構成ファイルと同じで,慣例により,大文字のシステム名になります。 たとえば,MYSYS という名前のシステムの NAME.list ファイルは,MYSYS.list になります。

他社のレイヤード・プロダクトのために (たとえば,構築中のカーネルからレイヤード・プロダクトを削除するために) システムを変更する必要がある場合には,NAME.list ファイルに対して必要な変更を行ってから新しいカーネルを構築します。

NAME.list ファイルの各エントリは,コロン (:) で区切られた 6 つのフィールドから構成されています。 次の例は NAME.list ファイルの一部であり,/usr/sys/opt/ESB100 ディレクトリにロード済みの静的カーネル・サブシステムのエントリを示しています。

/usr/sys/opt/ESB100:UNXDASH100:920310100739:DASH Systems:controlsys:100
     [1]               [2]        [3]          [4]        [5]     [6]
 

このエントリのフィールドには,次のような情報が含まれています。

  1. 最初のフィールドには,入力データに対する拡張データをシステム構成ツールが探すディレクトリの絶対パス名を指定します。 このロケーションには次のようなファイルを含むことができます。

    [例に戻る]

  2. 2 番目のフィールドには,setld サブセット識別子を指定します。 [例に戻る]

  3. 3 番目のフィールドには,製品が配布された日付および時間を指定します。 [例に戻る]

  4. 4 番目のフィールドには,そのサブシステムを提供した会社名を指定します。 [例に戻る]

  5. 5 番目のフィールドには,製品名を指定します。 [例に戻る]

  6. 6 番目のフィールドには,setld の 3 桁の製品バージョン・コードを指定します。 [例に戻る]

NAME.list ファイルの行エントリの順番は,エントリが処理される順番に影響するため注意が必要です。

/usr/sbin/doconfig プログラムは,.product.list ファイルが存在する場合,そのファイルをコピーして NAME.list ファイルを作成します。 /usr/sbin/doconfig -c コマンドを使用する場合には,/usr/sbin/doconfig は既存の NAME.list ファイルを使用します。 新しいカーネル・レイヤード・プロダクトがインストールされた場合など,.product.list ファイルが変更されている状態で -c オプションを指定する場合には,NAME.list ファイルを削除するか,/usr/sbin/doconfig を起動する前にこのファイルを手作業で編集し,.product.list ファイルの変更点を NAME.list ファイルに反映する必要があります。

.product.list ファイルをコピーすることによって NAME.list ファイルを作成することもできます。 カーネルに組み込みたくない行は,NAME.list ファイルを編集して削除するか,またはその行の先頭に番号記号 (#) を記述してコメント・アウトすることができます。

注意

.product.list ファイルを編集してはなりません。

NAME.list および .product.list ファイルについての詳細は,デバイス・ドライバのマニュアルを参照してください。

4.7.3    param.c ファイル

param.c ファイルには,いくつかのシステム・パラメータの省略時の値が含まれています。 これらのパラメータは,マニュアルまたは技術サポート部門で指示されない限り,変更しないでください。

属性値を読み取って使用する優先順位は,次のとおりです。

  1. 属性の実行時値

  2. /etc/sysconfigtab ファイルに記述されている値

  3. /usr/sys/conf/SYSTEM_NAME ファイルに記述されている値

  4. /usr/sys/conf/param.c ファイルに記述されている値

param.c ファイルのパラメータがターゲット構成ファイルにも存在している場合があります。 この場合には,構成ファイルに指定されている値が param.c ファイルに指定されている値より優先されます。 したがって,param.c ファイルのシステム・パラメータ値を変更する場合には,ターゲット構成ファイルの対応するエントリを確実に削除するようにしてください。

4.7.4    システム構成ファイル・エントリ

システム構成ファイルには,次のキーワード定義が含まれています。

このファイル内の構成オプションを手動でチューニングしたり,カスタマイズしたりしないでください。 カーネルの構成とチューニングについての詳細は,『システムの構成とチューニング』 を参照してください。