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

第 11 章 ディスクの管理 (手順)

この章では、ディスク管理の手順について説明します。Oracle Solaris OS 上でディスクを管理する方法に精通している場合は、この章で説明する多くの内容を読み飛ばすことができます。

ディスク管理に関連した手順の詳細は、「ディスクの管理 (作業マップ)」を参照してください。

ディスク管理の概要については、第 10 章ディスクの管理 (概要)を参照してください。

ディスクの管理 (作業マップ)

作業 

説明 

参照先 

システム上のディスクを確認します。 

システム上のディスクの種類がわからない場合は、format ユーティリティーを使用して確認します。

「システム上のディスクを確認する方法」

ディスクをフォーマットします。 

format ユーティリティーを使用して、ディスクがフォーマット済みかどうかを判断します。

「ディスクがフォーマット済みかを調べる方法」

 

ほとんどの場合、ディスクはフォーマット済みです。フォーマットする必要があれば、format を使用します。

「ディスクをフォーマットする方法」

スライス情報を表示します。 

format ユーティリティーを使用してスライス情報を表示します。

「ディスクスライス情報を表示する方法」

ディスクラベルの作成 

format ユーティリティーを使用してディスクラベルを作成します。

「ディスクラベルを作成する方法」

ディスクラベルを検査します。 

prtvtoc コマンドを使用してディスクラベルを検査します。

「ディスクラベルを検査する方法」

破損したディスクラベルを復元します。 

システム障害または電源障害のために破損したディスクラベルの復元を試みます。 

「破損したディスクラベルを復元する方法」

format.dat のエントリを作成します。

他社製のディスクをサポートするために format.dat のエントリを作成します。

format.dat のエントリを作成する方法」

SCSI ディスクを自動構成します。 

特定のドライブタイプが /etc/format.dat ファイルに記載されていない場合でも、ディスクデバイスモードセンスページの SCSI-2 仕様を利用して 、SCSI ディスクを自動構成できます。

「SCSI ドライブを自動構成する方法」

欠陥ディスクセクターを検出します。 

format ユーティリティーを使用して欠陥ディスクセクターを調べます。

「表面解析を使用して欠陥セクターを調べる方法」

欠陥ディスクセクターを修復します (必要な場合)。 

format ユーティリティーを使用して欠陥ディスクセクターを修復します。

「欠陥セクターを修復する方法」

システム上のディスクの確認

format ユーティリティーを使用して、システムに接続されているディスクの種類を調べます。また、format ユーティリティーを使用して、ディスクがシステムに認識されるかどうかを検査することもできます。format ユーティリティーの使用方法の詳細は、第 15 章format ユーティリティー (参照情報)を参照してください。

Procedureシステム上のディスクを確認する方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. format ユーティリティーを使用して、システム上で認識されるディスクを確認します。


    # format
    

    format ユーティリティーは、AVAILABLE DISK SELECTIONS という見出しの下に、認識されるディスクのリストを表示します。


例 11–1 システム上のディスクを確認する

次に、単一のディスクが搭載されたシステムで format コマンドを実行したときの出力例を示します。


# format
AVAILABLE DISK SELECTIONS:
 0. c0t1d0 <FUJITSU  MAN3367M SUN36G  1804 43d671f>
    /pci@1f,0/pci@1,1/scsi@2/sd@1,0

ディスクの物理デバイス名と論理デバイス名は、括弧 <> 内の商品名に対応しています。次の例を参照してください。この方法では、どの論理デバイス名がシステムに接続されたディスクを表しているかをすぐに識別できます。論理デバイス名と物理デバイス名については、「デバイス名の命名規則」を参照してください。

次の例では、ワイルドカードを使用して、追加コントローラに接続された 4 つのディスクを表示します。


# format /dev/rdsk/c2*
AVAILABLE DISK SELECTIONS:
       0. /dev/rdsk/c2t10d0s0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>
          /sbus@3,0/SUNW,fas@3,8800000/sd@a,0
       1. /dev/rdsk/c2t11d0s0 <SUN9.0G cyl 4924 alt 2 hd 27 sec 133>
          /sbus@3,0/SUNW,fas@3,8800000/sd@b,0
       2. /dev/rdsk/c2t14d0s0 <SUN18G cyl 7506 alt 2 hd 19 sec 248>
          /sbus@3,0/SUNW,fas@3,8800000/sd@e,0
       3. /dev/rdsk/c2t15d0s0 <SUN18G cyl 7506 alt 2 hd 19 sec 248>
          /sbus@3,0/SUNW,fas@3,8800000/sd@f,0
Specify disk (enter its number): 

次の例では、SPARC システム上のディスクを確認する方法を示します。


# format
0. c0t1d0 <FUJITSU  MAN3367M SUN36G  1804 43d671f>
   /pci@1f,0/pci@1,1/scsi@2/sd@1,0
Specify disk (enter its number): 

