Sun 周辺機器使用の手引き

第 2 章 ディスクドライブの設定

この章では、SolarisTM 操作環境を使用してディスクドライブを設定する方法を説明します。

この章の内容を以下に示します。

準備作業

新しいディスクドライブの操作環境を設定する前に、以下の準備が必要です。


注 -

システムの停止の手順以外の方法でシステムを停止すると、新しいディスクドライブがオペレーティングシステムによって認識されない場合があります。


ディスクドライブ

ディスクドライブは、後からシステムに追加されることが多いデバイスです。ディスクドライブの追加は、大きく分けて次の 3 つの手順から構成されます。

Veritas Volume Manager や Solstice DiskSuiteTM などの特殊な (RAID: Redundant Array of Inexpensive Disks) アプリケーションを使用してディスク上のデータを管理する場合、最後の手順は必要ない場合もあります。

ディスクドライブを追加する
  1. システムを停止します。

    システムの停止 を参照してください。

  2. ディスクドライブのアドレススイッチが正しく設定されていることを確認します。

    各 SCSI ターゲット ID によって、Solaris 操作環境がドライブに割り当てる論理デバイス名が決まります。SCSI アドレス指定についての詳細は、付録 A 「SCSI アドレスの概念」と『Solaris のシステム管理 (第 2 巻)』を参照してください。


    注意 - 注意 -

    各ディスクドライブには一意の SCSI ターゲット ID を設定する必要があります。


  3. ディスクドライブを取り付けます。

    作業の詳細については、ハードウェアに付属しているマニュアルを参照してください。

  4. システムおよびすべての外部周辺機器の電源を入れます。

    ほとんどの場合は、この操作によってシステムが起動します。/reconfigureファイルが存在する場合 (システムを準備するを参照)、オペレーティングシステムは新しいデバイスに対して自動的に論理デバイス名を割り当て、デバイスドライバを初期化します。 /reconfigure、ファイルが存在しない場合は、boot -r を実行することによって、 /reconfigure ファイルが存在した場合と同じ処理を行うことができます。詳細は、付録 B 「システムの起動」を参照してください。

  5. 必要に応じて、ディスクを準備します。

    ディスクの準備を参照してください。

ディスクの準備

新たに取り付けたディスクドライブを使用するには、ディスクをフォーマットして、パーティション分割し、ラベル付けする必要があります。format ユーティリティーを使用して、必要に応じてこれらの作業を行ってください。

format ユーティリティー

format ユーティリティーは、ディスクのフォーマット、パーティション分割、ラベル付け、不良セクターの管理に使用することができるメニュー方式のディスク保守プログラムです。format ユーティリティーを起動すると、ユーティリティーはシステムに接続されているディスクドライブを調べ、各ディスクのラベルを読み取り、ディスクの一覧を表示します。ディスクを選択すると、選択可能なルーチンのメニューが表示されます。


注意 - 注意 -

format ユーティリティーの多くのルーチンは、ディスク上のデータを上書きします。このため、format ユーティリティーを使用する前に、すべてのディスク上のすべてのデータのバックアップをとってください。


format ユーティリティーは、デフォルトのディスクドライブ構成パラメタを判定するために /etc/format.dat というディスクの統計情報ファイルを使用します。ただし、format は、特定の種類のディスクドライブに関する記述が /etc/format.dat ファイルに存在しなくても、SCSI ディスクドライブの設定とラベル付けを自動的に行うことができます。つまり、SCSI-2 に準拠しているディスクドライブについては、/etc/format.dat ファイルを編集しなくても、どのドライブもフォーマットとパーティション分割、ラベル付けを行うことができます。

format ユーティリティーを使用するには、スーパーユーザーになる必要があります。スーパーユーザーでないユーザーが format の使用を試みると、以下のエラーメッセージが表示されます。


% format
Searching for disk...done
No permission (or no disk found)!

format ユーティリティーを使用する際は、このマニュアルの以下の箇所を参照してください。


注 -

format ユーティリティーについての詳細は、『Solaris のシステム管理 (第 2 巻)』を参照してください。


