Solaris のシステム管理 (基本編)

第 26 章 デバイスの管理 (手順)

この章では、Solaris 環境のディスク、CD-ROM、テープデバイスなどの周辺デバイスを管理する方法について説明します。

この章で説明する手順は次のとおりです。

この章の内容は以下のとおりです。

周辺デバイスへのアクセスについては、第 29 章「デバイスへのアクセス (概要)」を参照してください。

Solaris 環境のデバイス管理には、通常、システムでの周辺デバイスの追加と削除、デバイスをサポートするための Sun 以外のデバイスドライバの追加、システム構成情報の表示が含まれます。

デバイス管理における新機能

ここでは、デバイス管理の新機能について説明します。

RCM スクリプト

新しい RCM (Reconfiguration Coordination Manager) スクリプト機能を使用すると、アプリケーションを停止したり、動的な再構成の間にアプリケーションからデバイスを手際良く解放したりする独自のスクリプトを記述できます。

詳細については、「Reconfiguration Coordination Manager (RCM) スクリプトの概要」を参照してください。

新しい動的再構成のエラーメッセージ

動的再構成のソフトウェアが拡張され、動的再構成問題の障害追跡が改良されました。

詳細については、「SPARC: SCSI 構成の障害対処」を参照してください。

デバイス管理作業についての参照先

次の表に、デバイスをホットプラグしたり、シリアルデバイス (プリンタやモデムなど) や周辺デバイス (ディスク、CD-ROM、テープデバイスなど) を追加したりする手順を説明している参照先を示します。

表 26-1 デバイスを追加する場合の参照先

デバイス管理作業 

参照先 

ホットプラグ不可ディスクの追加。 

第 33 章「SPARC: ディスクの追加 (手順)」または第 34 章「IA: ディスクの追加 (手順)」

SCSI または PCI デバイスのホットプラグ 

cfgadm コマンドによる SCSI ホットプラグ」または「IA: cfgadm コマンドによる PCI ホットプラグ」

USB デバイスのホットプラグ 

「USB デバイスのホットプラグ」

CD-ROM またはテープデバイスの追加 

「周辺デバイスを追加する方法」

モデムの追加 

Solaris のシステム管理 (上級編)』の「端末とモデムの管理 (概要)」

プリンタの追加 

Solaris のシステム管理 (上級編)』の「印刷サービスの管理 (概要)」

デバイスドライバについて

コンピュータは通常、広範囲の周辺デバイスと大量記憶デバイスを使用します。たとえば、各システムには、SCSI ディスクドライブ、キーボードとマウス、磁気バックアップメディアなどがあります。これ以外に一般に使用されるデバイスには、CD-ROM ドライブ、プリンタとプロッタ、ライトペン、タッチセンサー式画面、デジタイザー、タブレットとスタイラスのペアがあります。

Solaris ソフトウェアは、これらのデバイスと直接には通信を行いません。各タイプのデバイスに異なるデータ形式、プロトコル、および転送速度が必要になります。

「デバイスドライバ」は、オペレーティングシステムが特定のハードウェアと通信できるようにする低レベルのプログラムです。このドライバは、そのハードウェアに対するオペレーティングシステムの「インタプリタ」として機能します。

デバイスの自動構成

プラットフォーム固有の構成要素を備えた汎用コアと、一連のモジュールからなるカーネルは、Solaris 環境で自動的に構成されます。

カーネルモジュールとは、システムで固有の作業を実行するために使用されるハードウェアまたはソフトウェアの構成要素のことです。「ロード可能」なカーネルモジュールの例としては、デバイスのアクセス時にロードされるデバイスドライバがあげられます。

プラットフォームに依存しないカーネルは /kernel/genunix です。プラットフォーム固有の構成要素は、/platform/`uname -m`/kernel/unix です。

カーネルモジュールについては、次の表で説明します。

表 26-2 カーネルモジュール

保存場所 

内容 

/platform/`uname -m`/kernel

プラットフォーム固有のカーネル構成要素 

/kernel

システムのブートに必要なすべてのプラットフォームに共通のカーネル構成要素 

/usr/kernel

特定の命令セット内にあるすべてのプラットフォームに共通のカーネル構成要素 