出力から、ディスク 0 (ターゲット 1) が 2 番目の SCSI ホストアダプタ (scsi@2) に接続され、この 2 番目の SCSI ホストアダプタが 2 番目の PCI インタフェース (/pci@1f0/pci@1,1...) に接続されていることがわかります。物理デバイス名と論理デバイス名は、ディスクの商品名 SUN36G に対応しています。

次の例では、x86 システム上のディスクを確認する方法を示します。


# format
AVAILABLE DISK SELECTIONS:
 0. c0d0 <DEFAULT cyl 615 alt 2 hd 64 sec 63>
     /pci@0,0/pci-ide@7,1/ata@0/cmdk@0,0
 1. c0d1 <DEFAULT cyl 522 alt 2 hd 32 sec 63>
     /pci@0,0/pci-ide@7,1/ata@0/cmdk@1,0
 2. c1d0 <DEFAULT cyl 817 alt 2 hd 256 sec 63>
     /pci@0,0/pci-ide@7,1/ata@1/cmdk@0,0
Specify disk (enter its number):  

出力から、ディスク 0 が最初の PCI ホストアダプタ (pci-ide@7...) に接続され、このアダプタが ATA インタフェース (ata...) に接続されていることがわかります。x86 ベースのシステムで、format の出力にディスクの商品名が含まれていない場合、次に示す手順に従って format ユーティリティーの type および label 機能を使用して、ディスクの商品名を含めることができます。

次に示す手順は、ディスクまたはシステムがアクティブでない状態で (つまり、インストール DVD またはネットワークからブートして) 実行する必要があります。また、手順の最後でディスクにラベルを付け直すことで、既存パーティションの情報やデータをすべて削除できます。


# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c1t0d0 <DEFAULT cyl 49779 alt 2 hd 4 sec 720>
          /pci@0,0/pci1022,7450@a/pci17c2,10@4/sd@0,0
       1. c1t1d0 <DEFAULT cyl 8921 alt 2 hd 255 sec 63>
          /pci@0,0/pci1022,7450@a/pci17c2,10@4/sd@1,0
       2. c2t1d0 <SEAGATE-ST318404LSUN18G-4203-16.87GB>
          /pci@0,0/pci1022,7450@b/pci1000,10c0@1/sd@1,0
       3. c2t2d0 <SEAGATE-ST318404LSUN18G-4203-16.87GB>
          /pci@0,0/pci1022,7450@b/pci1000,10c0@1/sd@2,0
.
.
.
Specify disk (enter its number): 7
selecting c2t6d0
[disk formatted]
format> type
AVAILABLE DRIVE TYPES:
        0. Auto configure
        1. other
Specify disk type (enter its number)[1]: 0
c2t6d0: configured with capacity of 16.87GB
<IBM-DDYST1835SUN18G-S94N-16.87GB>
selecting c2t6d0
[disk formatted]
format> label
Ready to label disk, continue? yes
format> disk

AVAILABLE DISK SELECTIONS:
       0. c1t0d0 <DEFAULT cyl 49779 alt 2 hd 4 sec 720>
          /pci@0,0/pci1022,7450@a/pci17c2,10@4/sd@0,0
       1. c1t1d0 <DEFAULT cyl 8921 alt 2 hd 255 sec 63>
.
.
.
       7. c2t6d0 <IBM-DDYST1835SUN18G-S94N-16.87GB>
          /pci@0,0/pci1022,7450@b/pci1000,10c0@1/sd@6,0

format ユーティリティーがディスクを認識しない場合

ディスクのフォーマット

多くの場合、ディスクは製造元または再販業者によってフォーマットされています。通常は再フォーマットしなくてもドライブを取り付けることができます。

次の作業の前にディスクをフォーマットしておかなければなりません。


注意 – 注意 –

フォーマットは、ディスク上のデータを上書きする、破壊的なプロセスです。このため、通常は製造元や再販業者のみがディスクをフォーマットします。ディスクに欠陥があるために問題が再発していると思われる場合は、format ユーティリティーを使用して表面解析を実行できますが、データを破壊しないコマンドだけを使用するように注意してください。


Procedureディスクがフォーマット済みかを調べる方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

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


    # format
    

    番号付きのディスクのリストが表示されます。

  3. 確認するディスクの番号を入力します。


    Specify disk (enter its number): 0
    
  4. ディスクがフォーマット済みかを調べます。選択したディスクがフォーマット済みであれば、次のメッセージが表示されます。


    [disk formatted]

例 11–2 ディスクがフォーマット済みかを調べる

次の例は、ディスク c1t0d0 がフォーマット済みであることを示しています。


