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

第 30 章 デバイスへのアクセス (概要)

ここでは、システム上のデバイスにアクセスする方法について説明します。

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

デバイスの構成についての概要は、第 27 章「デバイスの管理 (手順)」を参照してください。

デバイスへのアクセス

コマンドを使用してディスク、ファイルシステムなどのデバイスを管理する場合、デバイス名を指定する方法を知っている必要があります。通常、論理デバイス名を使用して、システムに接続されたデバイスを表すことができます。論理デバイス名と物理デバイス名は、システム上でそれぞれ論理デバイスファイルと物理デバイスファイルによって表現されます。

デバイス情報が作成される方法

システムがブートされると、デバイス階層が作成されて、システムに接続されたすべてのデバイスが表示されます。カーネルは、このデバイス階層情報を使用して、ドライバを該当するデバイスに対応づけて、特定の操作を実行するドライバへの一連のポインタを与えます。デバイス階層の詳細については、『OpenBoot 3.x コマンド・リファレンスマニュアル』を参照してください。

デバイスの管理方法

devfsadm コマンドによって、ディレクトリ /dev/devices 内にある特殊デバイスファイルを管理します。デフォルトでは、devfsadm コマンドはすべてのドライバをシステムに読み込み、可能な限りのデバイスに接続しようとします。そして、devfsadm コマンドはデバイスファイルを /devices ディレクトリに作成し、論理リンクを /dev ディレクトリに作成します。/dev/devices のディレクトリの管理に加えて、devfsadm コマンドは path_to_inst(4) インスタンスデータベースも保守します。

動的再構成イベントに応答する、再構成ブート処理とディレクトリ /dev および /devices の更新は、両方とも devfsadmd (devfsadm コマンドのデーモン版) によって処理されます。このデーモンは、システムブート時に /etc/rc* スクリプトから起動します。

devfsadmd デーモンは再構成イベントによるデバイス構成の変化を自動的に検出するため、このコマンドを対話的に実行する必要はありません。

詳細については、devfsadm(1M) のマニュアルページを参照してください。

デバイス名の命名規則

Solaris 環境では、デバイスは次の 3 つの方法で参照されます。

論理ディスクデバイス名

論理デバイス名は、次の場合に、ディスクデバイスにアクセスするために使用されます。

管理コマンドの多くは、ディスクスライスまたはファイルシステムを参照する引数を使用します。

シンボリックリンクされるサブディレクトリ (/dev/dsk または /dev/rdsk のどちらか) に続けて、特定のコントローラ、ディスク、およびスライスを識別する文字列を指定することによって、ディスクデバイスを参照してください。

図 30–1 論理デバイス名

raw ディスクデバイスディレクトリ、論理コントローラ、物理バスターゲット、ドライブ、スライスまたは fdisk パーティションなどの論理デバイス名の構成要素

ディスクサブディレクトリの指定

ディスクとファイルの管理コマンドには、raw (または「キャラクタ型」) デバイスインタフェースか、「ブロック」デバイスインタフェースを使用する必要があります。この区別は、データがデバイスから読み取られる方法によって決まります。

raw デバイスインタフェースは、一度に少量のデータだけを転送します。ブロックデバイスインタフェースには、大量のデータブロックが一度に読み取られるバッファーが含まれます。

コマンドによって、必要なインタフェースは異なります。

次の表に、一般的に使用されるディスクコマンドとファイルシステムコマンドの一部に必要なインタフェースを示します。

表 30–1 使用頻度の高いコマンドに必要なデバイスインタフェースのタイプ

コマンド 

インタフェースのタイプ 

使用例 

df(1M)

ブロック 

df /dev/dsk/c0t3d0s6

fsck(1M)

Raw 

fsck -p /dev/rdsk/c0t0d0s0

mount(1M)

ブロック 

mount /dev/dsk/c1t0d0s7 /export/home/ziggy

newfs(1M)

Raw 

newfs /dev/rdsk/c0t0d1s1

prtvtoc(1M)

Raw 

prtvtoc /dev/rdsk/c0t0d0s2

スライスの指定

