Linuxシステムのブートには、さまざまなコンポーネントが関係しています。ハードウェアはBIOSにより初期化され、BIOSはブートローダでカーネルを起動します。それ以後は、オペレーティングシステムがinit
とランレベルを含むブートプロセスを完全にコントロールします。ランレベルのコンセプトにより、日常使用のセットアップを保持できるほか、システム上でタスクを保守することもできます。
Linuxのブートプロセスは、いくつかの段階から成り、それぞれ別のコンポーネントが実行しています。次のリストに、主要なすべてのコンポーネントが関与するブートプロセスと機能を簡潔にまとめています。
BIOS: コンピュータの電源を入れた後、BIOSが画面とキーボードを初期化し、メインメモリをテストします。この段階まで、コンピュータは大容量ストレージメディアにアクセスしません。続いて、現在の日付、時刻、および最も重要な周辺機器に関する情報が、CMOS値からロードされます。最初のハードディスクとそのジオメトリが認識されると、システム制御がBIOSからブートローダに移ります。BIOSがネットワークブートをサポートしている場合は、ブートローダを提供するブートサーバを設定することもできます。x86システムの場合、PXEブートを利用する必要があります。他のアーキテクチャの場合は、通常BOOTPプロトコルを使ってブートローダを取得します。
ブートローダ: 最初のハードディスクの先頭の 512バイト物理データセクタがメインメモリにロードされ、このセクタの先頭に常駐するブートローダが起動します。ブートローダによって実行されたコマンドがブートプロセスの残りの部分を確定します。したがって、最初のハードディスクの先頭 512バイトのことをマスタブートレコード(MBR)といいます。次に、ブートローダは、実際のオペレーティングシステム(この場合はLinuxカーネル)に制御を渡します。GRUB(Linuxのブートローダ)の詳細については、第11章 「ブートローダGRUB」を参照してください。ネットワークブートを行う場合、BIOSがブートローダとしての役割を果たします。BIOSは、ブートサーバから起動するためのイメージを取得し、システムを起動します。この作業にローカルのハードディスクからは完全に独立した処理として行われます。
カーネルとinitramfs
:
システムに制御を渡すために、ブートローダは、カーネルとRAMベースの初期ファイルシステム(initramfs
)をメモリにロードします。カーネルは、initramfs
のコンテンツを直接使用できます。initramfs
には、実際のルートファイルシステムのマウント処理を行うinit
と呼ばれる小さな実行可能ファイルが含まれています。大容量ストレージにアクセスするために特別なハードウェアドライバが必要な場合、それらはinitramfs
内になければなりません。initramfs
の詳細については、 10.1.1項 「initramfs
」を参照してください。システムにローカルハードディスクがない場合、initramfsがルートファイルシステムをカーネルに提供する必要があります。
そのためには、iSCSIやSANなどのネットワークブロックデバイスを利用しますが、NFSをルートデバイスとして使うことも可能です。
initramfs上のinit
:
このプログラムは、適切なルートファイルシステムをマウントするために必要なすべてのアクションを実行します。たとえば、必要なファイルシステムにカーネル機能を提供したり、大容量ストレージコントローラ用のデバイスドライバに
udev
を提供します。ルートファイルシステムが見つかると、エラーをチェックしてからマウントします。これが正常に実行されれば、initramfs
はクリアされ、ルートファイルシステムでinit
プログラムが実行されます。init
の詳細については、 10.1.2項 「initramfs
上のinit」を参照してください。udev
の詳細については、第15章 「udevによる動的カーネルデバイス管理
」を参照してください。
init
:
init
は、いくつかの異なるレベルでシステムの実際のブートを処理し、さまざまな機能を提供しますinit
については、10.2項 「init
プロセス」で説明されています。
initramfs
#
initramfs
は、カーネルがRAMディスクにロードできる、小さなcpioアーカイブです。また、実際のルートファイルシステムがマウントされる前にプログラムを実行できるようにする最低限のLinux環境を提供します。この最小Linux環境は、BIOSルーチンによってメモリにロードされ、十分なメモリを必要とする以外、特定のハードウェア要件はありません。initramfs
は、必ず、init
という名前の実行可能ファイルを提供する必要があります。このファイルは、ルートファイルシステム上で実際のinit
プログラムを実行することによりブートプロセスを進行させます。
ルートファイルシステムをマウントして実際のオペレーティングシステムを起動する前に、カーネルには、ルートファイルシステムが配置されているデバイスにアクセスするための対応ドライバが必要です。こうしたドライバには、特定のハードディスク用の特殊なドライバや、ネットワークファイルシステムにアクセスするためのネットワークドライバが含まれる場合もあります。ルートファイルシステムに必要なモジュールは、initramfs
上のinit
によってロードされます。モジュールをロードしたら、udev
によって必要なデバイスがinitramfs
に提供されます。ブートプロセス後半で、ルートファイルシステムが変更された後、デバイスを再生成する必要があります。これには、udevtrigger
コマンドでboot.udev
を実行します。
インストール済みのシステムのハードウェア(たとえば、ハードディスク)を変更する必要が生じ、このハードウェアはブート時にカーネル内に存在する他のドライバを必要とする場合には、initramfs
を更新する必要があります。これは、initramfsの前身であるinit
の場合と同様に、mkinitrd
を呼び出して行うことができます。引数を付けずに mkinitrd
を呼び出すと、initramfs
が作成されます。mkinitrd
-R
を呼び出すと、init
が作成されます。SUSE® Linux Enterprise Serverでは、ロードするモジュールは/etc/sysconfig/kernel
内の変数INITRD_MODULES
で指定されます。インストール後、この変数は自動的に正しい値に設定されます。モジュールは、INITRD_MODULES
に指定されている順序で正確にロードされます。このことは、デバイスファイルの/dev/sd?の設定の正確性に依存している場合にのみ重要になります。
ただし、現在のシステムで/dev/disk/
ディレクトリ下にあるデバイスファイルを使用することもできます。これらのファイルは、by-id
、by-path
、およびby-uuid
などのサブディレクトリに分類されており、常に同じディスクを表します。これは、該当するマウントオプションの指定により、インストール時にも可能です。
initramfs
または init
の更新
ブートローダは、カーネルと同じようにinitramfs
またはinit
をロードします。GRUBはブート時に正しいファイルのディレクトリを検索するので、initramfs
またはinit
を更新した後にGRUBを再インストールする必要はありません。
initramfs
上のinit #
initramfs
上のinit
の主な目的は、実際のルートファイルシステムのマウントとアクセスの準備をすることです。システム設定に応じて、init
は次のタスクを実行します。
ハードウェア設定によっては、使用するコンピュータのハードウェアコンポーネント(ハードディスクになる最も重要なコンポーネント)にアクセスするために特殊なドライバが必要になる場合があります。最終的なルートファイルシステムにアクセスするには、カーネルが適切なファイルシステムドライバをロードする必要があります。
ロードされるモジュールごとに、カーネルはデバイスイベントを生成します。udev
は、これらのイベントを処理し、RAMファイルシステム上で必要なブロック特殊ファイルを/dev
内に生成します。これらの特殊ファイルがないと、ファイルシステムや他のデバイスにアクセスできません。
RAIDまたはLVMの下でルートファイルシステムを保持するようにシステムを設定した場合、init
はLVMまたはRAIDをセットアップして、後でルートファイルシステムにアクセスできるようにします。第15章 「高度なディスクセットアップ」でRAIDとLVMに関する情報を参照してください。
ネットワークマウントしたルートファイルシステム(NFSを介してマウント)を使用するようにシステムを設定した場合、init
は適切なネットワークドライバがロードされ、ドライバがルートファイルシステムにアクセスできるように設定されていることを確認する必要があります。
ファイルシステムがiSCSIやSANなどのネットワークブロックデバイスに常駐している場合は、ストレージサーバへの接続もinitramfs
によって設定されます。
初期ブート時にインストールプロセスの一環としてinit
が呼び出される場合、そのタスクは上記で説明したタスクと異なります。
インストールプロセスを開始すると、使用するコンピュータでは、YaSTインストーラでインストールカーネルと特殊なinit
がインストールメディアからロードされます。RAMファイルシステムで実行されるインストーラには、インストールメディアにアクセスしてオペレーティングシステムをインストールするために、そのメディアの場所に関する情報が必要になります。
で説明しているように、ブートプロセスは、ほとんどのハードウェア設定で使用できる最小限のドライバセットで開始されます。initは、ハードウェア設定に適したドライバセットを確定する、初期ハードウェアスキャンプロセスを開始します。10.1.1項 「initramfs
」ブートプロセスに必要なモジュール名は、
/etc/sysconfig/kernel
ディレクトリ中のINITRD_MODULES
に書き込まれます。これらの名前は、システムをブートするために必要なカスタムinitramfs
を生成するために使用されます。ブートではなくcoldplugで必要なモジュールは、/etc/sysconfig/hardware/hwconfig-*
ディレクトリに書き込まれます。ブートプロセス時には、このディレクトリ中の設定ファイルに記述されているすべてのデバイスが初期化されます。
ハードウェアが適切に認識されると、適切なドライバがただちにロードされ、udev
は特殊なデバイスファイルを作成し、init
は実際のYaSTインストーラでインストールシステムを起動するか、またはレスキューシステムを起動します。
最後に、init
はYaSTを起動し、これによってパッケージのインストールとシステム設定が開始されます。
init
プロセス #
init
プログラムは、プロセスIDが1のプロセスです。このプロセスでは、要求された方法でシステムの初期化を行います。init
は直接カーネルから起動され、プロセスを強制終了するsignal 9で終了することはできません。他のすべてのプログラムは、init
またはその子プロセスの1つによって直接起動されます。
init
は、/etc/inittab
ファイルで一元的に設定されます。ランレベルはこのファイルで定義されます(10.2.1項 「ランレベル」を参照)。このファイルはまた、各ランレベルで利用可能なサービスとデーモンを指定しています。etc/inittab
のエントリに応じて、init
はいくつかのスクリプトを実行します。デフォルトでは、ブート後に最初に開始するスクリプトは、/etc/init.d/boot
です。システムの初期設定が完了すると、/etc/init.d/rc
スクリプトで、ランレベルがデフォルトのランレベルに変更されます。わかりやすくするために、これらのinitスクリプトと呼ばれるスクリプトはすべて、ディレクトリ/etc/init.d
にあります(10.2.2項 「initスクリプト」を参照)。
システムの起動からシャットダウンまでのプロセス全体がinit
によって保持されます。この見地から、カーネルは、他のプログラムからの要求に従って、他のすべてのプロセスを保持し、CPU時間とハードウェアアクセスを調整するバックグラウンドプロセスと考えることができます。
Linuxでは、ランレベルはシステムの起動方法および稼動中のシステムで使用可能なサービスを定義します。ブート後、システムは/etc/inittab
のinitdefault
行での定義に従って起動します。通常のランレベルは3
または5
です。参照先表10.1「ランレベルの種類」.別の方法として、ランレベルをブート時に(たとえばブートプロンプトにランレベル番号を追加する)指定することもできます。パラメータは、カーネル自体が直接評価するのもの以外はすべて、init
に渡されます。ランレベル3にブートするには、ブートプロンプトに単一の番号3を追加します。
ランレベル |
説明 |
---|---|
0 |
システム停止 |
Sまたは1 |
シングルユーザモード |
2 |
リモートネットワーク(NFSなど)なしのローカルマルチユーザモード |
3 |
ネットワークを使用するフルマルチユーザモード |
4 |
。管理者が設定しない限り使用されないランレベル。 |
5 |
ネットワークとXディスプレイマネージャのKDM、GDM、またはXDMを使用するフルマルチユーザモード |
6 |
システムの再起動 |
システムでNFSを介して/usr
などのパーティションをマウントする場合は、ランレベル 2を使用しないでください。NFSサービスは、ランレベル2(リモートネットワークのないローカルマルチユーザモード)では使用できないため、プログラムファイルまたはライブラリがない場合、システムは予想しない動作をする可能性があります。
システムの稼動中にランレベルを変更するには、telinit
の後に、ランレベルに対応する番号を引数として入力します。これができるのは、システム管理者だけです。次のリストは、ランレベルに関連した最も重要なコマンドの概要です。
telinit 1
またはshutdown now
システムはシングルユーザモードに入ります。このモードは、システムメンテナンスや管理タスクで使用します。
telinit 3
(ネットワークを含む)すべての重要なプログラムとサービスが起動します。グラフィック環境はありませんが、一般ユーザは、システムにログインして作業することができます。
telinit 5
グラフィック環境は有効になります。通常、XDM、GDMまたはKDMなどのディスプレイマネージャが起動します。自動ログインが有効な場合、ローカルユーザは事前に選択されているウィンドウマネージャ(GNOME、KDEまたはその他のウィンドウマネージャ)にログインします。
telinit 0
またはshutdown -h now
システムは停止します。
telinit 6
またはshutdown -r now
システムは停止した後、再起動します。
ランレベル5
は、すべてのSUSE Linux Enterprise Server標準インストールにおけるデフォルトのランレベルです。ユーザは、グラフィカルインタフェースでログインするように求められます。デフォルトユーザの場合は自動的にログインされます。
/etc/inittab
のエラーのため、システムブートが失敗することがある
/etc/inittab
が破損した場合、システムが正しく起動しないことがあります。そのため、/etc/inittab
を編集する場合は細心の注意を払ってください。また、コンピュータを再起動する前には、常にtelinit
q
コマンドを使用して、init
に/etc/inittab
を再読み込みさせてください。
ランレベルを変更するときには、一般に2つの操作が行われます。1つは、現在のランレベルの停止スクリプトが起動し、現在のランレベルに必要なプログラムを終了します。次に、新しいランレベルの起動スクリプトが起動します。ここで、ほとんどの場合、プログラムがいくつか起動します。たとえば、ランレベルを3から5に変更する場合、次の操作が行われます。
管理者(root
)がtelinit
5
を入力して、init
にランレベルを変更するように要求します。
initは現在のランレベル(
runlevel
)を調べ、新しいランレベルをパラメータとして/etc/init.d/rc
を起動する必要があるかどうか判断します。
ここでrc
は、現在のランレベルの停止スクリプトであって、新しいランレベルの起動スクリプトがないものを呼び出します。この例では、元のランレベルが3なので、/etc/init.d/rc 3.d
の中のK
で始まるすべてのスクリプトが対象となります。K
の次の番号は、stop
パラメータを使ってスクリプトを実行する順番を示します(検討する必要がある依存関係が存在するため)。
最後に、新しいランレベルの起動スクリプトを起動します。この例では/etc/init.d/rc5.d
の中のS
で始まるスクリプトがそれにあたります。この場合も、S
の次の番号が、スクリプトの実行順序を表します。
現在のランレベルと同じランレベルに変更する場合、init
は/etc/inittab
で変更部分だけをチェックし、適切な手順を開始します。たとえば、別のインタフェースでgetty
を起動します。telinit qコマンドを使用しても同じ操作を実行できます。
/etc/init.d内に、2種類のスクリプトがあります。
init
によって直接実行されるスクリプト
これは、ブートプロセスの実行中、または即座のシステムシャットダウンを行ったとき(電源障害またはユーザがCtrl–Alt–Delキーを押した場合)にのみ適用されます。IBM System zシステムの場合、ブートプロセスの実行中または即時のシステムシャットダウンを行ったとき(電源障害または「シグナルによる停止」)にのみ適用されます。「」こうしたスクリプトの実行は、/etc/inittab
で定義されます。
init
によって間接的に実行されるスクリプト
これらは、ランレベルの変更時に実行され、関連スクリプトの正しい順序を保証するマスタスクリプト/etc/init.d/rc
を常に呼び出します。
すべてのスクリプトは、/etc/init.d
にあります。ブート時に実行されるスクリプトは、/etc/init.d/boot.d
からのシンボリックリンク経由で呼び出されます。ランレベルを変更するスクリプトもサブディレクトリの1つからのシンボリックリンク(/etc/init.d/rc0.d
から/etc/init.d/rc6.d
へ)経由で呼び出されます。これは単にわかりやすくして、複数のランレベルで使用されている場合にスクリプトが重複するのを防ぐためです。すべてのスクリプトは、起動スクリプトとしても停止スクリプトとしても実行できるので、これらのスクリプトはパラメータのstart
とstop
を認識する必要があります。また、これらのスクリプトはrestart
、reload
、force-reload
、およびstatus
のオプションも認識します。これらのオプションについては、表10.2「init
スクリプトのオプション」で説明します。init
によって直接実行されるスクリプトには、これらのリンクはありません。こうしたスクリプトは、必要なときにランレベルとは無関係に実行されます。
init
スクリプトのオプション #
オプション |
説明 |
---|---|
|
サービスを起動します。 |
|
サービスを停止します。 |
|
サービスが実行中の場合は、停止して再起動します。実行中でない場合は、起動します。 |
|
サービスの停止や再起動をせずに、設定を再ロードします。 |
|
サービスが設定の再ロードをサポートする場合は、それを実行します。サポートしない場合は、 |
|
サービスの現在のステータスを表示します。 |
ランレベル固有のサブディレクトリにあるリンクによって、スクリプトを複数のランレベルに関連付けることができます。パッケージのインストールまたはアンインストール時に、プログラムinsservを使用して(またはこのプログラムを呼び出す/usr/lib/lsb/install_initd
スクリプトを使用して)、このようなリンクを追加または削除することができます。詳細については、「 man 8 insserv
」を参照してください。
これらの設定は、YaSTモジュールにより変更されることもあります。コマンドラインからステータスを確認するには、chkconfig
ツールを使用します。このツールについては、man 8 chkconfig
のマニュアルページで説明されています。
次に、最初または最後に起動するブートスクリプトおよび停止スクリプトの概略を示すとともに、保守スクリプトについて説明します。
boot
init
を直接使用してシステムの起動時に実行されます。選択したランレベルから独立で、一度だけ実行されます。これによって /proc
ファイルシステムと/dev/pts
ファイルシステムがマウントされ、blogd
(ブートログ出力デーモン)が有効化されます。システムがアップデートまたはインストール後初めてブートされる場合、初期システム設定が起動します。
blogd
デーモンは、boot
およびrc
によって最初に起動されるサービスです。このサービスは、これらのスクリプトにより開始されたアクション(たとえば特殊なブロックファイルを利用可能にするなど、多数のサブスクリプトの実行)が完了すると停止します。blogdは、
/var
が読み書き可能でマウントされている場合にのみ、画面出力をログファイル/var/log/boot.msg
に出力します。そうでない場合は、/var
が利用できるようになるまで、blogdがすべての画面データをバッファします。 blogd
の詳細情報を取得するには、man 8 blogd
を使用します。
boot
スクリプトは、/etc/init.d/boot.d
の中のS
で始まる名前のスクリプトもすべて起動します。そこで、ファイルシステムがチェックされ、必要に応じてループデバイスが設定されます。加えて、システム時間が設定されます。ファイルシステムの自動チェックや修復中にエラーが発生した場合、システム管理者はルートパスワードを入力して介入することができます。最後に実行されるスクリプトは、boot.local
です。
boot.local
ブート時、ランレベルへの移行前に実行する追加コマンドを入力します。これは、DOSシステムのAUTOEXEC.BAT
に相当します。
halt
このスクリプトは、ランレベル0または6への移行時にのみ実行されます。init
またはinit
のいずれかとして実行されます。システムがシャットダウンするかリブートするかは、halt
の呼び出され方に依存します。シャットダウン時に特別なコマンドが必要な場合は、それらのコマンドをinit
スクリプトに追加してください。
rc
このスクリプトは、現在のランレベルの適切な停止スクリプトと、新しく選択したランレベルの起動スクリプトを呼び出します。/etc/init.d/boot
スクリプトと同様、このスクリプトは、目的のランレベルをパラメータとして使用して、/etc/inittab
から呼び出します。
独自のスクリプトを作成して、先に説明したスキーマに容易に組み込むことができます。カスタムスクリプトの形式設定、名前付け、および構成方法については、LSBの仕様と、init
、init.d
、chkconfig
、およびinsserv
のマニュアルページを参照してください。加えて、startproc
およびkillproc
のマニュアルページも参照してください。
init
スクリプトに問題があると、コンピュータがハングアップする場合があります。このようなスクリプトは最大限の注意を払って編集し、可能であれば、マルチユーザ環境で徹底的にテストします。init
スクリプトの有益な情報については、10.2.1項 「ランレベル」を参照してください。
所定のプログラムまたはサービス用のカスタムinit
スクリプトを作成する場合は、テンプレートとしてファイル/etc/init.d/skeleton
を使用します。このファイルのコピーを別名で保存し、必要に応じて、関連のプログラムやファイル名、パス、その他の詳細を編集します。場合によっては、init
プロシージャで正しいアクションが開始されるように、独自の改良をスクリプトに加える必要があります。
最初に記載されているINIT INFO
ブロックはスクリプトの必須部分で、次のように編集する必要があります。詳細については、例10.1「最低限のINIT INFOブロック」を参照してください。
### BEGIN INIT INFO # Provides: FOO # Required-Start: $syslog $remote_fs # Required-Stop: $syslog $remote_fs # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Description: Start FOO to allow XY and provide YZ ### END INIT INFO
INFOブロックの最初の行では、
Provides:の後に、このinitスクリプトで制御するプログラムまたはサービスの名前を指定します。
Required-Start:
行とRequired-Stop:
行では、サービス自体が停止しても実行中の状態を維持する必要のあるすべてのサービスを指定します。この情報は後で、ランレベルディレクトリに表示するスクリプト名に対し、番号を生成するために使用します。Default-Start:
およびDefault-Stop:
の後に、サービスが自動的に起動または停止する際のランレベルを指定します。最後に、Description:
の下に、対象のサービスについての簡単な説明を記載します。
ランレベルディレクトリ(/etc/init.d/rc?.d/
)から/etc/init.d/
内の対応するスクリプトへのリンクを作成するには、コマンドinsserv
new-script-nameを入力します。insserv
プログラムは、INIT INFO
ヘッダを評価して、ランレベルディレクトリ(/etc/init.d/rc?.d/
)内の起動スクリプトと停止スクリプトに必要なリンクを作成します。このプログラムはまた、必要な番号をこれらのリンクの名前に取り込むことによって、ランレベルごとに正しい起動、停止の順序を管理します。グラフィックツールを使用してリンクを作成する場合は、10.2.3項 「YaSTでのシステムサービス(ランレベル)の設定」の説明に従って、YaSTのランレベルエディタを使用します。
/etc/init.d/にすでに存在するスクリプトを既存のランレベルスキーマに統合する場合は、はじめにinsservを使用するか、YaSTのランレベルエディタで対応するサービスを有効にすることにより、ランレベルディレクトリにリンクを作成します。
変更内容は、次回のブート時に適用され、新しいサービスが自動的に起動します。
作成したリンクは手動で設定しないでください。INFOブロック内に誤りがある場合は、後で他のサービスに対して
insservを実行すると問題が生じます。
手動で追加されたサービスは、このスクリプトに対するinsserv
の次回実行時に削除されます。
› › の順に選択すると、利用可能なすべてのサービスの概要と、各サービスの現在のステータス(有効か無効か)が表示されます。モジュールを と のどちらで使用するかを決定します。ほとんどの場合、デフォルトの で十分です。左の列にはサービスの名前、中央の列にはその現在のステータス、右の列には簡単な説明が表示されます。ウィンドウの下部には、選択したサービスについての詳細な説明が表示されます。サービスを有効にするには、表でそれを選択し、 を選択します。同じ手順で、サービスを無効にできます。
サービスの起動または停止時のランレベルを詳細に制御する場合、またはデフォルトのランレベルを変更する場合は、最初に「initdefault」 (システムのブート時にデフォルトで入るランレベル)が表示されます。通常、SUSE Linux Enterprise Serverシステムのデフォルトのランレベルは、5 (ネットワークありフルマルチユーザモードおよびX)です。適切な代替の設定は、ランレベル3 (ネットワークありフルマルチユーザモード)です。
を選択します。上部には、現在のデフォルトのランレベル、つまりYaSTのダイアログボックスでは、ランレベルのいずれか1つを新しいデフォルトとして選択できます(表10.1「ランレベルの種類」を参照)。また、このウィンドウのテーブルを使用して、個々のサービスやデーモンを有効、無効にできます。テーブルには、利用可能なサービスとデーモンが一覧表示され、現在ご使用のシステム上で有効かどうか、有効な場合はそのランレベルが表示されます。マウスで行を選択し、ランレベルを表すチェックボックス( 、 、 、 、 、 、 、 )をクリックして、選択しているサービスまたはデーモンが実行されるランレベルを定義します。ランレベル4は、カスタムランレベルを作成できるように未定義になっています。最後に現在選択しているサービスまたはデーモンの簡単な説明が、テーブルの概要の下に表示されます。
ランレベルの設定が誤っていると、システムを使用できなくなることがあります。変更を実際に適用する前に、どういう結果が出るかをよく確認してください。
、[中止]、または[更新]をクリックして、サービスを有効化するかどうかを決定します。現在の状態が自動的に確認されなかった場合は、 を使用して確認することができます。 または[リセット]をクリックすると、変更をシステムに適用するか、ランレベルエディタの起動前に存在していた設定を復元するかを選択できます。 を選択すると、設定の変更がディスクに保存されます。
/etc/sysconfig
によるシステム設定 #
SUSE Linux Enterprise Serverの主な設定は、/etc/sysconfig
ディレクトリに格納されている設定ファイルで指定できます。/etc/sysconfig
ディレクトリの個々のファイルは、それらが関係するスクリプトによってのみ読み込まれます。これにより、たとえば、ネットワークはネットワーク関連のスクリプトでのみ解析されるようになります。
システム設定を編集するには、2通りの方法があります。YaSTのsysconfigエディターを使う方法と、設定ファイルを手動で編集する方法です。
YaSTのsysconfigエディタは、使いやすい、システム設定のフロントエンドです。変更する必要のある設定用変数の実際の場所が分からなくても、このモジュールに内蔵された検索機能を使用するだけで、必要に応じて設定用変数の値を変更できますし、これらの変更の適用、sysconfig
で設定されている値に基づく設定の更新、サービスのリスタートは、YaSTが行います。
/etc/sysconfig/*
ファイルの変更はインストールに害を及ぼすことがある
知識や経験が豊富でない限り、/etc/sysconfig
ファイルは変更しないでください。システムに相当なダメージを与えることがあります。/etc/sysconfig
のファイルには、各変数が持つ実際の効果を説明する簡単なコメントが付いています。
YaSTのsysconfigダイアログは、3つの部分に分かれています。ダイアログの左側には、すべての設定変数がツリー表示されます。変数を選択した段階で、右側に現在選択されている変数と、この変数の現在の設定が表示されます。その下の3番目のウィンドウには、変数の目的、有効な値、デフォルト値、およびこの変数が設定されている実際の設定ファイルについての簡単な説明が表示されます。このダイアログボックスには、変数の変更後に実行された設定スクリプトや、変更の結果起動された新しいサービスについての情報も表示されます。YaSTにより変更の確認が求められ、
を選択してダイアログを終了した後にどのスクリプトが実行されるかが通知されます。現在は実行しないサービスやスクリプトを選択すると、それらが後で実行されます。YaSTはすべての変更を自動的に適用し、変更と関係のあるすべてのサービスをリスタートします。システム設定を手動で変更するには、以下の手順に従います。
root
になります。
telinit 1
コマンドで、システムをシングルユーザモード(ランレベル 1)にします。
必要に応じて、設定ファイルを、自分が使っているエディタで変更します。
/etc/sysconfig
の設定ファイルの変更にYaSTを使用しない場合、空の変数値は2つの引用符(KEYTABLE=
""
)によって表し、空白を含む値は引用符で囲むことに注意してください。語の値は、引用符で囲む必要はありません。
SuSEconfigを実行して、変更が有効になっていることを確認します。
telinit
default_runlevelなどのコマンドで、システムを以前のランレベルに戻します。default_runlevelの部分は、システムのデフォルトのランレベルで置き換えてください。ネットワークとXのあるフルマルチユーザモードに戻るには5
を、ネットワークのあるフルマルチユーザで作業するには3
を選択します。
この手順は主に、ネットワーク設定など、システム全体の設定を変更する場合に必要です。小さな変更であれば、シングルユーザモードに移行する必要はありませんが、関与するすべてのプログラムが正しく再起動することを絶対的に保証する必要がある場合は、移行しても差し支えありません。
SuSEconfigの自動システム設定機能を無効にするには、/etc/sysconfig/suseconfig
のENABLE_SUSECONFIG
をno
に設定します。SUSEのインストールサポートを使用する場合は、SuSEconfigを無効にしないでください。無効にすると、自動設定も部分的に無効になる可能性があります。