# format /dev/rdsk/c1*
AVAILABLE DISK SELECTIONS:
       0. /dev/rdsk/c1t0d0s0 <SUN18G cyl 7506 alt 2 hd 19 sec 248>
          /sbus@2,0/QLGC,isp@2,10000/sd@0,0
       1. /dev/rdsk/c1t1d0s0 <SUN18G cyl 7506 alt 2 hd 19 sec 248>
          /sbus@2,0/QLGC,isp@2,10000/sd@1,0
       2. /dev/rdsk/c1t8d0s0 <SUN18G cyl 7506 alt 2 hd 19 sec 248>
          /sbus@2,0/QLGC,isp@2,10000/sd@8,0
       3. /dev/rdsk/c1t9d0s0 <SUN18G cyl 7506 alt 2 hd 19 sec 248>
          /sbus@2,0/QLGC,isp@2,10000/sd@9,0
Specify disk (enter its number): 0
selecting /dev/rdsk/c1t0d0s0
[disk formatted]

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

  1. スーパーユーザーになるか、同等の役割を引き受けます。

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


    # format
    

    番号付きのディスクのリストが表示されます。

  3. フォーマットするディスクの番号を入力します。


    Specify disk (enter its number): 0
    

    注意 – 注意 –

    システムディスクを選択しないでください。システムディスクをフォーマットすると、OS やシステムディスク上のデータがすべて削除されます。


  4. ディスクのフォーマットを開始するには、format> プロンプトで format と入力します。y と入力してコマンドを確認します。


    format> format
    Ready to format.  Formatting cannot be interrupted
    and takes 23 minutes (estimated). Continue? yes
    
  5. フォーマットが正常に行われたことを、次のメッセージによって確認します。


    Beginning format. The current time Tue ABC xx xx:xx:xx xxxx
    
    Formatting...
    done
    
    Verifying media...
            pass 0 - pattern = 0xc6dec6de
       2035/12/18  
    
            pass 1 - pattern = 0x6db6db6d
       2035/12/18  
    
    Total of 0 defective blocks repaired.
  6. format ユーティリティーを終了します。


    format> quit
    

例 11–3 ディスクのフォーマット

次の例は、ディスク c0t6d0 のフォーマット方法を示します。


# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c0t0d0 <SUNW18G cyl 7506 alt 2 hd 19 sec 248
          /pci@1f,0/pci@1,1/scsi@2/sd@0,0
       1. c0t1d0 <FUJITSU  MAN3367M SUN36G  1804 43d671f>
          /pci@1f,0/pci@1,1/scsi@2/sd@1,0
       2. c0t2d0 <FUJITSU  MAN3367M SUN36G  1804 43d671f>
          /pci@1f,0/pci@1,1/scsi@2/sd@2,0
       3. c0t3d0 <FUJITSU  MAN3367M SUN36G  1804 43d671f>
          /pci@1f,0/pci@1,1/scsi@2/sd@3,0
       4. c0t4d0 <FUJITSU  MAN3367M SUN36G  1804 43d671f>
          /pci@1f,0/pci@1,1/scsi@2/sd@4,0
       5. c0t5d0 <FUJITSU  MAN3367M SUN36G  1804 43d671f>
          /pci@1f,0/pci@1,1/scsi@2/sd@5,0
       6. c0t6d0 <FUJITSU  MAN3367M SUN36G  1804 43d671f>
          /pci@1f,0/pci@1,1/scsi@2/sd@6,0
Specify disk (enter its number): 6
selecting c0t6d0
[disk formatted]
format> format
Ready to format.  Formatting cannot be interrupted
and takes 332 minutes (estimated). Continue? y
Beginning format. The current time is Mon Jul 12 10:52:10 2010
Formatting...
Verifying media...
Total of 0 defective blocks repaired.
format> quit

ディスクスライスの表示

format ユーティリティーを使用すると、ディスクに適切なディスクスライスがあるかどうかを検査できます。使用するスライスがディスクに入っていないことが判明した場合は、format ユーティリティーを使用してスライスを作成し直し、ディスクにラベルを付けます。ディスクスライスの作成方法については、「SPARC: ディスクスライスとディスクラベルを作成する方法」または 「x86: ディスクスライスとディスクラベルを作成する方法」を参照してください。


注 –

format ユーティリティーでは、「スライス」ではなく「パーティション」という用語を使用します。


Procedureディスクスライス情報を表示する方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

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


    # format
    

    番号付きのディスクのリストが表示されます。

  3. スライス情報を表示するディスクの番号を入力します。


    Specify disk (enter its number):1
    
  4. partition メニューを選択します。


    format> partition 
    
  5. 選択されたディスクのスライス情報が表示されます。


    partition> print
    
  6. format ユーティリティーを終了します。


    partition> q
    format> q
    #
  7. 特定のスライスのタグとサイズについてスライス情報が表示されることを確認します。

    画面の出力に、スライスサイズが割り当てられていないことが示された場合は、ディスクにスライスがないものと思われます。


例 11–4 ディスクスライス情報を表示する

次に示すのは、VTOC ラベル付きディスクのスライス情報を表示する例です。


