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

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

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

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

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

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

作業 

説明 

参照先 

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

システム上のディスクの種類が分からない場合は、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 ユーティリティの使用方法 については、第 36 章「format ユーティリティ (参照情報)」を参照してください。

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

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

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


    # format
    

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

例 —システム上のディスクを確認する

次の format 出力は、単一のディスクを持つシステムのものです。


# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c0t0d0 <ST34321A cyl 8892 alt 2 hd 15 sec 63>
          /pci@1f,0/pci@1,1/ide@3/dad@0,0
Specify disk (enter its number): 

format の出力は、ディスクの物理デバイス名と論理デバイス名を括弧 <> 内の商品名に対応させています。次の例を参照してください。この方法では、どの論理デバイス名がシステムに接続されたディスクを表しているかをすぐに識別できます。論理デバイス名と物理デバイス名については、第 30 章「デバイスへのアクセス (概要)」を参照してください。

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


# 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. c0t3d0 <SUN2.1G cyl 2733 alt 2 hd 19 sec 80>
   /iommu@0,10000000/sbus@0,10001000/espdma@5,8400000/esp@5,8800000/sd@3,0
Specify disk (enter its number): 

format の出力は、ディスク 0 (ターゲット 3) が第 1 の SCSI ホストアダプタ (espdma@...) に接続されており、そのホストアダプタは第 1 の SBus デバイス (sbus@0...) に接続されていることを示しています。また、この出力は物理デバイス名と論理デバイス名をディスクの商品名 SUN2.1G に対応しています。

次の例では、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):  

format の出力は、ディスク 0 が最初の PCI ホストアダプタ (pci-ide@7..) に接続され、このアダプタが ATA デバイス (ata...) に接続されていることを示しています。x86 システム上での format の出力には、ディスクは商品名では表示されません。

次に進む手順

format ユーティリティでディスクが認識されなかった場合は、次の表を参照してください。

ディスクの状態 

参照先 

ディスクを新しく追加したが、再構成ブートを実行しなかった 

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

Sun 以外のディスク 

format.dat のエントリの作成を参照

電源障害など、システムの問題によってラベルが破損した 

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

ディスクがシステムに正しく接続されていない 

ディスクのハードウェアマニュアルを参照して、ディスクをシステムに接続する 

ディスクのフォーマット

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

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


注意 – 注意 –

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


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

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

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


    # format
    
  3. 画面に表示されるリストから、チェックするディスクの番号を入力します。


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


     [disk formatted]

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

次の例は、ディスク 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]

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

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

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


    # format
    
  3. 画面に表示されるリストから、フォーマットするディスクの番号を入力します。


    Specify disk (enter its number): 0
    

    注意 – 注意 –

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


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


    format> format
    Ready to format. Formatting cannot be interrupted
    and takes 26 minutes (estimated). Continue? y
    
  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.

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

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


# format
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):1
Selecting c0t3d0
[disk formatted]
format> format
Ready to format. Formatting cannot be interrupted
and takes 23 minutes (estimated). Continue? yes
Beginning format. The current time is Thu Dec  6 09:54:40 2001
Formatting ...
done
Verifying media...
        pass 0 - pattern = 0xc6dec6de
   2035/12/18  

        pass 1 - pattern = 0x6db6db6d
   2035/12/18  

Total of 0 defective blocks repaired.
format>

ディスクスライスの表示

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


注 –

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


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

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

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


    # format
    
  3. 画面に表示されたリストから、スライス情報を表示するディスクの番号を入力します。


    Specify disk (enter its number):1
    
  4. パーティションメニューを選択します。


    format> partition 
    
  5. 現在のディスクドライブのスライス情報を表示します。


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


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

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

例 — ディスクスライス情報を表示する

次に示すのは、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
#

これらの例に表示されるスライス情報についての説明は、第 32 章「ディスクの管理 (概要)」を参照してください。

次に示すのは、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 コマンドを使用して複数のディスクにラベルを付けるを参照してください。


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

次の手順に従って、ディスクに VTOC ラベルを付けることができます。または、サイズが 1T バイトを超えるディスクに EFI ラベルを付けることができます。サイズが 1T バイトに満たないディスクに EFI ラベルを付ける場合は、例 — サイズが 1T バイトに満たないディスクに EFI ラベルを付けるを参照してください。

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

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


    # format
    
  3. 画面に表示されるリストから、ラベルを作成したいディスクの番号を入力します。


    Specify disk (enter its number):1
    
  4. 次のいずれかを選択します。

    1. ディスクにラベルが付いておらず、正常に構成された場合、手順 5 に進みラベルを付けます。

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

    2. ディスクにラベルが付いており、そのタイプを変更する場合、または format ユーティリティでディスクを自動構成できなかった場合、手順 6 と 7 を実行してディスクタイプを設定し、ラベルを付けます。

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


    Disk not labeled. Label it now? y
    

    これでディスクラベルが作成されました。手順 9 に進んで 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 ユーティリティを終了します。


    partition> q
    format> q
    #

例 — ディスクラベルを作成する

次の例では、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
#

例 — サイズが 1T バイトに満たないディスクに EFI ラベルを付ける

次に、format -e コマンドを使って、サイズが 1T バイトに満たないディスクに 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

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

ディスクラベル情報の検査には、prtvtoc コマンドを使用します。ディスクラベルの説明と prtvtoc コマンドで表示される情報については、第 32 章「ディスクの管理 (概要)」を参照してください。

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

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


    # prtvtoc /dev/rdsk/device-name
    

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

例 — ディスクラベルを検査する

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

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

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

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

    システムをブートする方法については、第 13 章「SPARC: システムのブート (手順)」または第 14 章「x86: システムのブート (手順)」を参照してください。

  2. ディスクのラベルを作成し直します。


    # format
    

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


    cwtxdy: configured with capacity of abcMB

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

  3. 画面に表示されたリストから、復元したいディスクの番号を入力します。


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

    1. ディスクが正常に構成された場合、手順 5 と 6 を実行します。その後、手順 12 に進みます。

    2. ディスクが正常に構成されなかった場合、手順 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 コマンドの使用方法については、第 43 章「UFS ファイルシステムの整合性チェック (手順)」を参照してください。

Sun 製品以外のディスクの追加

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

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


注 –

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


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

この節の説明にしたがって不足しているソフトウェアを用意してから、第 34 章「SPARC: ディスクの追加 (手順)」または第 35 章「x86: ディスクの追加 (手順)」で説明されている、システムディスクまたは二次ディスクを構成する手順を参照してください。

format.dat のエントリの作成

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


注 –

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


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

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

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

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


    # cp /etc/format.dat /etc/format.dat.gen
    
  3. 第 36 章「format ユーティリティ (参照情報)」で説明する format.dat 情報を使用して、/etc/format.dat ファイルに、Sun 以外の製品のディスクのエントリを入力します。

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

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)

SCSI 自動構成機能の使用方法については、第 36 章「format ユーティリティ (参照情報)」を参照してください。

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

  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. プロンプトで y と入力してディスクにラベルを付けます。

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


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


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


    format> q
    

欠陥セクターの修復

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

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

  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.

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

  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 セッションのデバッグ

format -M と入力して、ATA および SCSI デバイス用の拡張および診断メッセージを有効にします。

この例の 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

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

この例では、ディスクラベルがディスク 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.
#