特定のスライスを特定のディスクで識別するために使用する文字列は、コントローラのタイプが、直接またはバス指向のどちらであるかによって決まります。次の表に、直接コントローラとバス指向コントローラのどちらであるかによって、プラットフォームが何になるかを示します。

表 30–2 コントローラのタイプ

直接コントローラ 

バス指向コントローラ 

IDE (x86) 

SCSI (SPARC/x86) 

 

FCAL (SPARC) 

 

ATA (SPARC/x86) 

両方のタイプのコントローラについて、次の項で説明します。


注 –

コントローラ番号は、システム初期設定時に自動的に割り当てられます。この番号は、厳密に論理的なものであり、物理コントローラに直接対応するものではありません。


x86: 直接コントローラでアクセスされるディスク

x86 システムにおいて IDE コントローラでアクセスされるディスクにスライスを指定するには、 下の図に示す命名規則に従ってください。

図 30–2 x86: 直接コントローラでアクセスされるディスク

この図は、論理コントローラ、ドライブ、スライスまたは fdisk パーティションを含む、直接コントローラでアクセスされるディスクのデバイス名を示しています。

Solaris fdisk パーティション全体を示すには、スライス 2 (S2) を指定してください。

システムにコントローラが 1 つしかない場合、w は、通常、0 になります。

SPARC: バス指向コントローラでアクセスされるディスク

SPARC システムにおいてバス指向コントローラ (SCSI など) でアクセスされるディスクにスライスを指定するには、下の図に示す命名規則に従ってください。

図 30–3 SPARC: バス指向コントローラでアクセスされるディスク

論理コントローラ、物理バスターゲット、ドライブ、スライスまたは fdisk パーティションを含む、バス指向コントローラでアクセスされるディスクのデバイス名

直接接続されるディスク (Ultra10 の IDE ディスクなど) を備えている SPARC システムでは、バス指向コントローラを備えているシステムと同じ命名規則になります。

システムにコントローラが 1 つしかない場合、w は、通常、0 になります。

SCSI コントローラの場合、x はデバイスの背面にあるスイッチによって設定されたターゲットアドレス、y はターゲットに接続されたドライブの論理デバイス番号 (LUN) を示します。ディスクに組み込みコントローラがある場合、y は通常 0 になります。

ディスク全体を示すには、スライス 2 (S2) を指定してください。

x86: SCSI コントローラでアクセスされるディスク

x86 システムにおいて SCSI コントローラでアクセスされるディスクにスライスを指定するには、 下の図に示す命名規則に従ってください。

図 30–4 x86: SCSI コントローラでアクセスされるディスク

論理コントローラ、物理バスターゲット、ドライブ、スライスまたは fdisk パーティションを含む、SCSI コントローラでアクセスされるディスクのデバイス名

システムにコントローラが 1 つしかない場合、v は、通常、0 になります。

SCSI コントローラの場合、w はデバイスの背面にあるスイッチによって設定されたターゲットアドレス、x はターゲットに接続されたドライブの論理デバイス番号 (LUN) を示します。ディスクに組み込みコントローラがある場合、x は通常 0 になります。

Solaris fdisk パーティション全体を示すには、スライス 2 (s2) を指定してください。

論理テープデバイス名

論理テープデバイスファイルは、/devices ディレクトリからのシンボリックリンクとして、/dev/rmt/* ディレクトリにあります。

図 30–5 論理テープデバイス名

この図は、磁気テープデバイスのディレクトリ、ドライブ、密度オプションの各値を含む、論理テープデバイス名を示しています。

システムに接続された最初のテープデバイスは 0 (/dev/rmt/0 ) です。テープ密度の値 (lm hc、および u) の詳細については、第 52 章「テープドライブの管理 (手順)」を参照してください。

論理リムーバブルメディアデバイス名

リムーバブルメディアは、ボリューム管理 (vold) によって管理されるため、論理デバイス名は、手動でメディアをマウントしない限り、通常使用されません。

システムのリムーバブルメディアデバイスを表す、論理デバイス名については、第 18 章「リムーバブルメディアへのアクセス (手順)」の説明を参照してください。