# format
Searching for disks...done
Specify disk (enter its number):1
Selecting c0t0d0
format> partition
partition> print
Current partition table (original):
Total disk cylinders available: 8892 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders        Size            Blocks
  0       root    wm    1110 - 4687        1.61GB    (0/3578/0) 3381210
  1       swap    wu       0 - 1109      512.00MB    (0/1110/0) 1048950
  2     backup    wm       0 - 8891        4.01GB    (0/8892/0) 8402940
  3 unassigned    wm       0               0         (0/0/0)          0
  4 unassigned    wm       0               0         (0/0/0)          0
  5 unassigned    wm       0               0         (0/0/0)          0
  6 unassigned    wm       0               0         (0/0/0)          0
  7       home    wm    4688 - 8891        1.89GB    (0/4204/0) 3972780
partition> q
format> q
#

これらの例のスライス情報の詳細は、第 10 章ディスクの管理 (概要)を参照してください。

次に示すのは、EFI ラベル付きディスクのスライス情報を表示する例です。


# format
Searching for disks...done
Specify disk (enter its number): 9
selecting c4t1d0
[disk formatted]
format> partition
partition> print
Current partition table (original):
partition> q
format> q
Part      Tag    Flag     First Sector          Size          Last Sector
  0       root    wm                34       300.00GB           629145633
  1        usr    wm         629145634       300.00GB           1258291233
  2 unassigned    wm                 0            0                0    
  3 unassigned    wm                 0            0                0    
  4 unassigned    wm                 0            0                0    
  5 unassigned    wm                 0            0                0    
  6        usr    wm        1258291234       628.77GB           2576924637
  8   reserved    wm        2576924638         8.00MB           2576941021    

ディスクラベルの作成と検査

一般に、ディスクにラベルを付ける操作は、システムのインストール時、または新しいディスクスライスを作成するときに行います。ディスクラベルが破損したときは、新しくラベルを付け直す必要があります。ディスクラベルの破損は、電源障害が発生した場合などに起こります。

format ユーティリティーは、ラベルが付いていない SCSI ディスクを自動構成しようとします。format ユーティリティーがラベルの付いていないディスクを自動構成できる場合、次のようなメッセージが表示されます。


	c0t0d1: configured with capacity of 4.00GB

ヒント –

複数のディスクに同じディスクラベルを付ける方法については、prtvtocfmthard コマンドを使用して複数のディスクにラベルを付ける」を参照してください。


Procedureディスクラベルを作成する方法

次の処理を行う手順について説明します。

2T バイト未満のディスクに EFI ラベルを付ける方法については、例 11–6 を参照してください。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

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


    # format
    

    番号付きのディスクのリストが表示されます。

  3. ラベルを付けたいディスクの番号を入力します。


    Specify disk (enter its number):1
    

    format ユーティリティーでディスクタイプが認識されたら、次の手順はバックアップラベルを検索 してディスクにラベルを付けることです。バックアップラベルを使用してディスクにラベルを付けると、ディスクタイプとジオメトリだけでなく、正しいパーティション情報を使用してディスクラベルが作成されます。

  4. 次のいずれかの方法を選択して、ディスクにラベルを付けます。

    • ディスクが正常に構成されていて、ラベルが付いていない場合は、手順 5 に進みます。

      format ユーティリティーにより、ディスクラベルを付けるかを尋ねるプロンプトが表示されます。

    • ラベル付きディスクのディスクタイプを変更する場合、またはこのディスクを format ユーティリティーで自動構成できなかった場合は、手順 6 に進んでディスクタイプを設定し、ラベルを付けます。

  5. Label it now? プロンプトで y と入力して、ディスクにラベルを付けます。


    Disk not labeled. Label it now? y
    

    これでディスクラベルが作成されました。手順 10 に進んで format ユーティリティーを終了します。

  6. format> プロンプトで type と入力します。


    format> type
    

    Available Drive Types メニューが表示されます。

  7. ディスクタイプの候補のリストからディスクタイプを選択します。


    Specify disk type (enter its number)[12]: 12
    

    または、0 を選択して SCSI-2 ディスクを自動構成します。詳細は、「SCSI ドライブを自動構成する方法」を参照してください。

  8. ディスクラベルの作成ディスクにラベルが付いていない場合は、次のメッセージが表示されます。


    Disk not labeled. Label it now? y
    

    ディスクラベルが付いている場合は、次のメッセージが表示されます。


    Ready to label disk, continue? y
    
  9. ディスクラベルを検査します。


    format> verify 
    
  10. format ユーティリティーを終了します。


    format> q
    #

例 11–5 ディスクラベルを作成する

次の例では、1.05G バイトのディスクを自動構成してラベルを付ける方法を示します。


# format
	c1t0d0: configured with capacity of 1002.09MB
 
