この章では,インストレーション中およびインストレーション後のカーネル構成と,動的構成および静的構成について説明します。 この章で説明する情報は,以下のとおりです。
カーネル構成の概要 (4.1 節)
カーネル・サブシステムで使用可能なすべての属性を説明した各リファレンス・ページなどの,関連ドキュメントの参照先 (4.2 節)
インストレーション時のカーネル構成 (4.3 節)
カーネルを構成する時期の決定 (4.4 節)
カーネル・チューナのグラフィカル・ユーザ・インタフェース
/usr/bin/X11/dxkerneltuner
などの,動的システム構成 (4.5 節)
静的システム構成 (4.6 節)
構成ファイル (4.7 節)
オペレーティング・システムのカーネルは,メモリ常駐の実行可能イメージであり,ハードウェア割り込み,メモリ管理,プロセス間通信,プロセス・スケジューリングなど,すべてのシステム・サービスを処理するとともに,他の作業をオペレーティング・システム上で実行可能にします。 これらのコア・サービスをサポートするコードに加えて,カーネルには数多くのサブシステムが含まれています。
サブシステムはカーネル・モジュールであり,コア・カーネル・サービスの範囲を超えてカーネルを拡張します。 ファイル・システムやネットワーク・プロトコル・ファミリ,物理ドライバおよび擬似デバイス・ドライバはすべて,サポートされているサブシステムの例です。 サブシステムの中には,カーネルで必須のものあれば,オプションのものもあります。 カーネルの構成は,これらオプションのサブシステムを追加したり,削除することによって行います。 この構成は,インストレーションのときに行うこともできますし,インストレーション後にシステムを変更する必要が生じた場合に行うこともできます。
この他のカーネルの構成方法は,カーネル内に格納されている値を調整することです。 たとえば,カーネル内の値には,ディスク・アクセスを速くするように調整できるものがあります。 値を変更して,ディスク・アクセスを最適化すると,システムの性能を改善することができますが,他の性能に影響を及ぼすことがあります。 システムのチューニングおよび属性値の影響についての詳細は,『システムの構成とチューニング』 に説明しています。
カーネルの構成には,動的メソッドと静的メソッドの 2 つがあります。
コマンドを使用して,カーネルの実行中に,カーネルを構成します。
システム・ファイルを変更して,カーネルを再構築します。
システム・ファイルを変更してカーネルを再構築する処理は,多くの場合,難しいため,可能であれば動的カーネル構成を使用してください。
すべての変更が動的に行えるとは限りません。
また,動的な変更は,システムのリブート後も持続するわけではありません。
4.2 関連ドキュメントとユーティリティ
次に,システム属性,構成ツールとユーティリティについての情報,および構成オプションの詳細な参照情報を示します。
以下の項で説明する資料の形式は,マニュアル,
リファレンス・ページ,およびオンライン・ヘルプです。
4.2.1 マニュアル
Tru64 UNIX オペレーティング・システムのドキュメント・セットにある以下のマニュアルでは,システム構成が説明されています。
『インストレーション・ガイド』 および 『インストレーション・ガイド -- 上級ユーザ編』 では,インストレーション時のカーネルの初期構成について説明しています。
『ネットワーク管理ガイド:接続編』と『ネットワーク管理ガイド:サービス編』では,ネットワークの構成について説明しています。
『システムの構成とチューニング』 では,システムの構成とチューニングについて詳細に説明しています。
ここで示すリファレンス・ページでは,システム属性とユーティリティについて説明しています。
sys_attrs
(5)
システム属性を説明するとともに,streams
や
socket
など,各カーネル・サブシステムについて説明しているいくつかの
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.3 インストレーション時のシステム構成
オペレーティング・システムをインストールすると,インストレーション・プログラムは最初にシステム・ディスクのルート・パーティションにカーネル・イメージをコピーします。
汎用カーネルとも呼ばれるこのカーネル・イメージは,オペレーティング・システムの現在のバージョンで使用できるすべてのプロセッサおよびハードウェア・オプションをサポートしています。
このように,どのような構成であっても,システムをブートできることをインストレーション・プログラムは保証します。
汎用カーネルのファイルは,/genvmunix
です。
選択したすべてのサブセットがディスクに書き込まれ,その確認が終わると,インストレーション処理の最後に,インストレーション・プログラムは
/usr/sbin/doconfig
プログラムを呼び出します。
呼び出された
/usr/sbin/doconfig
プログラムは
sizer
という別のプログラムを呼び出します。
sizer
プログラムは,システムにインストールされているハードウェアおよびソフトウェア・オプションを判断して,システム固有のターゲット構成ファイルを作成します。
この構成ファイルは,カーネルにリンクされるハードウェアおよびソフトウェア・サポートを制御するシステム・ファイルです。
その後,このターゲット構成ファイルをもとに,/usr/sbin/doconfig
プログラムがカスタマイズした
/vmunix
カーネルを構築します。
このカーネルの構築では,すべてのサブシステム属性に対してその省略値が使用されます。
インストレーション時にシステムにコピーされる汎用カーネルとは異なり,ターゲット・カーネルは,使用するシステムに合わせてカスタマイズされています。 システムで使用できるハードウェアおよびソフトウェア・オプションだけがコンパイルされて,ターゲット・カーネル内に組み込まれます。 このため,ターゲット・カーネルは汎用カーネルよりも小さく,かつ効率的なものになります。
インストレーションが終了すると,システムの構築方法により,ターゲット・カーネルは,メモリまたはシステム・ディスクのルート・パーティションのいずれかに存在することになります (カーネルの異なる構築方法については,4.6 節を参照)。
コンソール・ブート変数を適切に設定していれば,システムは自動的にターゲット・カーネルをブートします。
コンソール・ブート変数の設定方法と使用方法については第 2 章を参照してください。
4.4 カーネルを再構成する時期と方法の決定
インストレーション・プロシージャによりターゲット・カーネルが構築されて起動されると,次のような状況が起こらないかぎり,そのカーネルを変更せずに使用することができます。
新しいデバイスのインストールまたは Asynchronous Transfer Mode (ATM) のような追加オプションの使用など,カーネルに新しいサブシステムを追加するとき
デバイスや Logical Storage Manager (LSM) 機能の削除など,カーネルからサブシステムを削除するとき
システムの性能が良くない (集中型のアプリケーションを実行しているなど) ため,カーネルの属性値を省略時の値から変更するとき。 このような集中型のアプリケーションには,インターネット Web サーバやデータベースなどがあります。 システムをチューニングする前に,カーネル属性を変更したときの影響を十分に理解しておく必要があります。 この影響を理解することで,使用できないカーネルを作成したり,システムの性能を低下させることがなくなります。
たとえば,通常のシステム監視の 1 つの操作として,sys_check
ユーティリティを実行します。
sys_check
がシステムの使用状況の分析をもとに生成したレポートによって,カーネル属性の新しい値または追加サブシステムのローディングが提示されることもあります。
しかし,属性値の変更は,『システムの構成とチューニング』 でシステム性能以外に及ぼす影響を調べてから行ってください。
ほとんどのデバイスはシステムによって自動的に認識され,ブート時にカーネルへ組み込まれます。 デバイスの追加についての詳細は,『ハードウェア管理ガイド』を参照してください。 ただし,サードパーティ製のディスク・ドライブ,古いタイプのドライブやスキャナや PCMCIA カードなどのデバイスは手動で追加する必要があります。 これらのデバイスを追加する場合は,動的であれ静的であれ,カーネルを再構成する必要があります。 カーネルの再構成に使用するメソッドは,サブシステムまたはサブシステム属性によって提供されるサポートにより異なります。
envmon
環境モニタリング・サブシステムなどのカーネル・サブシステムは,動的にロードすることができます。
つまり,カーネルを再構築しなくても,カーネルに対してサブシステムの追加や削除を行うことができます。
また,動的にロード可能なサブシステムのほとんどは,その属性値を動的に構成することができます。
したがって,カーネルを再構築しなくても,これらのサブシステムの性能を調整することができます。
属性が動的に構成可能かどうかを調べる場合は,sysconfig
で
-m
を使い,次のように動的
識別子を検索します。
# sysconfig -m | grep dynamic lat: dynamic envmon: dynamic hwautoconfig: dynamic
カーネルに対してこれらのサブシステムの追加や削除を行ったり,属性の値を構成したりする場合には,4.5 節で説明する手順に従ってください。
必須サブシステムなど,一部のサブシステムは動的にロードできません。 ただし,これらのサブシステムでは,属性の値を動的に構成することができます。 その場合,これらのサブシステムの属性値は,カーネルを再構築しなくても構成できます。
次のメソッドを使用して,属性を動的に構成できます。
sysconfig
-r
コマンドを使用して,実行中のカーネルの属性値を構成する。
この実行時構成をサポートしているのは,数個のカーネル・サブシステムだけです。
グラフィカル・ユーザ・インタフェースである,カーネル・チューナ (dxkerneltuner
) を使用する。
このユーティリティは,sysconfig
とほぼ同じ表示機能および設定機能を持っています。
このユーティリティは,コマンド行で次のように起動します。
# /usr/bin/X11/dxkerneltuner
または,CDE フロント・パネルでアプリケーション・マネージャをオープンし,「モニタリング/チューニング」フォルダを選択して,フォルダが開いたら,「カーネル・チューナ」アイコンを選択します。
カーネル・チューナの使用についての詳細は,
dxkerneltuner
(8)
カーネル・チューナ GUI は,使用可能なカーネル・サブシステムをすべてメイン・ウィンドウに表示します。 サブシステムを選択して,その属性とともに,各属性の現在値,最大値,および最小値を表示させます。 変更可能な属性がある場合は,その属性値がテキストの入力フィールドに表示されます。 このフィールドに新しい属性値を入力します。
動的サブシステム・データベース
/etc/sysconfigtab
内の属性値を構成する。
新しい属性値でカーネルを実行したい場合は,新しいカーネルを指定してシステムをリブートします。
これらのサブシステムの属性を構成する場合には,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
カーネルがサブシステムを認識することができても,使用できるとは限りません。
使用できるサブシステムを判断するには,/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
サブシステムが動的にロード可能であるか,または静的なサブシステムであるかを判断するには,/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
サブシステムやシステム全体の性能または動作を改善するために,サブシステム属性の値を変更することがあります。
これらの変更には,sysconfig
,sysconfigdb
またはカーネル・チューナ GUI を使用します。
また,クラッシュしたシステムの回復などの特定の状況では,デバッガ
dbx
を使用して,クラッシュしたカーネル内の属性を調べて変更する必要があります。
この手順の詳細については,『Kernel Debugging』 を参照してください。
実行時に属性を変更すると,その変更は,システムが実行している間だけ持続します。
システムをシャットダウンしてリブートすると,変更は失われます。
サブシステム属性の変更がリブート後も持続するようにするには,4.5.8 項で説明するように,その属性の変更値を
/etc/sysconfigtab
データベースに格納する必要があります。
変更した属性値の持続性は,使用したコマンドまたはユーティリティのオプションによって異なります。
ガイドラインを次に示します。
リブートした後も変更を持続させるには,コマンド行で
sysconfigdb
(または
dbx
) を使用します。
または,カーネル・チューナ GUI を使用して,変更を「ブート時の値」フィールドに保存します。
リブート後にその変更が失われる一時的な変更の場合は,コマンド行で
sysconfig -r
を使用します。
または,カーネル・チューナ・グラフィカル・ユーザ・インタフェースを使用して,現在の属性値を変更します。
注意
以前のオペレーティング・システムのリリースでは,
/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
属性で実行できるオペレーションを示しています。
次に,このフィールドに表示される値を示します。
サブシステムが最初にロードされるときに,属性を変更できる。
サブシステムが動作しているときに,属性を変更できる。
属性を照会できる。
属性の値を実行時に変更するには,/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 | -u
subsystem-name]
/sbin/sysconfigdb
-toutfile
[-f infile
-m | -r
subsystem-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
/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
ファイルには,サブシステム
lsm
と
generic
の属性に対する新しい定義を含めることができます。
merge_attrs
ファイルに複数のサブシステム名を含めている場合は,次のように,コマンド行でサブシステム名を省略します。
# /sbin/sysconfigdb -m -f merge_attrs
/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
/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 静的システム構成
静的システム構成とは,新しいカーネルを作成,ブートするためのコマンドおよびファイルと,静的サブシステムを表します。 サブシステムは作成時にカーネルに直接リンクされているため,カーネルからは静的に認識されます。 静的にリンクされたカーネルを構築する手順は,カーネルを変更する理由によって異なります。
デバイス・ドライバを追加するためにカーネルを変更するときは,次の一般的な手順で行います。
デバイス・ドライバをインストールする。
必要であれば,ターゲット構成ファイルを編集する。
場合によっては,サブセット・コントロール・プログラム (SCP) がデバイス・ドライバによって提供されています。 その場合は,SCPがインストレーション・プロシージャで実行され,必要なシステム構成ファイルにドライバを登録します。 この場合,ターゲット構成ファイルを編集する必要はありません。
新しいカーネルを構築する。
デバイス・ドライバに SCP が含まれている場合は,4.6.3 項で説明しているように,/usr/sbin/doconfig
プログラムを実行して新しいカーネルを構築します。
新しいカーネルを構築する前にターゲット構成ファイルを編集する必要がある場合は,4.6.1 項
を参照してください。
システムをシャットダウンして,リブートする。
カーネルを変更して,特定のカーネル・オプションをサポートするには,/usr/sbin/doconfig
プログラムを実行し,処理中に表示されるメニューからカーネル・オプションを選択することによって,新しいカーネルを構築できます。
その後,システムをシャットダウンして,リブートします。
この方法で構築するカーネル・オプションを決定するには,/usr/sbin/kopt
コマンドを入力します。
このコマンドは,カーネル・オプションのリストを表示して,カーネル・オプションを選択するように求めます。
オプションを選択せずに
/usr/sbin/kopt
コマンドを終了するときは,Return キーを押します。
/usr/sbin/doconfig
プログラムを実行して,メニューからカーネル・オプションを追加する方法についての詳細は,4.6.2 項を参照してください。
別の理由で新しい静的カーネルを再構成する場合には,カーネルの再構築時に 1 つまたは複数のシステム・ファイルを変更する必要があります。 変更するシステム・ファイルは,カーネルに対して行う変更により異なります。
たとえば,構築するカーネルの定義や,デバイスの定義,あるいは擬似デバイスの定義を行うキーワードなどを変更するには,ターゲット構成ファイルを変更します。 また,このファイルを編集してシステム・パラメータの値を変更することもできます。 ターゲット構成ファイルの内容についての詳細は,4.7 節を参照してください。
特定の静的サブシステムをカーネルから削除するには,/usr/sys/conf
ディレクトリ内のファイルからそのエントリを削除 (またはコメント・アウト) します。
このファイルについての詳細は,4.7.2 項を参照してください。
システム・ファイルを編集した後,/usr/sbin/doconfig
プログラムを実行してカーネルを構築する方法については,4.6.3 項を参照してください。
デバイスを追加して構成する例については,『ハードウェア管理ガイド』を参照してください。
4.6.1 新しいデバイスをサポートするためのカーネルの構築
新しいデバイスをシステムに追加する場合,そのデバイス・インストレーションに SCP が含まれていなければ,ターゲット構成ファイルを編集して,オペレーティング・システムで新しいデバイスがサポートできるように定義する必要があります。 ターゲット構成ファイルにはデバイス定義キーワードをいれます。 オペレーティング・システムでは多くのデバイスをサポートしているため,ターゲット構成ファイルに追加するキーワードの決定が困難なこともあります。
次の手順は,ターゲット構成ファイルに追加するデバイス定義キーワードを決定する方法を示しています。 また,ターゲット構成ファイルの編集が終わった後,カーネルを再構築する方法も同時に示しています。 この手順では,追加する適当なキーワードがわかっていないことを前提としています。 場合によっては,ハードウェアやオペレーティング・システムの新しいバージョンに付属するマニュアルを参照することによって,適当なキーワードを判断できることがあります。 また,同じデバイスが接続されている別のシステム上に構成ファイルが存在している場合は,それによって判断できることもあります。 システムに追加するキーワードがわかっている場合は,4.6.3 項で説明している方法で,ユーティリティを使用し,そのキーワードをターゲット構成ファイルに追加して,カーネルを再構築します。
注意
この手順は危険なため,カスタマイズした
/vmunix
カーネル・ファイル,汎用カーネル/genvmunix
,および現在の構成ファイルのそれぞれのコピーを取っていることを確認してください。 必要な場合には,これらのコピーを使用して,以前の構成に戻します。
システムのターゲット構成ファイルに追加するキーワードがわかっていない場合は,ハードウェアのマニュアルに従って,新しいデバイスをシステムに接続し,次の手順を実行します。
この手順の後半で汎用カーネルをブートする必要があるので,/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)
root でログインするか,またはスーパユーザになって,省略時のディレクトリを
/usr/sys/conf
ディレクトリにします。
既存の
/vmunix
ファイルのコピーを保存します。
可能であれば,このファイルを,次のようにしてルート (/
) ディレクトリに保存します。
# cp /vmunix /vmunix.save
ディスク・スペースに制約がある場合は,カーネル・ファイルをルート以外のファイル・システムに保存しても構いません。 たとえば,次のようにします。
# cp /vmunix /usr/vmunix.save
システムをシャットダウンして停止させます。 次のように入力します。
# shutdown -h now
コンソール・プロンプトで,汎用カーネル
/genvmunix
をブートします。
汎用カーネルでは,すべての有効なデバイスがサポートされているため,新しいデバイスをターゲット・カーネルに追加するときにブートすると,新しいデバイスが汎用カーネルによって認識されます。
汎用カーネルをブートするには,次のコマンドを入力します。
>>> boot -fi "genvmunix"
シングルユーザ・モードのプロンプトで,次のコマンドを実行して,ローカル・ファイル・システムの検査とマウントを行います。 ただし,Logical Storage Manager (LSM) を使用している場合は,その限りではありません。
# /sbin/bcheckrc
Logical Storage Manager (LSM) ソフトウェアを使用している場合は,次のコマンドを実行して,ローカル・ファイル・システムを検査して LSM を起動します。
# /sbin/lsmbstartup
sizer
プログラムを実行して,システム・ハードウェアの大きさを判定し,新しいデバイスを含む新しいターゲット構成ファイルを作成します。
# sizer -n MYSYS
sizer
-n
コマンドは,ユーザのシステムに対する新しいターゲット構成ファイルを作成します。
この構成ファイルには,新しいデバイスに対応する適切なデバイス定義キーワードが含まれています。
このプロセスは,システムのインストレーション時のプロセスと似ています。
詳細については,4.3 節を参照してください。
sizer
プログラムは,新しいターゲット構成ファイルを
/tmp
ディレクトリに格納します。
sizer
で作成した新しいターゲット構成ファイルを,システム上にある既存のターゲット構成ファイルと比較します。
# diff /tmp/MYSYS MYSYS
これらの 2 つのファイルの違いを検査して,新しいデバイス定義キーワードを探します。
maxusers
オプションで省略時以外の値を指定して既存の構成ファイルをカスタマイズしている場合などは,他の箇所にも違いが出てくることがあります。
好みのテキスト・エディタを使用して,新しいデバイス定義キーワードを既存の構成ファイル (この場合 MYSYS) に追加します。 新しいキーワードを追加すると,既存の構成ファイルで新しいデバイスがサポートできるようになります。 なお,そのファイルに対して今まで行った変更が失われることはありません。
注意
構成ファイルに対して通信デバイスを追加または削除している場合には,
/etc/inittab
ファイルと/etc/securettys
ファイルを編集して,新しい構成,つまり,/dev/ttynn
デバイス特殊ファイルに一致させる必要があります。 詳細については,および inittab
(4)を参照してください。 securettys
(4)
次の
/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
カーネルの構成と構築プロセスがエラーなしで終了したら,新しい
vmunix
ファイルを
/vmunix
にコピーします。
MYSYS
という名前のシステム上では,次のようなコマンドを入力します。
# cp /usr/sys/MYSYS/vmunix /vmunix
ファイルを移動する (mv
) のではなく,必ずファイルをコピー (cp
) して,コンテキスト依存シンボリック・リンク (CDSL) を維持します。
CDSL についての詳細は,第 6 章
を参照してください。
次のようにして,システムをリブートします。
# /usr/sbin/shutdown -r now
新しい
/vmunix
ファイルのブートに失敗した場合には,この手順の最初に保存したカーネルを使用してブートします。
保存したカーネルを使用するときは,次の手順で行います。
次のように
fsck -p
コマンドを使用して,すべてのローカル・ファイル・システムを検査します。
# fsck -p
mount
-u
コマンドを使用して,root
ファイル・システムを書き込み可能にします。
次のように入力してください。
# mount -u /
必要であれば,/vmunix.save
ファイルが保存されているファイル・システムをマウントします。
たとえば,/vmunix
ファイルを
/usr
ファイル・システムにコピーしている場合は,次のコマンドを入力します。
# mount /usr
保存したファイルのコピーをリストアします。
たとえば,動作しているカーネルを
/vmunix.save
ファイルに保存している場合,次のコマンドを入力します。
# mv /vmunix.save /vmunix
システムをシャットダウンしてリブートします。 次のように入力します。
# shutdown -r now
システムが再度稼働を始めたら,ターゲット構成ファイルを必要に応じて変更し,ステップ 3 からの手順に従って,カーネルを再構築することができます。
4.6.2 選択したカーネル・オプションを追加するためのカーネルの構築
オプションを指定しないで
/usr/sbin/doconfig
プログラムを起動すると,メニューを使用してカーネルを変更することができます。
メニューを使用してカーネルを変更するには,次の手順に従ってください。
root でログインするか,またはスーパユーザになって,省略時のディレクトリを
/usr/sys/conf
ディレクトリにします。
既存の
/vmunix
ファイルのコピーを保存します。
可能であれば,次のようにしてファイルをルート (/
) ディレクトリに保存します。
# cp /vmunix /vmunix.save
ディスク・スペースに制約がある場合は,カーネル・ファイルをルート以外のファイル・システムに保存しても構いません。 たとえば,次のようにします。
# cp /vmunix /usr/vmunix.save
次のように,オプションを指定しないで
/usr/sbin/doconfig
プログラムを実行します。
# /usr/sbin/doconfig *** KERNEL CONFIGURATION AND BUILD PROCEDURE *** Saving /usr/sys/conf/MYSYS as /usr/sys/conf/MYSYS.bck
次のプロンプトに対して,構成ファイルの名前を入力します。
Enter a name for the kernel configuration \ file. [MYSYS]: MYSYS
カーネル構成プロセスは,省略時の構成ファイル名を決定するときに,MYSYS のように,システム名を大文字に変換します。
たとえば,mysys
という名前のシステムでは,省略時の構成ファイルは
MYSYS
という名前になります。
指定した構成ファイル名が現在存在していなければ,/usr/sbin/doconfig
プログラムによりそのファイル名でシステム構成ファイルが作成されます。
ステップ 10 のカーネル・オプションを選択して,この処理を継続してください。
指定した構成ファイル名が存在する場合,次のプロンプトが表示されるので,ファイルを重ね書きするよう応答します。
A configuration file with the name MYSYS already exists. Do you want to replace it? (y/n) [n]: y
次のようなメニューが表示されるので,その中からカーネル・オプションを選択します。
*** 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]:
次のプロンプトが表示されたら,構成ファイルの編集が必要かどうか応答します。
Do you want to edit the configuration file? (y/n) [n]:
メニューのサブシステムをカーネルに追加する以外の変更がなければ,構成ファイルを編集する必要はありません。
構成ファイルの編集を選択した場合,/usr/sbin/doconfig
プログラムが,EDITOR
環境変数で指定されているエディタを起動します。
構成ファイルの詳細については,4.7 節を参照してください。
構成ファイルの編集が終了すると,/usr/sbin/doconfig
プログラムは新しいカーネルを構築します。
カーネルの構成と構築プロセスがエラーなしで終了したら,新しい
vmunix
ファイルを
/vmunix
に移動します。
MYSYS
という名前のシステム上では,次のコマンドを入力します。
# mv /usr/sys/MYSYS/vmunix /vmunix
次のようにして,システムをリブートします。
# /usr/sbin/shutdown -r now
新しい
/vmunix
ファイルのブートに失敗した場合には,この手順の最初に保存したカーネルを使用してブートします。
保存したカーネルを使用するときは,次の手順に従ってください。
次のように
fsck
-p
コマンドを使用して,すべてのローカル・ファイル・システムを検査します。
# fsck -p
mount
-u
コマンドを使用して,root
ファイル・システムを書き込み可能にします。
次のように入力してください。
# mount -u /
必要であれば,/vmunix.save
ファイルが保存されているファイル・システムをマウントします。
たとえば,/vmunix
ファイルを
/usr
ファイル・システムにコピーしている場合は,次のコマンドを入力します。
# mount /usr
保存したコピーをリストアします。
たとえば,動作しているカーネルを
/vmunix.save
ファイルに保存している場合は,次のコマンドを入力します。
# mv /vmunix.save /vmunix
システムをシャットダウンしてリブートします。 次のように入力します。
# shutdown -r now
システムが再度稼働を始めたら,ターゲット構成ファイルを必要に応じて変更し,ステップ 3 からの手順に従って,カーネルを再構築することができます。
4.6.3 システム・ファイルを変更した後のカーネルの構築
ユーザまたは SCP が,ターゲット構成ファイルのようなシステム・ファイルを変更した場合は,/usr/sbin/doconfig
-c
コマンドを使用して,カーネルを再構築できます。
-c
オプションを使用して既存の構成ファイルを指定すると,/usr/sbin/doconfig
プログラムがそのファイルを使用してカーネルを構築します。
既存の構成ファイルを使用して新しいカーネルを構築するときは,次の手順に従ってください。
root でログインするか,またはスーパユーザになって,省略時のディレクトリを
/usr/sys/conf
ディレクトリにします。
既存の
/vmunix
ファイルのコピーを保存します。
可能であれば,次のようにしてファイルをルート (/
) ディレクトリに保存します。
# cp /vmunix /vmunix.save
ディスク・スペースに制約がある場合は,カーネル・ファイルをルート以外のファイル・システムに保存しても構いません。 たとえば次のようにします。
# cp /vmunix /usr/vmunix.save
-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
次のプロンプトが表示されたら,構成ファイルの編集が必要かどうかを応答します。
Do you want to edit the configuration file? (y/n) [n]:
この手順を始める前に構成ファイルを変更している場合は,構成ファイルの編集が必要ないことを応答します。
構成ファイルの編集を選択した場合は,/usr/sbin/doconfig
プログラムによって,EDITOR
環境変数で指定されているエディタが起動されます。
構成ファイルの詳細については,4.7 節を参照してください。
構成ファイルの編集が終了すると,/usr/sbin/doconfig
プログラムは新しいカーネルを構築します。
カーネルの構成と構築がエラーなしで終了すると,新しい
vmunix
ファイルを
/vmunix
に移動します。
MYSYS
という名前のシステム上では,次のコマンドを入力します。
# mv /usr/sys/MYSYS/vmunix /vmunix
次のようにして,システムをリブートします。
# /usr/sbin/shutdown -r now
新しい
/vmunix
ファイルのブートに失敗した場合には,この手順の最初に保存したカーネルを使用してブートします。
保存したカーネルを使用するときは,次の手順に従ってください。
次のように
fsck -p
コマンドを使用して,すべてのローカル・ファイル・システムを検査します。
# fsck -p
mount
-u
コマンドを使用して,root
ファイル・システムを書き込み可能にします。
次のように入力してください。
# mount -u /
必要であれば,/vmunix.save
ファイルが保存されているファイル・システムをマウントします。
たとえば,/vmunix
ファイルを
/usr
ファイル・システムにコピーしている場合,次のコマンドを入力します。
# mount /usr
保存したコピーをリストアします。
たとえば,動作しているカーネルを
/vmunix.save
ファイルに保存している場合,次のコマンドを入力します。
# mv /vmunix.save /vmunix
システムをシャットダウンしてリブートします。 次のように入力します。
# shutdown -r now
システムが再度稼働を始めたら,ターゲット構成ファイルを必要に応じて変更し,ステップ 3 からの手順に従って,カーネルを再構築することができます。
4.7 構成ファイル
作業カーネルを作成し,実行するためには,/usr/sys
ディレクトリの下に特定のディレクトリが存在していることが必要です。
図 4-1
に,システム構成ファイルのディレクトリ構造を示します。
点線は,他社の静的サブシステムのためのオプションのディレクトリおよびファイルを示しています。
図 4-1: 構成ファイルのディレクトリの階層構造
図 4-1
に示すように,/usr/sys/conf
ディレクトリには,すべてを包含する汎用カーネルとターゲット・マシンのカーネルの両方のカーネル構成を定義するためのファイルが含まれています。
これらのファイルは,カーネル構成の静的な部分について表現しています。
システム・ファイルを処理してカーネルを再構成する場合には,主に次の 5 つのファイルを使用します。
/usr/sys/conf/MYSYS
。
ここで,MYSYS
はシステム名です。
/usr/sys/conf/GENERIC
/usr/sys/conf/.product.list
/usr/sys/conf/NAME
.list
/usr/sys/conf/param.c
以降の各項で,これらのファイルについて詳しく説明します。
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
プログラムにより各システムに対して作成されます。
次のようなキーワード定義の変更を行いたい場合には,ターゲット構成ファイルを変更します。
複数のシステムを管理する場合,それらのシステムで同じように定義されるグローバル・キーワード
特定のシステムで構築するカーネルを記述するシステム定義キーワード
特定のシステムに接続するデバイスを記述するデバイス定義キーワード
シェル・コマンド・サブプロセスをカーネル構成中に実行できるようにする
callout
キーワード定義
ソフトウェアをコンパイルしてシステム内に組み込むことを指定する
options
キーワード定義
カーネルの構築時に,コンパイラ,アセンブラ,およびリンカに引き渡される
makeoptions
キーワード定義
システム上の擬似デバイスを記述する
pseudodevice
キーワード定義
/usr/sys/conf/GENERIC
構成ファイルは,汎用カーネルを記述する構成ファイルです。
汎用カーネルは,すべての有効なデバイスをサポートしているため,新しいデバイスをシステムに追加するときに使用すると便利です。
汎用カーネルは,ターゲット・カーネルが何らかの理由で破損した場合に備えて,バックアップ・カーネルとして使用することもできます。
/genvmunix
ファイルには汎用カーネルが含まれているため,このファイルは削除しないでください。
誤って汎用カーネルを削除した場合は,doconfig
-c
GENERIC
コマンドを使用して,再構築することができます。
既存の構成ファイルを使用してカーネルを構築する方法については,4.6.3 項を参照してください。
注意
/usr/sys/conf/GENERIC
ファイルは削除しないでください。
/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]
このエントリのフィールドには,次のような情報が含まれています。
最初のフィールドには,入力データに対する拡張データをシステム構成ツールが探すディレクトリの絶対パス名を指定します。 このロケーションには次のようなファイルを含むことができます。
製品固有の構成ファイル
config.file
ファイル・フラグメント (その製品に関するキーワードを含む)
files
ファイル・フラグメント (その製品のソース・コードの位置,製品がカーネルにロードされる時期,ソース・コードとバイナリ・コードのどちらが提供されるかについての情報を含む)
stanza.static
ファイル (静的ドライバの主デバイス番号要件および名前,デバイス特殊ファイルの副デバイス番号についての情報を含む)
オブジェクト・ファイル
ソース・コード・ファイル
2 番目のフィールドには,setld
サブセット識別子を指定します。
[例に戻る]
3 番目のフィールドには,製品が配布された日付および時間を指定します。 [例に戻る]
4 番目のフィールドには,そのサブシステムを提供した会社名を指定します。 [例に戻る]
5 番目のフィールドには,製品名を指定します。 [例に戻る]
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
ファイルには,いくつかのシステム・パラメータの省略時の値が含まれています。
これらのパラメータは,マニュアルまたは技術サポート部門で指示されない限り,変更しないでください。
属性値を読み取って使用する優先順位は,次のとおりです。
属性の実行時値
/etc/sysconfigtab
ファイルに記述されている値
/usr/sys/conf/
SYSTEM_NAME
ファイルに記述されている値
/usr/sys/conf/param.c
ファイルに記述されている値
param.c
ファイルのパラメータがターゲット構成ファイルにも存在している場合があります。
この場合には,構成ファイルに指定されている値が
param.c
ファイルに指定されている値より優先されます。
したがって,param.c
ファイルのシステム・パラメータ値を変更する場合には,ターゲット構成ファイルの対応するエントリを確実に削除するようにしてください。
4.7.4 システム構成ファイル・エントリ
システム構成ファイルには,次のキーワード定義が含まれています。
グローバル・キーワード定義
システム定義キーワード
デバイス定義キーワード
callout
キーワード定義
options
キーワード定義
makeoptions
キーワード定義
pseudo-device
キーワード定義
このファイル内の構成オプションを手動でチューニングしたり,カスタマイズしたりしないでください。 カーネルの構成とチューニングについての詳細は,『システムの構成とチューニング』 を参照してください。