ディスクをフォーマットする

ディスクをフォーマットすると、ディスク媒体上にセクターが作成され、不良セクターの一覧が編集されます。ディスクにデータを書き込むには、ディスクをフォーマットする必要があります。ほとんどの場合、ディスクは製造元または販売元によってあらかじめフォーマットされており、ディスクドライブを取り付けるときに、ユーザー自身がフォーマットする必要はありません。ディスクがフォーマットされているかどうかを調べて、実際にフォーマットするには、この後の手順で format ユーティリティーを使用します。


注意 - 注意 -

ディスクをフォーマットすると、ディスク上のデータは破壊されます。



注 -

表示されるメニュー情報は、ここで示されているものと異なる場合があります。SPARCstorageTM Array を使用している場合は、format ユーティリティーを使用する前に SPARCstorage Array のドライバを読み込んでおく必要があります。


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

  2. format ユーティリティーを起動します。


    # format
    

    ディスクにすでにラベルが付いている場合は、以下のように表示されます。


    Searching for disks...done
    AVAILABLE DISK SELECTIONS:
    	0.		c0t3d0 <SUN0207 cyl  1214 alt 2 hd 9 sec 36>
    			/sbus@1,f8000000/esp@0,8000000/sd@3,0
    	1.		c0t0d0 <SUN0207 cyl  1214 alt 2 hd 9 sec 36>
    			/sbus@1,f8000000/esp@0,8000000/sd@0,0
    	2.		c1t1d0 <SUN0207 cyl  1214 alt 2 hd 9 sec 36>
    			/sbus@1,f8000000/esp@0,8000000/sd@1,0
    	3.		c1t2d0 <SUN0207 cyl  1214 alt 2 hd 9 sec 36>
    			/sbus@1,f8000000/esp@0,8000000/sd@2,0
    Specify disk (enter its number): 2
    

    上の例は、次のような意味を持っています。

    • ディスクドライブの 2 (c1t1d0) と3 (c1t2d0) が新たに追加されています。

    • フォーマットするディスクとして 2 が指定されています。

    1 台目の新しいハードディスクをフォーマットした後に、同じ方法で 2 台目の新しいハードディスクをフォーマットすることができます。

  3. 画面に表示された一覧から、フォーマットするディスクを選択します。


    注意 - 注意 -

    間違ったディスクを選択しないよう注意してください。ディスクをフォーマットすると、元のデータがすべて上書きされます。


    format ユーティリティーは、ディスクがフォーマット済みであるかどうかを示すメッセージを表示します。


    Selecting c1t1d0
    [disk formatted]

    ディスクがフォーマットされていない場合は、手順 4 に進んでください。ディスクがフォーマット済みの場合は、ディスクをパーティション分割するの手順に進んでください。


    注意 - 注意 -

    Warning: Current Disk has mounted partitions」というメッセージが表示された場合は、その時点で作業を中止してください。q と入力し、format ユーティリティーを終了してください。手順 2 に戻って、正しいディスクを選択しているかどうかを確認してください。


  4. format> プロンプトに対して format と入力し、y と入力してコマンドを確認します。


    format> format
    
    Ready to format. Formatting cannot be interrupted.
    Continue? y
    
    Beginning format. The current time is Fri Sept 11 14:56:51 1993
    Formatting ...
    
    done
    
    Verifying media ...
    pass 0 - pattern = 0xc6dec6de
    pass 1 - pattern = 0x6db6db6d
    total of 0 defective blocks repaired.
    format>

    Format は、次の 2 つの処理を行います。

    • ディスクをフォーマットし、媒体上にセクターを作成します。

    • 検証を 2 回実行し、ディスクに不良個所がないか調べ、使用禁止にする不良セクターを編集します。

    フォーマットにかかる時間は、ディスクのサイズや使用されている CPU、メモリー容量、他のシステム活動の有無など、多くの可変要素に依存するため、予測することはできません。1 分で完了することもあれば、1 時間以上かかることもあります。


    注意 - 注意 -

    ディスクのフォーマットを中断しないでください。中断によってディスクが破壊される場合があります。