AVAILABLE DISK SELECTIONS:
	  0. c0t3d0 <SUN1.05 cyl 2036 alt 2 hd 14 sec 72>
     /iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000/sd@1,0
	  1. c1t0d0 <SUN1.05 cyl 2036 alt 2 hd 14 sec 72>
     /iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000/sd@1,0
Specify disk (enter its number): 1
Disk not labeled.  Label it now?  yes
format> verify
format> q
#


例 11–6 2T バイト以下のサイズのディスクに EFI ラベルを付ける

次に、format -e コマンドを使って、2T バイト以下のディスクに EFI ラベルを付ける例を示します。階層化されたソフトウェア製品が EFI ラベル付きディスクのシステムでも動作することを確認しておいてください。EFI ラベルの一般的な制限事項については、「EFI ディスクラベルの制限」を参照してください。


# format -e
Searching for disks...done
AVAILABLE DISK SELECTIONS:
       1. c1t0d0 <SUNW18g cyl 7506 alt 2 hd 19 sec 248>
          /sbus@2,0/QLGC,isp@2,10000/sd@0,0
       2. c1t1d0 <SUNW18g cyl 7506 alt 2 hd 19 sec 248>
          /sbus@2,0/QLGC,isp@2,10000/sd@1,0
       3. c1t8d0 <SUNW18g cyl 7506 alt 2 hd 19 sec 248>
          /sbus@2,0/QLGC,isp@2,10000/sd@8,0
       4. c1t9d0 <SUNW18g cyl 7506 alt 2 hd 19 sec 248>
          /sbus@2,0/QLGC,isp@2,10000/sd@9,0
Specify disk (enter its number): 4
selecting c1t9d0
[disk formatted]
format> label
[0] SMI Label
[1] EFI Label
Specify Label type[0]: 1
Ready to label disk, continue? yes
format> quit

Procedureディスクラベルを検査する方法

ディスクラベル情報の検査には、prtvtoc コマンドを使用します。ディスクラベルと prtvtoc コマンドの出力結果の詳しい説明については、第 10 章ディスクの管理 (概要)を参照してください。

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. ディスクラベル情報を表示します。


    # prtvtoc /dev/rdsk/device-name
    

    device-name には、検査する raw ディスクデバイスを指定してください。


例 11–7 ディスクラベルを検査する

次に示すのは、VTOC ラベル付きディスクのディスクラベル情報を表示する例です。


# prtvtoc /dev/rdsk/c0t0d0s0
* /dev/rdsk/c0t0d0s0 partition map
*
* Dimensions:
*     512 bytes/sector
*      63 sectors/track
*      15 tracks/cylinder
*     945 sectors/cylinder
*    8894 cylinders
*    8892 accessible cylinders
*
* Flags:
*   1: unmountable
*  10: read-only
*
*                          First     Sector    Last
* Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
       0      2    00    1048950   3381210   4430159   /
       1      3    01          0   1048950   1048949
       2      5    00          0   8402940   8402939
       7      8    00    4430160   3972780   8402939   /export/home

次に示すのは、EFI ラベル付きディスクのディスクラベル情報を表示する例です。


# prtvtoc /dev/rdsk/c3t1d0s0
* /dev/rdsk/c3t1d0s0 partition map
*
* Dimensions:
*     512 bytes/sector
* 2479267840 sectors
* 2479267773 accessible sectors
*
* Flags:
*   1: unmountable
*  10: read-only
*
*                          First      Sector       Last
* Partition  Tag  Flags    Sector     Count        Sector  Mount Directory
       0      2    00          34      262144      262177
       1      3    01      262178      262144      524321
       6      4    00      524322  2478727100  2479251421
       8     11    00  2479251422       16384  2479267805

破損したディスクラベルの復元

電源障害やシステム障害が原因で、ディスクが認識されなくなることがあります。ただし、ディスクラベルが破損しても、スライス情報やディスクのデータを作り直したり、復元したりする必要がない場合もあります。

破損したディスクラベルを復元する作業の最初の手順は、正しいジオメトリとディスクタイプ情報を使用してディスクにラベルを付けることです。この作業は、通常のディスクラベル作成方法 (自動構成またはディスクタイプの手動指定) で実行できます。

format ユーティリティーでディスクタイプが認識されたら、次の手順はバックアップラベルを検索 してディスクにラベルを付けることです。バックアップラベルを使用してディスクにラベルを付けると、ディスクタイプとジオメトリだけでなく、正しいパーティション情報を使用してディスクラベルが作成されます。