システムは、ブート時にどのデバイスが接続されるかを判断します。さらに、カーネルは、それ自体を動的に構成して、必要なモジュールだけをメモリーにロードします。ディスクデバイスやテープデバイスなどのデバイスが初めてアクセスされると、対応するデバイスドライバがロードされます。このプロセスは、「自動構成」と呼ばれます。これは、すべてのカーネルモジュールが、必要に応じて自動的にロードされるためです。

/etc/system ファイルを修正することによって、カーネルモジュールがロードされる方法をカスタマイズできます。このファイルを修正する方法については、system(4) のマニュアルページを参照してください。

自動構成の機能と利点

自動構成の利点は次のとおりです。

自動構成プロセスは、システム管理者が新しいデバイス(およびドライバ) をシステムに追加するときに使用されます。これは、再構成ブートを実行することによって行われるため、システムは新しいデバイスを認識することができます。

標準サポートされていないデバイスを使用する場合

Solaris 環境には、各種の標準デバイスをサポートするために必要なデバイスドライバが組み込まれています。これらのドライバは、/kernel/drv および /platform/`uname -m`/kernel/drv ディレクトリにあります。

ただし Solaris で標準にサポートされていないデバイスを購入した場合は、そのメーカーから、デバイスを正しくインストール、保守、管理するために必要なソフトウェアを提供してもらう必要があります。

そのようなデバイス用ソフトウェアには、少なくともデバイスドライバとその関連設定 (.conf) ファイルが含まれます。.conf ファイルは、drv ディレクトリにもあります。また、サポートされていないデバイスは、Solaris で提供されるユーティリティと互換性を持たないので、保守および管理用のユーティリティが必要になる場合があります。

詳細は、デバイスのご購入先にお問い合わせください。

デバイス構成情報の表示

システムとデバイスの構成情報を表示するには、次の 3 つのコマンドを使用します。

コマンド 

マニュアルページ 

説明 

prtconf

prtconf(1M)

メモリーの総量、システムのデバイス階層によって記述されたデバイス構成を含む、システム構成情報を表示します。このコマンドによる出力は、システムのタイプによって異なります。 

sysdef

sysdef(1M)

システムハードウェア、疑似デバイス、ロード可能なモジュール、および指定のカーネルパラメータを含む、デバイス構成情報を表示します。 

dmesg

dmesg(1M)

最後のリブート以降にシステムに接続されたデバイスのリストと、システム診断情報を表示します。 

システムのデバイスの識別に使用されるデバイス名については、「デバイス名の命名規則」を参照してください。

driver not attached メッセージ

次のドライバ関連メッセージが、prtconf コマンドと sysdef コマンドによって表示されることがあります。


device, instance #number (driver not attached)

このメッセージは、このデバイスのドライバが使用できないことをいつも示すわけではありません。このメッセージは、ノードにデバイスがないか、あるいはデバイスが使用中ではないために、デバイスインスタンスに「現在」接続されているドライバがないことを示します。ドライバは、デバイスがアクセスされると自動的にロードされ、デバイスが使用されなくなると自動的にアンロードされます。

システムデバイスの識別

prtconf コマンドと sysdef コマンドを使用すると、システムに接続されたディスク、テープ、CD-ROM デバイスを識別できます。これら 2 つのコマンドが表示するデバイスインスタンスの次の「driver not attached」メッセージでわかります。これらのデバイスは、何らかのシステムプロセスによって常に監視されているため、「driver not attached」メッセージは通常、そのデバイスインスタンスにデバイスがないことを示す良い標識になります。

たとえば、次の prtconf 出力は、instance #3instance #6 のデバイスを識別しています。これは、最初の SCSI ホストアダプタ (esp, instance #0) のターゲット 3 のディスクデバイスと、ターゲット 6 の CD-ROM デバイスを示しています。


$ /usr/sbin/prtconf
.
.
.
 
esp, instance #0
            sd (driver not attached)
            st (driver not attached)
            sd, instance #0 (driver not attached)
            sd, instance #1 (driver not attached)
            sd, instance #2 (driver not attached)
            sd, instance #3
            sd, instance #4 (driver not attached)
            sd, instance #5 (driver not attached)
            sd, instance #6
