ここでは、システム上のデバイスにアクセスする方法について説明します。
この章の内容は次のとおりです。
デバイスの構成についての概要は、第 26 章「デバイスの管理 (手順)」を参照してください。
コマンドを使用してディスク、ファイルシステムなどのデバイスを管理する場合、デバイス名を指定する方法を知っている必要があります。通常、論理デバイス名を使用して、システムに接続されたデバイスを表すことができます。論理デバイス名と物理デバイス名は、システム上でそれぞれ論理デバイスファイルと物理デバイスファイルによって表現されます。
システムがブートされると、デバイス階層が作成されて、システムに接続されたすべてのデバイスが表示されます。カーネルは、このデバイス階層情報を使用して、ドライバを該当するデバイスに対応づけて、特定の操作を実行するドライバへの一連のポインタを与えます。デバイス階層の詳細については、『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 つの方法で参照されます。
物理デバイス名 – デバイス情報階層の完全デバイスパス名を表します。物理デバイス名は、次のコマンドを使用して表示できます。
dmesg
format
sysdef
prtconf
物理デバイスファイルは、/devices ディレクトリにあります。
インスタンス名 – システム上のデバイスすべてのカーネル短縮名を表します。たとえば、sd0 と sd1 は、2 つのディスクデバイスのインスタンス名を表します。インスタンス名は、/etc/path_to_inst ファイルにマップされており、次のコマンドによって表示できます。
dmesg
sysdef
prtconf
論理デバイス名 – デバイスを参照する際に、ほとんどのファイルシステムコマンドで使用されます。論理デバイス名を使用するファイルコマンドについては、表 29–1 を参照してください。/dev ディレクトリの論理デバイスファイルは、/devices ディレクトリの物理デバイスファイルにシンボリックリンクされています。
論理デバイス名は、次の場合に、ディスクデバイスにアクセスするために使用されます。
システムに新しいディスクを追加する
システム間でディスクを移動する
ローカルディスク上にあるファイルシステムにアクセスまたはそれをマウントする
ローカルファイルシステムのバックアップをとる
管理コマンドの多くは、ディスクスライスまたはファイルシステムを参照する引数を使用します。
シンボリックリンクされるサブディレクトリ (/dev/dsk または /dev/rdsk のどちらか) に続けて、特定のコントローラ、ディスク、およびスライスを識別する文字列を指定することによって、ディスクデバイスを参照してください。
ディスクとファイルの管理コマンドには、raw (または「キャラクタ型」) デバイスインタフェースか、「ブロック」デバイスインタフェースを使用する必要があります。この区別は、データがデバイスから読み取られる方法によって決まります。
raw デバイスインタフェースは、一度に少量のデータだけを転送します。ブロックデバイスインタフェースには、大量のデータブロックが一度に読み取られるバッファーが含まれます。
コマンドによって、必要なインタフェースは異なります。
コマンドが raw デバイスインタフェースを必要とする場合は、/dev/rdsk サブディレクトリを指定してください。(rdsk の r は、raw を表します。)
コマンドがブロックデバイスインタフェースを必要とする場合は、/dev/dsk サブディレクトリを指定してください。
コマンドが /dev/dsk または /dev/rdsk のどちらを必要とするかがわからない場合は、そのコマンドのマニュアルページの説明を参照してください。
表 29–1 に、一般的に使用されるディスクコマンドとファイルシステムコマンドの一部に必要なインタフェースを示します。
表 29-1 使用頻度の高いコマンドに必要なデバイスインタフェースのタイプ
コマンド名 |
インタフェースのタイプ |
使用例 |
---|---|---|
ブロック |
df /dev/dsk/c0t3d0s6 |
|
Raw |
fsck -p /dev/rdsk/c0t0d0s0 |
|
ブロック |
mount /dev/dsk/c1t0d0s7 /export/home/ziggy |
|
Raw |
newfs /dev/rdsk/c0t0d1s1 |
|
Raw |
prtvtoc /dev/rdsk/c0t0d0s2 |
特定のスライスを特定のディスクで識別するために使用する文字列は、コントローラのタイプが、直接またはバス指向のどちらであるかによって決まります。表 29–2 に、直接コントローラとバス指向コントローラのどちらであるかによって、プラットフォームが何になるかを示します。
表 29-2 コントローラのタイプ
直接コントローラ |
バス指向コントローラ |
---|---|
IDE (IA) |
SCSI (SPARC/IA) |
|
FCAL (SPARC) |
|
ATA (SPARC/IA) |
両方のタイプのコントローラについて、次の節で説明します。
コントローラ番号は、システム初期設定時に自動的に割り当てられます。この番号は、厳密に論理的なものであり、物理コントローラに直接対応するものではありません。
IA システムにおいて IDE コントローラでアクセスされるディスクにスライスを指定するには、 下の図に示す命名規則に従ってください。
Solaris fdisk パーティション全体を示すには、スライス 2 (S2) を指定してください。
システムにコントローラが 1 つしかない場合、w は、通常、0 になります。
SPARC システムにおいてバス指向コントローラ (SCSI など) でアクセスされるディスクにスライスを指定するには、下の図に示す命名規則に従ってください。
直接接続されるディスク (Ultra10 の IDE ディスクなど) を備えている SPARC システムでは、バス指向コントローラを備えているシステムと同じ命名規則になります。
システムにコントローラが 1 つしかない場合、w は、通常、0 になります。
SCSI コントローラの場合、x はデバイスの背面にあるスイッチによって設定されたターゲットアドレス、y はターゲットに接続されたドライブの論理デバイス番号 (LUN) を示します。ディスクに組み込みコントローラがある場合、y は通常 0 になります。
ディスク全体を示すには、スライス 2 (S2) を指定してください。
IA システムにおいて SCSI コントローラでアクセスされるディスクにスライスを指定するには、 下の図に示す命名規則に従ってください。
システムにコントローラが 1 つしかない場合、v は、通常、0 になります。
SCSI コントローラの場合、w はデバイスの背面にあるスイッチによって設定されたターゲットアドレス、x はターゲットに接続されたドライブの論理デバイス番号 (LUN) を示します。ディスクに組み込みコントローラがある場合、x は通常 0 になります。
Solaris fdisk パーティション全体を示すには、スライス 2 (s2) を指定してください。
論理テープデバイスファイルは、/devices ディレクトリからのシンボリックリンクとして、/dev/rmt/* ディレクトリにあります。
システムに接続された最初のテープデバイスは 0 (/dev/rmt/0 ) です。テープ密度の値 (l、m、 h、c、および u) の詳細については、第 51 章「テープドライブの管理 (手順)」を参照してください。
リムーバブルメディアは、ボリューム管理 (vold) によって管理されるため、論理デバイス名は、手動でメディアをマウントしない限り、通常使用されません。
システムのリムーバブルメディアデバイスを表す、論理デバイス名については、第 18 章「リムーバブルメディアへのアクセス (手順)」の説明を参照してください。