Procedure破損したディスクラベルを復元する方法

  1. システムをシングルユーザーモードにします。

    必要であれば、シングルユーザーモードでローカルの Solaris DVD またはネットワークからシステムをブートして、ディスクにアクセスします。

    システムのブートについては、『Solaris のシステム管理 (基本編)』の第 12 章「Oracle Solaris システムのブート (手順)」または 『Solaris のシステム管理 (基本編)』「GRUB を使用して x86 システムをブートする (作業マップ)」を参照してください。

  2. ディスクにラベルを付け直します。


    # format
    

    format ユーティリティーは、ラベルが付いていない SCSI ディスクを自動構成しようとします。破損し、ラベルが付いていないディスクを自動構成できる場合は、次のメッセージが表示されます。


    cwtxdy: configured with capacity of abcMB

    次に、システム上のディスクの番号付きリストが表示されます。

  3. 復元するディスクの番号を入力します。


    Specify disk (enter its number): 1
    
  4. 次のいずれかを選択して、ディスクラベルの作成方法を決定します。

    • ディスクが正常に構成された場合は、手順 5 と 6 を実行します。次に、手順 12 に進みます。

    • ディスクが正常に構成されなかった場合は、手順 7 - 11 を実行します。次に、手順 12 に進みます。

  5. バックアップラベルを検索します。


    format> verify
    Warning: Could not read primary label.
    Warning: Check the current partitioning and 'label' the disk or 
    use the 'backup' command.
    Backup label contents:
    Volume name = <        >
    ascii name  = <SUN1.05 cyl 2036 alt 2 hd 14 sec 72>
    pcyl        = 2038
    ncyl        = 2036
    acyl        =    2
    nhead       =   14
    nsect       =   72
    Part      Tag    Flag     Cylinders        Size            Blocks
      0       root    wm       0 -  300      148.15MB    (301/0/0)   303408
      1       swap    wu     301 -  524      110.25MB    (224/0/0)   225792
      2     backup    wm       0 - 2035     1002.09MB    (2036/0/0) 2052288
      3 unassigned    wm       0               0         (0/0/0)          0
      4 unassigned    wm       0               0         (0/0/0)          0
      5 unassigned    wm       0               0         (0/0/0)          0
      6        usr    wm     525 - 2035      743.70MB    (1511/0/0) 1523088
      7 unassigned    wm       0               0         (0/0/0)          0
  6. format ユーティリティーがバックアップラベルを検出することができ、その内容が適切な場合は、backup コマンドを実行して、ディスクにバックアップラベルを付けます。


    format> backup
    Disk has a primary label, still continue? y
     
    Searching for backup labels...found.
    Restoring primary label

    これで、ディスクラベルが復元されました。手順 12 へ進みます。

  7. format ユーティリティーでディスクを自動構成できなかった場合は、type コマンドを使用してディスクタイプを指定します。


    format> type
    

    Available Drives Type メニューが表示されます。

  8. ディスクを自動構成するには、0 を選択します。または、ディスクタイプの候補のリストからディスクタイプを選択します。


    Specify disk type (enter its number)[12]: 12
    
  9. ディスクが正常に自動構成された場合は、ディスクラベルを作成するかどうか尋ねるプロンプトが表示されたときに no と応答します。


    Disk not labeled.  Label it now?  no
    
  10. verify コマンドを使用してバックアップラベルを検索します。


    format> verify
    Warning: Could not read primary label.
    Warning: Check the current partitioning and 'label' the disk
    or use the 'backup' command.
    .
    .
    .
  11. format ユーティリティーがバックアップラベルを検出することができ、その内容が適切な場合は、backup コマンドを実行して、ディスクにバックアップラベルを付けます。


    format> backup
    Disk has a primary label, still continue? y
    Searching for backup labels...found.
    Restoring primary label

    これで、ディスクラベルが復元されました。

  12. format ユーティリティーを終了します。


    format> q
    
  13. fsck コマンドを使用して、復元されたディスク上のファイルシステムを確認します。

    fsck コマンドの使用方法については、第 21 章UFS ファイルシステムの整合性検査 (手順)を参照してください。

他社製のディスクの追加

Solaris OS では、他社製の多数のディスクがサポートされます。ただし、これらのディスクを認識させるためには、デバイスドライバか format.dat のエントリのいずれか 1 つ、またはその両方を追加しなければならない場合があります。ディスク追加時のその他のオプションを次に示します。

他社製のディスクが標準の SunOS 互換デバイスドライバで機能するように設計されている場合は、適切な format.dat エントリを作成するだけで、ディスクは format ユーティリティーに認識されるはずです。それ以外の場合は、そのディスクをサポートするために他社製のデバイスドライバをロードする必要があります。


注 –

Sun の format ユーティリティーが他社製のどのディスクドライバでも正常に機能するとは限りません。ディスクドライバに Solaris の format ユーティリティーとの互換性がない場合は、ディスクドライブのベンダーが独自のディスクフォーマットプログラムを提供しているはずです。


ここでは、ソフトウェアサポートのいずれかが不足している場合に必要な作業について説明します。一般に、format ユーティリティーを起動し、ディスクタイプが認識されないなどという場合に、不足しているソフトウェアサポートがあることがわかります。