.
.
.

同じデバイス情報は、sysdef 出力からも得られます。

システム構成情報を表示する方法

システム構成情報を表示するには、prtconf コマンドを使用してください。


# /usr/sbin/prtconf

疑似デバイス、ロード可能なモジュール、および指定のカーネルパラメータを含むシステム構成情報を表示するには、sysdef コマンドを使用してください。


# /usr/sbin/sysdef

例 - システム構成情報を表示する

SPARC システムでは、次の prtconf 出力が表示されます。


# prtconf
System Configuration:  Sun Microsystems  sun4u
Memory size: 128 Megabytes
System Peripherals (Software Nodes):
SUNW,Ultra-5_10
    packages (driver not attached)
        terminal-emulator (driver not attached)
        deblocker (driver not attached)
        obp-tftp (driver not attached)
        disk-label (driver not attached)
        SUNW,builtin-drivers (driver not attached)
        sun-keyboard (driver not attached)
        ufs-file-system (driver not attached)
    chosen (driver not attached)
    openprom (driver not attached)
        client-services (driver not attached)
    options, instance #0
    aliases (driver not attached)
    memory (driver not attached)
    virtual-memory (driver not attached)
    pci, instance #0
        pci, instance #0
            ebus, instance #0
                auxio (driver not attached)
                power, instance #0
                SUNW,pll (driver not attached)
                se, instance #0
                su, instance #0
                su, instance #1
                ecpp (driver not attached)
                fdthree, instance #0
.
.
.

IA システムからは、次の sysdef 出力が表示されます。


# sysdef
* Hostid
*
  29f10b4d
*
* i86pc Configuration
*
*
* Devices
*
+boot (driver not attached)
memory (driver not attached)
aliases (driver not attached)
chosen (driver not attached)
i86pc-memory (driver not attached)
i86pc-mmu (driver not attached)
openprom (driver not attached)
options, instance #0
packages (driver not attached)
delayed-writes (driver not attached)
itu-props (driver not attached)
isa, instance #0
	motherboard (driver not attached)
	pnpADP,1542, instance #0
	asy, instance #0
	asy, instance #1
	lp, instance #0 (driver not attached)
	fdc, instance #0
		fd, instance #0
		fd, instance #1 (driver not attached)
	kd (driver not attached)
	kdmouse (driver not attached)
.
.
.

デバイス情報を表示する方法

デバイス情報は、dmesg コマンドを使用して表示してください。


# /usr/sbin/dmesg

この dmesg 出力は、システムコンソール上のメッセージとして表示され、最後のリブート以降に接続されたデバイスを表示します。

例 - デバイス情報を表示する

SPARC システムからは、次の dmesg 出力が表示されます。


# dmesg
Jan  3 08:44:41 starbug genunix: [ID 540533 kern.notice] SunOS Release 5.9 ...
Jan  3 08:44:41 starbug genunix: [ID 913631 kern.notice] Copyright 1983-2002 ...
Jan  3 08:44:41 starbug genunix: [ID 678236 kern.info] Ethernet address = ...
Jan  3 08:44:41 starbug unix: [ID 389951 kern.info] mem = 131072K (0x8000000)
Jan  3 08:44:41 starbug unix: [ID 930857 kern.info] avail mem = 121888768
Jan  3 08:44:41 starbug rootnex: [ID 466748 kern.info] root nexus = 
Sun Ultra 5/10 UPA/PCI (UltraSPARC-IIi 333MHz)
.
.
.
# 

IA システムからは、次の dmesg 出力が表示されます。


# dmesg
Jan  2 07:21:46 naboo genunix: [ID 540533 kern.notice] SunOS Release 5.9 Version ...
Jan  2 07:21:46 naboo genunix: [ID 913631 kern.notice] Copyright 1983-2002 ...
Jan  2 07:21:46 naboo genunix: [ID 897550 kern.info] Using default device ...
Jan  2 07:21:46 naboo unix: [ID 168242 kern.info] mem = 130684K (0x7f9f000)
Jan  2 07:21:46 naboo unix: [ID 930857 kern.info] avail mem = 116547584
Jan  2 07:21:46 naboo rootnex: [ID 466748 kern.info] root nexus = i86pc
Jan  2 07:21:46 naboo rootnex: [ID 349649 kern.info] pci0 at root: ...
Jan  2 07:21:46 naboo genunix: [ID 936769 kern.info] pci0 is /pci@0,0
Jan  2 07:21:46 naboo genunix: [ID 678236 kern.info] Ethernet address = ...
.
.
.