ディスクをパーティション分割する

ディスクをパーティションに分割するということは、1 つのディスクをパーティションまたはスライスと呼ばれる複数の区画に分割することです。個々のパーティションは、オペレーティングシステム (およびシステム管理者) には、独立した 1 つのディスクドライブのように見えます。パーティションには、ファイルシステムやスワップパーティション、データベースが作成されます。

ディスクには、番号 0 〜 7 で表される 8 つのパーティションを作成することができます。ただし、パーティション 2 は、常にディスクドライブ全体を表すパーティションとして予約されています。ユーザーは、1 つのディスクを、最高 7 つのパーティション (ドライブ全体用のパーティション 2 を除くパーティション番号 0、1、3 〜 7) で構成することも、1 つだけのパーティション構成にすることもできます。新しいディスクをどのようにパーティション分割するかは、そのディスクをどのように使用するかによって異なります。パーティションに格納するデータの量やデータが増える速度を考慮し、使用されることのない空き領域としてパーティション全体の大きさの 10% ほどが残るようにしてください。この 10% の空き容量の規則には、例外があります。詳細は、『Solaris のシステム管理』を参照してください。)

製造元によって、あらかじめディスクにパーティションが作成されていることがあります。ただし、記憶空間の使用方法はユーザーごとに異なるため、あらかじめ作成されたパーティションがすべてのユーザーの使用環境に合うわけではありません。その場合は、ディスクのパーティションを分割し直してください。


注意 - 注意 -