この節の説明に従って、不足しているソフトウェアを追加します。その後、第 12 章SPARC: ディスクの追加 (手順)または第 13 章x86: ディスクの追加 (手順)を参照して、システムディスクまたは二次ディスクを構成します。

format.dat のエントリの作成

認識されないディスクは、そのディスクのジオメトリと運用パラメータに関する正確な情報がなければフォーマットできません。この情報は、/etc/format.dat ファイル内で指定します。


注 –

SCSI-2 ディスクには format.dat のエントリは不要です。再構成ブート時にディスクに電源が投入されていれば、format ユーティリティーは SCSI-2 ドライバを自動的に構成します。SCSI ディスクドライブを自動構成する手順については、「SCSI ドライブを自動構成する方法」を参照してください。


ディスクが認識されない場合は、テキストエディタを使用して format.dat にディスクのエントリを作成します。作業を始める前に、ディスクとそのコントローラに関連するすべての技術仕様を収集する必要があります。この情報はディスクと一緒に提供されているはずです。提供されない場合は、ディスク製造元または購入先に問い合わせてください。

Procedureformat.dat のエントリを作成する方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. /etc/format.dat ファイルのコピーを作成します。


    # cp /etc/format.dat /etc/format.dat.gen
    
  3. /etc/format.dat ファイルに他社製のディスクのエントリを追加します。

    第 15 章format ユーティリティー (参照情報)で説明している format.dat 情報を参照してください。

    また、ディスクのハードウェア製品マニュアルを参照して、必要な情報を収集してください。

SCSI ディスクドライブの自動構成

/etc/format.dat ファイルに特定のドライブタイプが含まれていない場合でも、format ユーティリティーは SCSI ディスクドライブを自動的に構成します。この機能を使って、ディスクデバイスモードセンスページのために、SCSI-2 仕様に準拠するディスクドライブをフォーマットしたり、スライスを作成したり、ラベルを付けたりできます。

次のような方法でも、ディスクを追加できます。

自動構成を使用して SCSI ドライブを構成する場合、次の手順を実行します。

再構成ブートを実行した後に、format ユーティリティーを呼び出すと、format はディスクを構成しようとします。成功すると、ディスクが構成されたことを示すメッセージを表示します。SCSI ディスクドライブを自動構成する手順については、「SCSI ドライブを自動構成する方法」を参照してください。

1.3G バイトの SCSI ディスクドライブに関して、format ユーティリティーが表示するパーティションテーブルの例を、次に示します。


Part    Tag    Flag     Cylinders     Size        Blocks
   0     root    wm       0 -   96    64.41MB      (97/0/0)
   1     swap    wu      97 -  289   128.16MB     (193/0/0)
   2   backup    wu       0 - 1964     1.27GB    (1965/0/0)
   6      usr    wm     290 - 1964     1.09GB    (1675/0/0)

ProcedureSCSI ドライブを自動構成する方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. システムのブート時に読み込まれる /reconfigure ファイルを作成します。


    # touch /reconfigure
    
  3. システムをシャットダウンします。


    # shutdown -i0 -gn -y
    
    -i0

    システムを init レベル 0 (電源切断) にします。

    -gn

    ログインしているユーザーに、n 秒後にシステムのシャットダウンを開始することを通知します。

    -y

    ユーザーの介入なしでコマンドを実行するように指定します。

    システムのシャットダウン後に、ok プロンプトが表示されます。

  4. システムとすべての外部周辺デバイスの電源を切ります。

  5. 追加しようとするディスクに、システム上のほかのデバイスとは異なるターゲット番号が設定されているかどうかを確認します。

    通常、ディスクの裏側には、このための小さいスイッチがあります。

  6. ディスクをシステムに接続して、その物理的接続を確認します。

    詳細は、ディスクのハードウェアインストールガイドを参照してください。

  7. すべての外部周辺デバイスの電源を入れます。

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

    システムがブートし、ログインプロンプトが表示されます。

  9. スーパーユーザーになるか、同等の役割を引き受けて、再度ログインします。

  10. format ユーティリティーを起動して、自動構成するディスクを選択します。


    # format
    Searching for disks...done
    c1t0d0: configured with capacity of 1002.09MB
    AVAILABLE DISK SELECTIONS:
    0. c0t1d0 <SUN1.05 cyl 2036 alt 2 hd 14 sec 72>
       /iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000/sd@1,0
    1. c0t3d0 <SUN1.05 cyl 2036 alt 2 hd 14 sec 72>
       /iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000/sd@3,0
    Specify disk (enter its number): 1
    
  11. ディスクにラベルを付けるかどうかを確認するプロンプトが表示されたら、yes と入力します。

    y と入力すると、SCSI 自動構成機能により、ディスクラベルの生成およびディスクへの書き込みが実行されます。


    Disk not labeled. Label it now? y
    
  12. ディスクラベルを検査します。


    format> verify
    
  13. format ユーティリティーを終了します。


    format> q
    

