この章では,ディスクの管理に関連する,システム管理作業について説明します。 説明する項目は,次のとおりです。
AdvFS の管理については,『AdvFS 管理ガイド』を参照してください。
5.1 Disk Configuration ユーティリティを用いたディスク・パーティションの作成
Disk Configuration グラフィカル・ユーザ・インタフェース (GUI) の
diskconfig
を使用して,次の作業を行うことができます。
Disk Configuration GUI (diskconfig
)
の起動についての詳細は,
diskconfig
(8)
Disk Configuration GUI を,以下のいずれかの方法で起動します。
システム・プロンプトで,/usr/sbin/diskconfig
と入力します。
以下の手順を実行します。
CDE フロント・パネルの SysMan アプリケーション・ポップアップ・メニューを選択します。
[Configuration] を選択します。 「SysMan Configuration」フォルダが開きます。
「SysMan Configuration」フォルダから「ディスク」アイコンを選択します。
注意
パーティションのサイズを変更しようとすると,Disk Configuration から警告が表示されます。 しかし,必要なデータを上書きしないためには,変更があることを前もって計画にいれておかなければなりません。 パーティションのサイズを変更する前に,データ・パーティションをすべてバックアップしておいてください。
「Disk Configuration on
hostname
」というタイトルのウィンドウが表示されます。
これが Disk Configuration アプリケーションのメイン・ウィンドウであり,システム内の各ディスクのリストと,各ディスクについて次のような情報が表示されます。
ディスクのベース名。
たとえば
dsk10
。
ディスク名についての詳細は,『ハードウェア管理ガイド』を参照してください。
デバイスの機種。
たとえば
RZ1CB-CA
。
Bus,Target,および LUN (論理ユニット番号) によって表わされる物理位置。 デバイスの位置についての詳細は,『ハードウェア管理ガイド』を参照してください。
特定のディスクを構成するために,リスト内のデバイスを選択し,[設定...
] を選択します。
別の方法として,リスト内のディスクをダブルクリックすることもできます。
2 つのウィンドウ,「Configure Partitions
」と「Partition Table
」がオープンします。
このウィンドウで,ディスク・パーティションの開始アドレス,終端アドレス,サイズ,および使用オプションを設定できます。
このウィンドウには,現在のパーティションの開始アドレス,終端アドレス,およびサイズが表示されます。
これらのウィンドウについての詳細は,オンライン・ヘルプを参照してください。
パーティションを調整した後,次のように SysMan Menu のオプションを使用して,新しく作成したファイル・システムをマウントします。
新しいファイル・システムを
/etc/fstab
ファイルに追加する。
SysMan Menu を起動する。 詳細は,第 1 章を参照してください。
[ファイル・システム] を選択する。 さらにオプションが表示されます。
[一般的なファイルシステム・ユーティリティ] を選択する。 さらにオプションが表示されます。
[ファイルシステムのマウント] を選択する。 「マウント操作」のメイン・ウィンドウがオープンします。
[AdvFS/UFS ファイル・システムのマウント] を選択し,[次へ] を選択する。 「Steps」ダイアログ・ボックスがオープンします。
[次へ] を選択する。 「Select File System」ダイアログ・ボックスがオープンします。
ファイル・システムのリストからファイルを選択し,[次へ] を選択する。 「Mount」ダイアログ・ボックスがオープンします。
「Mount Directory」フィールドに
/usr/newusers
のようなマウント・ポイントを入力する。
あるいは,[Browse...
] を使用し,マウント・ポイントのディレクトリを見つけて選択する。
アクセス・モードを選択する。
[次へ] を選択する。 「Summary」ダイアログ・ボックスがオープンします。
[Finish
] を選択する。
[Exit
] を選択して,SysMan Menu を終了する。
これで新しいファイル・システムがアクセスできるようになります。
5.1.1 パーティション・ウィンドウの構成
このウィンドウには,以下の情報とオプションが表示されます。
ディスク・パーティションを表わす横棒グラフ。 別の色で現在強調表示されているパーティションについては,その詳細が「該当パーティション」ボックスに表示されます。 この棒グラフのハンドル (またはフラグ) を用いてパーティションのサイズを変更できます。 次の位置にカーソルを置いてください。
隣接する 2 つのパーティションを変更する場合は,中央にあるハンドル。
右側にあるパーティションの開始位置を上に移動する場合は,上のフラグ。
左側にあるパーティションの終了位置を下に移動する場合は,下のフラグ。
MB1 を押してマウスをドラッグし,ハンドルを移動します。
プルダウン・メニュー。 サイズの単位をこのメニューで切り替えることができます。 選択できる単位は,M バイト,バイト,およびブロックです。
統計ボックス。 デバイス名,および,ディスクのトータル・サイズとその使用量に関する情報が表示されます。 このボックスを使用して,ディスク・ラベルの割り当てや編集,また,デバイスの別名の作成を行います。
「該当パーティション」ボックス。 選択したパーティションのサイズが動的に表示されます。 このサイズは,棒グラフを用いたパーティションの変更に合わせて更新されます。 このウィンドウにパーティション・サイズを直接入力して,現在の設定を変更することもできます。 また,パーティションのファイル・システムを選択したり,AdvFS を使用している場合はドメイン名やファイルセット名を選択したりすることもできます。
[ディスク属性... ] オプション
このボタンを押すと,デバイスの物理属性の一部が表示されます。
[パーティション・テーブル... ] オプション。 次の項目で説明します。
このウィンドウには現在使用しているパーティションの棒グラフ,サイズ,および使われているファイル・システムが表示されます。
現在のパーティション・サイズを,このデバイスの省略時のテーブルにある値とセッションが開始された時点のオリジナル (開始テーブル) の値の間で切り替えることができます。
手動によるパーティション変更に失敗した場合は,このウィンドウを用いてパーティション・テーブルをリセットできます。
5.2 手動によるディスク・パーティションの作成
この項では,ディスクのパーティション・スキームの変更に必要な情報を示します。
一般に,ディスク・スペースは,初期インストレーション時またはディスクをシステム構成に追加する場合に割り当てます。
通常は,パーティションを変更する必要はありません。
しかし,環境の変化に対応したりシステムの性能を向上させたりするために,ディスクのパーティション・サイズの変更が必要な場合もあります。
5.2.1 ユーティリティ
以下のコマンドを使用すると,手動によるディスク保守ができます。
disklabel
このコマンドを使用して,ディスク・ドライブまたはディスク・パックのラベルの,インストール,検査,および変更を行います。
ディスク・ラベルには,タイプ,物理パラメータ,およびパーティションなどの,ディスクについての情報が記録されています。
/etc/disktab
ファイルについての詳細は,
disklabel
(4)
newfs
このコマンドを使用して,指定したデバイスに新しい UFS ファイル・システムを作成します。
AdvFS (Advanced File System) ドメインを作成する場合は,newfs
コマンドではなく,mkfdmn
コマンドを使用してください。
mkfdmn
と
mkfset
このコマンドは,AdvFS (Advanced File System) ドメインとファイルセットの作成に使用します。
詳細は,
mkfdmn
(8)
ディスク・ラベルには,ディスクおよびディスクを分割するパーティションのジオメトリに関する詳細な情報が入っています。
root ユーザは,disklabel
コマンドでラベルを変更することができます。
コマンド・オプションの詳細は,
disklabel
(8)
ディスク・ラベルには 2 つのコピーがあり,1 つはディスクに,もう 1 つはシステム・メモリに置かれます。
I/O を実行するよりはシステム・メモリにアクセスする方が速いため,システムのブート時に,メモリへディスク・ラベルがコピーされます。
システムにあるラベルではなく,ディスク上のラベルに直接アクセスする場合は,disklabel
-r
コマンドを使用してください。
注意
ディスクにデータがある場合は,ディスク・パーティションを変更する前に,すべてのファイル・システムをバックアップしてください。 パーティションを変更すると古いファイル・システムのデータは上書きされ,壊れてしまいます。
パーティションの変更に対しては,次の規則が適用されます。
開始セクタを示すオフセットを変更したり,マウントされているファイル・システムのパーティションやオープン・ファイル記述子を持つファイル・システムのパーティションを縮小したりすることはできない。
ディスク全体でパーティションが 1 つだけ必要な場合は,パーティション
c
を使用する。
ラベルを変更する際は,a
がマウントされていない限り,パーティション
a
に対して raw デバイスを指定して,a
がディスクの開始部分 (セクタ 0) から始まるようにしなければならない。
パーティション
a
がマウントされている場合は,パーティション
c
を使用してラベルを変更する。
この際,パーティション
c
もセクタ 0 から始まるようにしなければならない。
注意
パーティション
a
がすでにマウントされている場合は,デバイス・パーティションa
を用いてディスク・ラベルを編集しようとしても,変更できません。 また,ラベルを書き込めなかったというエラー・メッセージが表示されることもありません。
ディスク・パーティションのサイズを変更する前に,ディスク・ラベルを表示して現在のパーティションの設定を調べてください。
そのために,disklabel
コマンドでパーティション・サイズを表示させます。
パーティションのボトム,トップ,およびサイズは,512 バイト・セクタを 1 単位として表示されます。
現在のディスク・パーティション設定を調べるために,次の
disklabel
コマンドを実行してください。
/sbin/disklabel -r device
ディレクトリ名
(/dev)
の後に raw デバイス名,ドライブ番号,およびパーティション
a
または
c
を続けて入力し,デバイスを指定してください。
dsk1
のように,ディスク・ユニットと番号を指定することもできます。
disklabel
コマンドでディスク・ラベルを表示させる例を示します。
# disklabel -r /dev/rdisk/dsk3a type: SCSI disk: rz26 label: flags: bytes/sector: 512 sectors/track: 57 tracks/cylinder: 14 sectors/cylinder: 798 cylinders: 2570 rpm: 3600 interleave: 1 trackskew: 0 cylinderskew: 0 headswitch: 0 # milliseconds track-to-track seek: 0 # milliseconds drivedata: 0
8 partitions: # size offset fstype [fsize bsize cpg] a: 131072 0 4.2BSD 1024 8192 16 # (Cyl. 0 - 164*) b: 262144 131072 unused 1024 8192 # (Cyl. 164*- 492*) c: 2050860 0 unused 1024 8192 # (Cyl. 0 - 2569) d: 552548 393216 unused 1024 8192 # (Cyl. 492*- 1185*) e: 552548 945764 unused 1024 8192 # (Cyl. 1185*- 1877*) f: 552548 1498312 unused 1024 8192 # (Cyl. 1877*- 2569*) g: 819200 393216 unused 1024 8192 # (Cyl. 492*- 1519*) h: 838444 1212416 4.2BSD 1024 8192 16 # (Cyl. 1519*- 2569*)
パーティションの変更は,ファイル・システムのデータを上書きしたり,システムの効率を悪くしたりする可能性があるため,慎重に行う必要があります。
パーティション・サイズの変更の際にパーティション・ラベルが壊れた場合は,次のように
disklabel
コマンドに
-w
オプションを付けて,省略時のパーティション・ラベルに復元することができます。
# disklabel -r -w /dev/rdisk/dsk1a rz26
disklabel
コマンドを使えば,カーネルの再構築およびシステムのリブートを伴わずに,各ディスクのパーティション・ラベルを変更できます。
パーティション・サイズを変更する場合は次の手順に従ってください。
df
コマンドを使用して,ファイル・システムのディスク・スペースの情報を表示させます。
/etc/fstab
ファイルを表示させて,スワップ領域として指定されているファイル・システムがないか確認します。
disklabel
コマンドに
-r
オプションを指定して実行し,ディスク・ラベルを調べます
(省略時のディスク・パーティションについての説明は,
rz
(7)ra
(7)disktab
(4)
ファイル・システムをバックアップします。
変更したいラベルのあるディスクのファイル・システムをアンマウントします。
新しいパーティション・パラメータを計算します。 パーティション・サイズは,増減させることができます。 また,パーティションどうしを重ねることもできます。
次の構文で
disklabel
コマンドに
-e
オプションを指定して実行することにより,ディスク・ラベルを編集してパーティション・パラメータを変更します。
# /sbin/disklabel -e disk
vi
エディタ,または EDITOR 環境変数で指定されたエディタが起動されて,ディスク・ラベルを編集できるようになります。
このとき,ディスク・ラベルは,disklabel
-r
コマンドの場合と同じ形式で表示されます。
-r
オプションを指定すると,可能であれば,ラベルはディスクに直接書き込まれ,メモリ内のコピーが更新されます。
disk
パラメータには,アンマウントされているディスク (たとえば
dsk0
または
/dev/rdisk/dsk0a
など) を指定します。
エディタを終了して変更内容を保存すると,次のプロンプトが表示されます。
write new label? [?]:
新しいラベルを書き込む場合は,y
を入力し,変更内容を廃棄する場合は,n
を入力します。
disklabel
コマンドに
-r
オプションを指定して実行し,新しいディスク・ラベルを表示させます。
5.2.3 newfs コマンドによるパーティションの重なりのチェック
ファイル・システムのマウントや作成を行うコマンド,新しいスワップ・デバイスを追加するコマンド,および Logical Storage Manager へディスクを追加するコマンドは,まず,コマンドに指定されたディスク・パーティションにすでに有効なデータが含まれていないかどうか,また,そのパーティションが使用中の他のパーティションと重なっていないかどうかについて,確認します。
その際,指定されたパーティションまたは重なっているパーティションが使用中であるかどうかは,ディスク・ラベルの「fstype
」フィールドで判断できます。
パーティションが使用されていないければ,コマンドは実行を継続します。
ファイル・システムのマウントや作成だけでなく,mount
,newfs
,fsck
,voldisk
,mkfdmn
,rmfdmn
,および
swapon
のようなコマンドも,ディスク・ラベルを変更して,「fstype
」フィールドにパーティションの用途を設定します。
たとえば,AdvFS ドメインにディスク・パーティションを追加すると,「fstype
」フィールドは
AdvFS
に設定されます。
パーティションが利用できない場合,これらのコマンドは次のようなエラー・メッセージを返して,処理を継続するかどうかを問い合わせてきます。
# newfs /dev/disk/dsk8c WARNING: disklabel reports that basename,partition currently is being used as "4.2BSD" data. Do you want to continue with the operation and possibly destroy existing data? (y/n) [n]
オペレーティング・システムのコマンド同様,アプリケーションもディスク・ラベルの
fstype
を変更して,パーティションが使用中であることを示すことができます。
詳細については,
check_usage
(3)set_usage
(3)5.3 ディスクのコピー
ディスクまたはディスク・パーティション全体のコピーには
dd
コマンドを使用します。
このコマンドを実行すると,ディスクまたはディスク・パーティションの物理的なコピーが作成されます。
注意
dd
コマンドは複数のファイルをコピーするためのコマンドではありませんので,データ・ディスクとして使用しているディスクに,あるいは,ファイル・システムを含まないディスクに,単一のディスクまたはパーティションをコピーします。 UFS ファイル・システムを含むディスクまたはパーティションをコピーする場合は,第 9 章 で説明するdump
およびrestore
コマンドを使用してください。 また,AdvFS ファイルセットを含むディスクまたはパーティションをコピーする場合は,『AdvFS 管理ガイド』 で説明されているvdump
およびvrestore
コマンドを使用してください。
ディスクの最初のブロックにはディスク・ラベルが保管されているため,オペレーティング・システムでは,有効なディスク・ラベルを持ったディスクのこのブロックを保護します。 したがってディスク・ラベルが存在するターゲット・ディスク上のパーティションをコピーする場合は,そのターゲット・ディスク上のディスク・ラベルを保存するかどうかを決めなければなりません。
ターゲット・ディスク上のディスク・ラベルをそのままにしておく場合は,dd
コマンドに
skip
または
seek
オプションを付けて実行し,ターゲット・ディスク上の保護されているディスク・ラベル領域をスキップします。
ターゲット・ディスクの容量は,オリジナルのディスクと同じかそれ以上でなければなりません。
ターゲット・ディスクにラベルがあるかどうかを確認するには,次の
disklabel
コマンドを使用します。
# /sbin/disklabel -r target_disk
ターゲット・デバイスのディレクトリ名 (/dev
) の後に raw デバイス名,ドライブ番号,およびパーティション
c
を続けて指定します。
ディスクにラベルがない場合は,次のメッセージが表示されます。
Bad pack magic number (label is damaged, or pack is unlabeled)
ディスクにすでにラベルが付いている場合の例は次のようになります。
# disklabel -r /dev/rdisk/dsk1c type: SCSI disk: rz26 label: flags: bytes/sector: 512 sectors/track: 57 tracks/cylinder: 14 sectors/cylinder: 798 cylinders: 2570 rpm: 3600 interleave: 1 trackskew: 0 cylinderskew: 0 headswitch: 0 # milliseconds track-to-track seek: 0 # milliseconds drivedata: 0
8 partitions: # size offset fstype [fsize bsize cpg] a: 131072 0 unused 1024 8192 # (Cyl. 0 - 164*) b: 262144 131072 unused 1024 8192 # (Cyl. 164*- 492*) c: 2050860 0 unused 1024 8192 # (Cyl. 0 - 2569) d: 552548 393216 unused 1024 8192 # (Cyl. 492*- 1185*) e: 552548 945764 unused 1024 8192 # (Cyl. 1185*- 1877*) f: 552548 1498312 unused 1024 8192 # (Cyl. 1877*- 2569*) g: 819200 393216 unused 1024 8192 # (Cyl. 492*- 1519*) h: 838444 1212416 unused 1024 8192 # (Cyl. 1519*- 2569*)
ターゲット・ディスクにすでにラベルが付いており,そのラベルがもう必要ない場合は,disklabel
-z
コマンドを使用してラベルをクリアしなければなりません。
たとえば,次のようにします。
# disklabel -z /dev/rdisk/dsk1c
オリジナル・ディスクをターゲット・ディスクにコピーし,ターゲット・ディスクのラベルをそのまま保存する場合は,dd
コマンドを使用します。
このコマンドには,デバイス・ディレクトリ名 (/dev
) の後に raw デバイス名,ドライブ番号,オリジナルおよびターゲットのディスク・パーティションを続けて指定します。
たとえば次のように指定します。
# dd if=/dev/rdisk/dsk0c of=/dev/rdisk/dsk1c \ skip=16 seek=16 bs=512k