ディスクをパーティション分割すると、ディスク上のデータは破壊されます。


  1. スーパーユーザーになり、format ユーティリティーを起動します。

  2. format> プロンプトに対して partition と入力します。

    次のメニューが表示されます。


    format> partition
    PARTITION MENU:
            0      - change `0' partition
            1      - change `1' partition
            2      - change `2' partition
            3      - change `3' partition
            4      - change `4' partition
            5      - change `5' partition
            6      - change `6' partition
            7      - change `7' partition
            select - select a predefined table
            modify - modify a predefined partition table
            name   - name the current table
            print  - display the current table
            label  - write partition map and label to the disk
            !<cmd> - execute <cmd>, then return
            quit
    partition> 

  3. modify と入力します。

    次のメニューが表示されます。


    Select partitioning base:
     0. Default partition for selected drive
     1. Current partition table (original sd3)
     2. All  free Hog 
    Choose base (enter number) [0]? 2
    


    注 -

    表示される内容は、システム構成によって異なります。2.1 GB 以上のディスクドライブ用には、デフォルトのパーティションテーブルはありません。


  4. All free hog に該当する番号を選択します (この例では 2)。

    All Free Hog を選択すると、空のパーティションテーブルによってパーティション分割セッションが開始され、パーティション 2 以外のすべてのパーティション値がゼロに設定されます。これによって、既存のパーティション値によって新しいパーティション値が影響を受けなくなります。

    パーティションベースを選択すると、次のテーブルが表示されます。


    Part      Tag    Flag      Cylinders      Size        Blocks
    0        -      -          0              0         (0/0/0)
    1        -      -          0              0         (00/0/0)
    2        -      -          0 - 1253       198.39MB  (1254/0/0)
    3        -      -          0              0         (0/0/0)
    4        -      -          0              0         (0/0/0)
    5        -      -          0              0         (0/0/0)
    6        -      -          0              0         (0/0/0)
    7        -      -          0              0         (0/0/0)

    これらが、現在のパーティション値です。パーティション 2 の値は、ディスクドライブ全体を表します。パーティション 2 の値を変更しないでください。実際には、変更しようとしても、modify ルーチンによって禁止されます。

  5. y と入力し、次に進みます。


    Do you wish to continue creating a new partition
    table based on above table[yes]? y
    

  6. 8 つのパーティションのうちの 1 つを、free hog パーティションとして選択します。


    Free Hog partition[6]? 6
    

    format ユーティリティーを使用して 1 つまたは複数のディスクパーティションの大きさを変更する場合は、サイズ変更に合わせて拡大したり縮小したりすることができる一時パーティション (free hog) を指定する必要があります。free hog パーティションは、パーティションの拡張では空間を解放し、パーティションの縮小では廃棄された空間を受け取ります。変更セッションの終了時に、指定された free hog パーティションには、空間が残されている必要があります。この free hog パーティションはディスク上の有効なパーティションになります。

    ただし、free hog 指定が存在するのは、そのパーティション分割セッションの間だけです。日常の運用で、恒久的な free hog パーティションが存在することはありません。

    この例では、パーティション 6 が使用されています。free hog として、パーティション 2を指定しないでください。

  7. 表示された大きさを変更することによって、各パーティションの大きさをメガバイト単位で指定します。

    各パーティションの大きさを指定するよう求められます。不要なパーティションには 0 と入力して、空間を割り当てないでください。使用するパーティションには、大きさに続けて mb を入力することによって、メガバイト単位で大きさを指定します。パーティション 2 または free hog パーティションの大きさ (この例ではパーティション 6) の指定を求められることはありません。


    Enter size of partition `0`  [0b, 0c, 0.00mb]: 0
    Enter size of partition `1`  [0b, 0c, 0.00mb]: 0
    Enter size of partition `3`  [0b, 0c, 0.00mb]: 0
    Enter size of partition `4`  [0b, 0c, 0.00mb]: 0
    Enter size of partition `5`  [0b, 0c, 0.00mb]: 0
    Enter size of partition `7`  [0b, 0c, 0.00mb]: 80mb
    

    この例では、大きさは以下の表示のように変更されました。


    Part      Tag    Flag      Cylinders      Size        Blocks
    0        -      -          0              0         (0/0/0)
    1        -      -          0              0         (00/0/0)
    2        -      -          0 - 1253       198.39MB  (1254/0/0)
    3        -      -          0              0         (0/0/0)
    4        -      -          0              0         (0/0/0)
    5        -      -          0              0         (0/0/0)
    6        -      -        0 - 747        118.34MB    (748/0/0)
    7        -      -        748 - 1253     80.05MB     (506/0/0)

    この例では、ディスクは 2 つのパーティション (67) で構成されています。パーティション 2 はディスク全体を表す特殊なパーティションであり、オーバーラップパーティションとも呼ばれます。


    注意 - 注意 -

    パーティション 2 は変更しないでください。パーティション 2 の大きさを小さくすると、利用できるディスク容量が減少します。


  8. 確認し、問題がなければ y と入力します。


    Okay to make this the current partition table [yes]? y
    

  9. 新しく作成したパーティションテーブルの名前を入力します。


    Enter table name (remember quotes): "table1"
    

    この名前は、パーティションテーブルの作成中にその記録を残しておくためにformat ユーティリティーが一時的に使用する名前です。

  10. 新しいパーティションテーブルをディスクラベルに書き込んでもよければ、y と入力します。


    Ready to label disk, continue? y
    

    ラベルは、パーティションテーブルが保管される場所です。n を入力すると、設定したパーティション値は失われ、前のパーティションテーブルが有効になります。

  11. q を入力して partition ルーチンを終了し、再度 q を入力してformat ユーティリティーを終了します。


    partition> q
       .
       .
       .
    format> q
    

ディスクにラベルを付ける

ディスクのラベル付けでは、format ユーティリティー使用して、ディスク上に予約されている特別な領域に情報を書き込みます。この情報を、ディスクラベルまたは VTOC (Volume Table of Contents) といいます。オペレーティングシステムがディスクを使用するには、ディスクにディスクラベルが存在している必要があります。

ディスクラベルには、2 つの重要な情報が含まれます。

ラベルはディスクドライブの製造元によって作成されていることが多いため、通常、パーティション情報の変更で行う必要があるのは、ディスクのラベル付けだけです。 上記のディスクをパーティション分割するの手順に従って modify ルーチンを使用した場合は、ディスクのラベル付けを促すメッセージが表示されるため、この後の手順に従ってラベル付けを行う必要はありません。