欠陥セクターの修復

システム上のディスクに欠陥セクターが存在する場合は、次の手順に従って修復できます。欠陥セクターを発見するのは次のような場合です。

Procedure表面解析を使用して欠陥セクターを調べる方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

  2. 欠陥セクターの存在するスライス内のファイルシステムをマウント解除します。


    # umount /dev/dsk/device-name
    

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

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


    # format
    
  4. 調べるディスクを選択します。


    Specify disk (enter its number):1
    selecting c0t2d0:
    [disk formatted]
    Warning: Current Disk has mounted partitions.
  5. analyze メニューを選択します。


    format> analyze
    
  6. analyze> プロンプトで setup と入力して、解析パラメータを設定します。

    次のパラメータを使用してください。


    analyze> setup
    Analyze entire disk [yes]? n
    Enter starting block number [0, 0/0/0]: 12330
    Enter ending block number [2052287, 2035/13/71]: 12360
    Loop continuously [no]? y
    Repair defective blocks [yes]? n
    Stop after first error [no]? n
    Use random bit patterns [no]? n
    Enter number of blocks per transfer [126, 0/1/54]: 1
    Verify media after formatting [yes]? y
    Enable extended messages [no]? n
    Restore defect list [yes]? y
    Create defect label [yes]? y
    
  7. read コマンドを使って欠陥を検出します。


    analyze> read
    Ready to analyze (won't harm SunOS). This takes a long time,
    but is interruptible with Control-C. Continue? y
            pass 0
       2035/12/1825/7/24
            pass 1
    Block 12354  (18/4/18), Corrected media error (hard data ecc)
       25/7/24
    ^C
    Total of 1 defective blocks repaired.

Procedure欠陥セクターを修復する方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

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


    # format
    
  3. 欠陥セクターの存在するディスクを選択します。


    Specify disk (enter its number): 1
    selecting c0t3d0
    [disk formatted]
    format> 
  4. repair コマンドを選択します。


    format> repair
    
  5. 欠陥ブロック番号を入力します。


    Enter absolute block number of defect: 12354
       Ready to repair defect, continue? y
       Repairing block 12354 (18/4/18)...ok.
    format>

    欠陥セクターの特定に使う形式がわからない場合は、「表面解析を使用して欠陥セクターを調べる方法」を参照してください。

ディスク管理のヒント

次のヒントに従って、ディスクの管理効率を高めることができます。

format セッションのデバッグ

format -M コマンドを実行して、ATA および SCSI デバイス用の拡張および診断メッセージを有効にします。


例 11–8 format セッションのデバッグ

この例の Inquiry: の下の数値の列は、数値の右側に表示される inquiry データの 16 進数値です。


# format -M
Searching for disks...done
AVAILABLE DISK SELECTIONS:
  0. c0t1d0 <SUN1.05 cyl 2036 alt 2 hd 14 sec 72>
     /iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000/sd@1,0
  1. c0t3d0 <SUN1.05 cyl 2036 alt 2 hd 14 sec 72>
     /iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000/sd@3,0
 
Specify disk (enter its number): 0
selecting c0t3d0
[disk formatted]
format> inquiry
Inquiry:
00 00 02 02 8f 00 00 12 53 45 41 47 41 54 45 20     ........NAME....
53 54 31 31 32 30 30 4e 20 53 55 4e 31 2e 30 35     ST11200N SUN1.05
38 33 35 38 30 30 30 33 30 32 30 39 00 00 00 00     835800030209....
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00     ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00     ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00     ................
00 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31     .Copyright (c) 1
39 39 32 20 53 65 61 67 61 74 65 20 41 6c 6c 20     992 NAME    All 
72 69 67 68 74 73 20 72 65 73 65 72 76 65 64 20     rights reserved 
30 30 30                                            000
Vendor:   name 
Product:  ST11200N SUN1.05
Revision: 8358
format> 

prtvtocfmthard コマンドを使用して複数のディスクにラベルを付ける

prtvtoc コマンドと fmthard コマンドを使用して、同じディスクジオメトリを持つ複数のディスクにラベルを付けます。

この for ループをスクリプト内で使用して、1 台のディスクからディスクラベルをコピーし、複数のディスク上で複製します。


# for i in x y z
> do
> prtvtoc /dev/rdsk/cwtxdysz | fmthard -s - /dev/rdsk/cwt${i}d0s2
> done

例 11–9 複数のディスクにラベルを付ける

この例では、ディスクラベルがディスク c2t0d0s0 からほかの 4 台のディスクにコピーされます。


# for i in 1 2 3 5
> do
> prtvtoc /dev/rdsk/c2t0d0s0 | fmthard -s - /dev/rdsk/c2t${i}d0s2
> done
fmthard:  New volume table of contents now in place.
fmthard:  New volume table of contents now in place.
fmthard:  New volume table of contents now in place.
fmthard:  New volume table of contents now in place.
#