Solaris のシステム管理 (デバイスとファイルシステム)

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

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

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

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

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

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

デバイス管理の新機能

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

USB デバイスの新機能

USB デバイスの新機能の詳細については、「USB デバイスの新機能」を参照してください。

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

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

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

デバイス管理作業 

参照先 

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

第12章「SPARC: ディスクの追加 (手順)」または第13章「x86: ディスクの追加 (手順)」

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

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

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

「USB デバイスのホットプラグ (作業マップ)」

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

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

モデムの追加 

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

プリンタの追加 

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

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

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

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

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

デバイスの自動構成

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

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

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

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

表 52 カーネルモジュール

保存場所 

内容 

/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 デバイスを識別できます。デバイスインスタンスの出力の横に 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
.
.
.

次のコマンドを使うと、システムに接続されたデバイスのみを表示できます。


$ prtconf | grep -v not 

デバイス情報は、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
.
.
.

x86 システムからは、次の 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 出力が表示されます。


Apr  2 13:26:19 venus genunix: [ID 540533 kern.notice] SunOS Release 5.9 Version Generic ...
Apr  2 13:26:19 venus genunix: [ID 943905 kern.notice] Copyright 1983-2003...
Apr  2 13:26:19 venus genunix: [ID 678236 kern.info] Ethernet address ...
Apr  2 13:26:19 venus unix: [ID 389951 kern.info] mem = 65536K (0x4000000)
Apr  2 13:26:19 venus unix: [ID 930857 kern.info] avail mem = 57688064
Apr  2 13:26:19 venus rootnex: [ID 466748 kern.info] root nexus = 
Sun Ultra 1 SBus (UltraSPARC 167MHz)

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


# dmesg
Dec 17 16:32:10 naboo unix: [ID 930857 kern.info] avail mem = 1037565952
Dec 17 16:32:10 naboo rootnex: [ID 466748 kern.info] root nexus = i86pc
Dec 17 16:32:10 naboo unix: [ID 406534 kern.info] ACPI detected: 2 13 0 0
Dec 17 16:32:10 naboo rootnex: [ID 349649 kern.info] pci1 at root: isa 0x0
Dec 17 16:32:10 naboo genunix: [ID 936769 kern.info] pci1 is /pci@1,0
Dec 17 16:32:10 naboo pcplusmp: [ID 637496 kern.info] pcplusmp: ...
Dec 17 16:32:10 naboo pci: [ID 370704 kern.info] PCI-device: ...
Dec 17 16:32:10 naboo genunix: [ID 936769 kern.info] cadp1601 ...
Dec 17 16:32:13 naboo scsi: [ID 193665 kern.info] sd5 at cadp1601: ...
.
.
.

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

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

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

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

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

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

手順
  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. x86 プラットフォームでは、type any key to continue プロンプトが表示されたら電源を落としても安全です。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


    # pkgadd -d device package-name
    
    -d device

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

    package-name

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

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


    # pkgchk package-name
    #

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


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

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


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