ディスク上に、c1t2d0などの有効なラベルを検出できない場合、Solaris オペレーティングシステムは以下のようなメッセージを表示します。


# format
Searching for disks...done

c1t2d0:  configured with capacity of 198 MB
AVAILABLE DISK SELECTIONS:
	0.		c0t3d0 <SUN0207 cyl  1214 alt 2 hd 9 sec 36>
			/sbus@1,f8000000/esp@0,8000000/sd@3,0
	1.		c0t0d0 <SUN0207 cyl  1214 alt 2 hd 9 sec 36>
			/sbus@1,f8000000/esp@0,8000000/sd@0,0
	2.		c1t1d0 <SUN0207 cyl  1214 alt 2 hd 9 sec 36>
			/sbus@1,f8000000/esp@0,8000000/sd@1,0
	3.		c1t2d0 <Unable to read disk label>
			/sbus@1,f8000000/esp@0,8000000/sd@2,0
Specify disk (enter its number):3
 
Selecting c1t2d0
[disk formatted]
Disk not labeled. Label it now? y

有効なラベルのないディスクやラベルのない新しいディスクについては、「configured with capacity」メッセージと「Label it now?」プロンプトが表示されます。

  1. y と入力して、ディスクにラベルを付けます。


    Disk not labeled. Label it now? y
    

ファイルシステムの作成とマウント

以下の作業が完了したら、パーティションにファイルシステムを作成する必要があります。

ファイルシステムを作成するディスクドライブおよびパーティションの論理デバイス名を知る必要があります。論理デバイス名については、付録 A 「SCSI アドレスの概念」を参照してください。


注 -

ファイルシステムの作成を計画しているディスクは、すでにフォーマットとパーティション分割が完了したしたものである必要があります。


ファイルシステムを作成する
  1. スーパーユーザーになります。

  2. newfs コマンドを使用して、パーティションに新しいファイルシステムを作成します。


    # newfs /dev/rdsk/cntndnsn
    


    注意 - 注意 -

    パーティションの正しい論理デバイス名を指定したことを確認してから、パーティションにファイルシステムを作成してください。論理デバイス名を間違って指定すると、指定したパーティションの内容が消去されます。詳細は、論理デバイス名を参照してください。


  3. 確認し、問題がなければ y と入力します。


    newfs: construct a new file system /dev/rdsk/cxtxdxsx (y/n)? y
    

    newfs は、ディスクパーティションに対して、必要なファイルシステム構造と lost+found ディレクトリを作成します。各パーティションについて、これらの手順を繰り返し行ってください。1 つのパーティションには、ファイルシステムを 1 つだけ作成することができます。

ファイルシステムをマウントする

ファイルシステムを作成したら、マウントしてユーザーが利用できるようにする必要があります。マウントされたファイルシステムは、指定されたマウント先 (ディレクトリ) でシステムディレクトリツリーに接続され、システムとユーザーが利用できるようになります。ルートファイルシステムは、常にマウントされています。それ以外のすべてのファイルシステムは、ルート (/) ファイルシステムに接続したり (マウントしたり)、切り離したり (マウント解除したり) することができます。