システムへ周辺デバイスを追加する

新しい (ホットプラグイン不可の) 周辺デバイスを追加する場合、通常、次の作業が必要になります。

システムにホットプラグインできない次のデバイスを追加する場合は、「周辺デバイスを追加する方法」の手順に従ってください。

場合によっては、新しいデバイスをサポートするために、Sun 以外のデバイスドライバを追加しなければなりません。

ホットプラグインデバイスについては、第 27 章「デバイスの動的構成 (手順)」を参照してください。

周辺デバイスを追加する方法

  1. スーパーユーザーになります。

  2. デバイスをサポートするためにデバイスドライバを追加する必要がある場合は、「デバイスドライバを追加する方法」の手順 2 と 3 を実行します。

  3. /reconfigure ファイルを作成します。


    # touch /reconfigure
    

    この /reconfigure ファイルがあると、Solaris ソフトウェアは、次にシステムに電源を入れたときまたはブートしたときに、新しくインストールされたデバイスがないかどうかをチェックします。

  4. システムをシャットダウンします。


    # shutdown -i0 -g30 -y
    

    -i0

    システムを init 0 状態に戻す。システムの電源を落としてデバイスの追加、削除を行うのに適した状態になる。 

    -g30

    システムを 30 秒以内にシャットダウンする。デフォルト値は 60 秒。 

    -y

    ユーザーの介入なしに、システムのシャットダウンを続ける。このオプションを指定しないと、シャットダウンプロセスを続けるかどうか、プロンプトでたずねられる。 

  5. システムがシャットダウンしたら、次のいずれかを選択して電源を落とします。

    1. SPARC プラットフォームでは、ok プロンプトが表示されたら電源を落としても安全です。

    2. Intel プラットフォームでは、type any key to continue プロンプトが表示されたら電源を落としても安全です。

    電源スイッチの位置については、各システムに添付のハードウェアマニュアルを参照してください。

  6. すべての外部デバイスの電源を落とします。

    周辺デバイスの電源スイッチの位置については、各自の周辺デバイスに添付のハードウェアマニュアルを参照してください。

  7. 周辺デバイスをインストールして、追加するデバイスのターゲット番号がシステム上の他のデバイスとは異なることを確認します。

    ターゲット番号を選択するために、ディスクの裏側にある小さいスイッチを見つけてください。

    デバイスの設置と接続については、周辺デバイスに添付のハードウェアマニュアルを参照してください。

  8. システムの電源を入れます。

    システムがブートされてマルチユーザーモードになり、ログインプロンプトが表示されます。

  9. 周辺デバイスにアクセスし、そのデバイスが追加されたことを確認してください。

    デバイスにアクセスする方法については、第 29 章「デバイスへのアクセス (概要)」を参照してください。

デバイスドライバを追加する方法

この手順では、デバイスがすでにシステムに追加されていることを前提としています。追加されていない場合は、「標準サポートされていないデバイスを使用する場合」を参照してください。

  1. スーパーユーザーになります。

  2. テープ、フロッピーディスク、または CD-ROM をドライブに入れます。

  3. ドライバをインストールします。


    # pkgadd -d device package-name
    

    -d device

    パッケージを含むデバイスのパス名を指定する。 

    package-name

    デバイスドライバを含むパッケージ名を指定する。 

  4. パッケージが正常に追加されたことを確認します。


    # pkgchk package-name
    #

    パッケージが正しくインストールされている場合は、何も表示されません。

例 - デバイスドライバを追加する

次の例では、 XYZdrv というパッケージをインストールして確認します。


# pkgadd XYZdrv
(ライセンス関連のメッセージが表示される)
.
.
.
Installing XYZ Company driver as <XYZdrv>
.
.
.
Installation of <XYZdrv> was successful.
# pkgchk XYZdrv
#