この章では、Solaris(TM) 操作環境を使用してディスクドライブを設定する方法を説明します。
この章の内容を以下に示します。
新しいディスクドライブの操作環境を設定する前に、以下の準備が必要です。
Solaris ソフトウェアをインストールする。
「システムの停止」に従って、システムおよびすでに接続済みの周辺機器を停止する。
「システムの停止」の手順以外の方法でシステムを停止すると、新しいディスクドライブがオペレーティングシステムによって認識されない場合があります。
ディスクドライブは、後からシステムに追加されることが多いデバイスです。ディスクドライブの追加は、大きく分けて次の 3 つの手順から構成されます。
ディスクドライブの取り付け (「ディスクドライブを追加する」を参照)
format ユーティリティーによるディスクの準備 (「ディスクの準備」を参照)
ファイルシステムの作成とマウント (「ファイルシステムを作成する」を参照)
Veritas Volume Manager や Solstice DiskSuite(TM) などの特殊な (RAID: Redundant Array of Inexpensive Disks) アプリケーションを使用してディスク上のデータを管理する場合、最後の手順は必要ない場合もあります。
システムを停止します。
「システムの停止」 を参照してください。
ディスクドライブのアドレススイッチが正しく設定されていることを確認します。
各 SCSI ターゲット ID によって、Solaris 操作環境がドライブに割り当てる論理デバイス名が決まります。SCSI アドレス指定についての詳細は、付録 A 「SCSI アドレスの概念」と『Solaris のシステム管理 (第 2 巻)』を参照してください。
各ディスクドライブには一意の SCSI ターゲット ID を設定する必要があります。
ディスクドライブを取り付けます。
作業の詳細については、ハードウェアに付属しているマニュアルを参照してください。
システムおよびすべての外部周辺機器の電源を入れます。
ほとんどの場合は、この操作によってシステムが起動します。/reconfigureファイルが存在する場合 (第 1 章「事前の作業」の「システムを準備する」を参照)、オペレーティングシステムは新しいデバイスに対して自動的に論理デバイス名を割り当て、デバイスドライバを初期化します。 /reconfigure、ファイルが存在しない場合は、boot -r を実行することによって、 /reconfigure ファイルが存在した場合と同じ処理を行うことができます。詳細は、付録 B 「システムの起動」を参照してください。
必要に応じて、ディスクを準備します。
「ディスクの準備」を参照してください。
新たに取り付けたディスクドライブを使用するには、ディスクをフォーマットして、パーティション分割し、ラベル付けする必要があります。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 ユーティリティーを使用します。
ディスクをフォーマットすると、ディスク上のデータは破壊されます。
表示されるメニュー情報は、ここで示されているものと異なる場合があります。SPARCstorage(TM) Array を使用している場合は、format ユーティリティーを使用する前に SPARCstorage Array のドライバを読み込んでおく必要があります。
スーパーユーザーになります。
# 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 台目の新しいハードディスクをフォーマットすることができます。
画面に表示された一覧から、フォーマットするディスクを選択します。
間違ったディスクを選択しないよう注意してください。ディスクをフォーマットすると、元のデータがすべて上書きされます。
format ユーティリティーは、ディスクがフォーマット済みであるかどうかを示すメッセージを表示します。
Selecting c1t1d0 [disk formatted]
ディスクがフォーマットされていない場合は、手順 4 に進んでください。ディスクがフォーマット済みの場合は、「ディスクをパーティション分割する」の手順に進んでください。
「Warning: Current Disk has mounted partitions」というメッセージが表示された場合は、その時点で作業を中止してください。q と入力し、format ユーティリティーを終了してください。手順 2 に戻って、正しいディスクを選択しているかどうかを確認してください。
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 のシステム管理』を参照してください。)
製造元によって、あらかじめディスクにパーティションが作成されていることがあります。ただし、記憶空間の使用方法はユーザーごとに異なるため、あらかじめ作成されたパーティションがすべてのユーザーの使用環境に合うわけではありません。その場合は、ディスクのパーティションを分割し直してください。
ディスクをパーティション分割すると、ディスク上のデータは破壊されます。
スーパーユーザーになり、format ユーティリティーを起動します。
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>
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 以上のディスクドライブ用には、デフォルトのパーティションテーブルはありません。
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 ルーチンによって禁止されます。
Do you wish to continue creating a new partition table based on above table[yes]? y
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を指定しないでください。
表示された大きさを変更することによって、各パーティションの大きさをメガバイト単位で指定します。
各パーティションの大きさを指定するよう求められます。不要なパーティションには 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 つのパーティション (6 と 7) で構成されています。パーティション 2 はディスク全体を表す特殊なパーティションであり、オーバーラップパーティションとも呼ばれます。
パーティション 2 は変更しないでください。パーティション 2 の大きさを小さくすると、利用できるディスク容量が減少します。
Okay to make this the current partition table [yes]? y
Enter table name (remember quotes): "table1"
この名前は、パーティションテーブルの作成中にその記録を残しておくためにformat ユーティリティーが一時的に使用する名前です。
新しいパーティションテーブルをディスクラベルに書き込んでもよければ、y と入力します。
Ready to label disk, continue? y
ラベルは、パーティションテーブルが保管される場所です。n を入力すると、設定したパーティション値は失われ、前のパーティションテーブルが有効になります。
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?」プロンプトが表示されます。
以下の作業が完了したら、パーティションにファイルシステムを作成する必要があります。
ディスクドライブの追加または交換
パーティション構成の変更
ファイルシステムを作成するディスクドライブおよびパーティションの論理デバイス名を知る必要があります。論理デバイス名については、付録 A 「SCSI アドレスの概念」を参照してください。
ファイルシステムの作成を計画しているディスクは、すでにフォーマットとパーティション分割が完了したしたものである必要があります。
スーパーユーザーになります。
newfs コマンドを使用して、パーティションに新しいファイルシステムを作成します。
# newfs /dev/rdsk/cntndnsn
パーティションの正しい論理デバイス名を指定したことを確認してから、パーティションにファイルシステムを作成してください。論理デバイス名を間違って指定すると、指定したパーティションの内容が消去されます。詳細は、「論理デバイス名」を参照してください。
newfs: construct a new file system /dev/rdsk/cxtxdxsx (y/n)? y
newfs は、ディスクパーティションに対して、必要なファイルシステム構造と lost+found ディレクトリを作成します。各パーティションについて、これらの手順を繰り返し行ってください。1 つのパーティションには、ファイルシステムを 1 つだけ作成することができます。
ファイルシステムを作成したら、マウントしてユーザーが利用できるようにする必要があります。マウントされたファイルシステムは、指定されたマウント先 (ディレクトリ) でシステムディレクトリツリーに接続され、システムとユーザーが利用できるようになります。ルートファイルシステムは、常にマウントされています。それ以外のすべてのファイルシステムは、ルート (/) ファイルシステムに接続したり (マウントしたり)、切り離したり (マウント解除したり) することができます。
ファイルシステムをマウントするには、以下の手順に従います。
vi または任意のテキストエディタで /etc/vfstab ファイルを編集します。
空白文字またはタブで各フィールドを区切って、エントリを追加します。フィールドに値がない場合は、その代わりとしてダッシュ (-) を入力します。フィールドは 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 のフィールド
フィールド |
フィールドの見出し |
説明 |
---|---|---|
1 |
device to mount |
マウントするファイルシステムの論理デバイス名を指定します。通常、このデバイス名は、/dev/dsk ディレクトリから始まります。 |
2 |
device to fsck |
fsck で処理するデバイスの論理デバイス名を指定します。通常、このデバイス名は /dev/rdsk ディレクトリから始まります。 |
3 |
mount point |
ファイルシステムのマウント先として使用するディレクトリを指定します。 |
4 |
FS type |
ファイルシステムの種類を指定します。通常、ローカルファイルシステムには、ufs を指定します。 |
5 |
fsck pass |
fsck の実行方法を制御する値を指定します。 1 = 一覧に示されている順に 1 つずつファイルシステムに対して fsck を実行します。 2 = ファイルシステムに対して同時に fsck を実行します。 - = fsck を実行しません。 |
6 |
mount at boot |
yes または no を指定します。 yes = 起動時および muntall コマンドの実行時、このファイルシステムをマウントします。 no = 起動時および muntall コマンドの実行時、このファイルシステムをマウントしません。 |
7 |
mount options |
マウントオプションを空白文字ではなくコンマで区切って指定します。マウントオプションなしの場合は、ハイフン (-) を入力します。 |
修正した /etc/vfstab ファイルを保存します。
/etc/vfstab ファイルへのエントリの書き込みについての詳細は、マニュアルページの (4) ファイル形式と『Solaris のシステム管理 (第 1 巻)』を参照してください。
# mkdir /abc /def
マウント先のディレクトリは、ファイルシステムをマウントする前に作成する必要があります。この例では、マウント先 (ディレクトリ) を 2 つ (/abc と /def) 作成しています。
# mount /abc /def
mount コマンドは、これらのファイルシステムの /etc/vfstab エントリを読み取り、その内容に従ってファイルシステムをマウントします。/etc/vfstab ファイルは、システムを起動するたびに読み取られ、新しいものも含めて、適切なファイルシステムがマウントされます。
スワップ領域や、マウントを解除して使用しないパーティションは、マウントしないでください。
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