ファイルシステムをマウントするには、以下の手順に従います。

  1. vi または任意のテキストエディタで /etc/vfstab ファイルを編集します。

    1. 空白文字またはタブで各フィールドを区切って、エントリを追加します。フィールドに値がない場合は、その代わりとしてダッシュ (-) を入力します。フィールドは 7 つあり、どのフィールドも省略することはできません。


      #device      device       mount        FS   fsck    mount   mount
      #to mount    to fsck      point        type pass    at boot options
      #
      #/dev/dsk/c1d0s2 /dev/rdsk/c1d0s2 /usr  ufs  1      yes     -
      fd      -       /dev/fd fd      -       no      -
      /proc   -       /proc   proc    -       no      -
      /dev/dsk/c0t0d0s1       -       -       swap    -    no      -
      /dev/dsk/c0t0d0s0    /dev/rdsk/c0t0d0s0      /   ufs     1 no -
      swap    -       /tmp   tmpfs   -       yes     -
      /dev/dsk/c0t1d0s6  /dev/rdsk/c0t1d0s6   /abc   ufs   2    yes     -
      /dev/dsk/c0t1d0s7  /dev/rdsk/c0t1d0s7   /def   ufs   2    yes     -
      


      注意 - 注意 -

      このシステム構成ファイルを編集するときは注意してください。フィールドの列が揃っていないため、非常に間違えやすくなっています。システムは、起動時と、mount および fsck コマンドの実行時にこのファイルを読み取ります。このファイルに誤りがあると、これらのコマンドの実行は失敗し、システムが正しく構成されないことがあります。


      この例では、新しいファイルシステムのそれぞれに 1 行づつ、2 行が末尾に追加されています。各フィールドの意味を以下の表に示します。

      表 2-1 /etc/vfstab のフィールド

      フィールド 

      フィールドの見出し 

      説明 

      device to mount

      マウントするファイルシステムの論理デバイス名を指定します。通常、このデバイス名は、/dev/dsk ディレクトリから始まります。

      device to fsck

      fsck で処理するデバイスの論理デバイス名を指定します。通常、このデバイス名は /dev/rdsk ディレクトリから始まります。

      mount point

      ファイルシステムのマウント先として使用するディレクトリを指定します。 

      FS type

      ファイルシステムの種類を指定します。通常、ローカルファイルシステムには、ufs を指定します。

      fsck pass

      fsck の実行方法を制御する値を指定します。

      1 = 一覧に示されている順に 1 つずつファイルシステムに対して fsck を実行します。

      2 = ファイルシステムに対して同時に fsck を実行します。

      - = fsck を実行しません。

      mount at boot

      yes または no を指定します。

      yes = 起動時および muntall コマンドの実行時、このファイルシステムをマウントします。

      no = 起動時および muntall コマンドの実行時、このファイルシステムをマウントしません。

      mount options

      マウントオプションを空白文字ではなくコンマで区切って指定します。マウントオプションなしの場合は、ハイフン (-) を入力します。

    2. 修正した /etc/vfstab ファイルを保存します。


    注 -

    /etc/vfstab ファイルへのエントリの書き込みについての詳細は、マニュアルページの (4) ファイル形式と『Solaris のシステム管理 (第 1 巻)』を参照してください。


  2. マウント先として使用するディレクトリを作成します。


    # mkdir /abc /def
    

    マウント先のディレクトリは、ファイルシステムをマウントする前に作成する必要があります。この例では、マウント先 (ディレクトリ) を 2 つ (/abc/def) 作成しています。

  3. 以下のように入力します。


    # mount /abc /def
    

    mount コマンドは、これらのファイルシステムの /etc/vfstab エントリを読み取り、その内容に従ってファイルシステムをマウントします。/etc/vfstab ファイルは、システムを起動するたびに読み取られ、新しいものも含めて、適切なファイルシステムがマウントされます。


    注 -

    スワップ領域や、マウントを解除して使用しないパーティションは、マウントしないでください。


  4. df コマンドを使用して、すべてのファイルシステムがマウントされたことを確認します。


    # df -k
    Filesystem            kbytes    used   avail capacity  Mounted on
    /dev/dsk/c0t0d0s0    1759982  779007  975109    45%    /
    /proc                      0       0       0     0%    /proc
    fd                         0       0       0     0%    /dev/fd
    swap                  217808     384  217424     1%    /tmp
    /dev/dsk/c0t1d0s6     118344	       4  118340	     0%    /abc
    /dev/dsk/c0t1d0s7      80059	       4   80055     0%    /def

  1. ファイルシステムをマウント解除するには、umount コマンドを使用します。


    # umount /abc
    

    ファイルシステムをマウントしたり、マウント解除するには、スーパーユーザーになる必要があります。

    / および /usr ファイルシステムをマウント解除することはできません。

    現在の作業ディレクトリがマウント解除しようとするファイルシステムの中に存在している場合は、cd で別のディレクトリに切り替えてください。この操作をしなかった場合、「デバイスが使用中」であることを示すメッセージが表示されます。