この章では、ZFS ファイルシステム、UFS ファイルシステム、一時ファイルシステム (TMPFS)、およびループバックファイルシステム (LOFS) の作成方法について説明します。TMPFS と LOFS は仮想ファイルシステムであるため、これらのファイルシステムを「実際に使用する」には、ファイルシステムをマウントします。
この章で説明する手順は次のとおりです。
UFS と DOS のファイルシステムをリムーバブルメディア上に作成する手順については、第 1 章リムーバブルメディアの管理 (概要)を参照してください。
ZFS ファイルシステムは、特定のディスクパーティションに直接関連付けられていません。ZFS ファイルシステムで使用される ZFS ストレージプールには、多数のデバイスを含めることができます。ディスク全体またはディスクスライスを ZFS ストレージプールに追加できます。プールの中に、さらに別のファイルシステムを作成することをお勧めします。ファイルシステムに基づいてプールを管理すれば、プールに含まれるさまざまなデータを管理しやすくなります。
ZFS ストレージプールおよびファイルシステムの作成方法の詳細は、『Oracle Solaris ZFS 管理ガイド』を参照してください。
スーパーユーザーになるか、同等の役割を引き受けます。
ZFS ストレージプールを作成します。
次の例は、tank という名前の単純なミラー化ストレージプールと tank という名前の ZFS ファイルシステムを、1 つのコマンドで作成する方法を示しています。/dev/dsk/c1t0d0 ディスク全体と /dev/dsk/c2t0d0 ディスク全体を使用することを前提としています。
# zpool create tank mirror c1t0d0 c2t0d0 |
ZFS ファイルシステムを作成します。
# zfs create tank/fs |
この新規 ZFS ファイルシステム tank/fs では、ディスク領域を必要なだけ使用でき、/tank/fs に自動的にマウントされます。
ファイルシステムが作成されたことを確認します。
# zfs list -r tank NAME USED AVAIL REFER MOUNTPOINT tank 117K 268G 21K /tank tank/fs 21K 268G 21K /tank/fs |
UFS ファイルシステムをディスク上に作成する前に、そのディスクをフォーマットし、スライスに分割しなければなりません。「ディスクスライス」とは物理的なディスクのサブセットで、連続するブロックからなる 1 つの範囲のことです。スライスはスワップ空間などの raw デバイスとして使用することも、ディスクベースのファイルシステムとして使用することもできます。ディスクのフォーマットとスライスへの分割の方法については、第 10 章ディスクの管理 (概要)を参照してください。
Solaris ボリュームマネージャーなどのディスクおよびストレージ管理製品では、より洗練された「ボリューム」を作成できます。ボリュームは、1 つのスライスまたは 1 つのディスクの境界を超えて、拡張可能です。ボリュームの使用方法については、『Solaris ボリュームマネージャの管理』を参照してください。
Solaris のデバイス名は、用語「スライス (デバイス名内の文字は s)」を使用して、スライス番号を参照します。スライスは「パーティション」とも呼ばれます。
UFS ファイルシステムは、インストール手順の一部として Solaris オペレーティングシステムによって自動的に作成されるので、UFS ファイルシステムを作成しなければならないことはほとんどありません。次の場合には、UFS ファイルシステムを作成する (または作成し直す) 必要があります。
ディスクを追加または交換する場合
ディスクの既存のパーティション構造を変更する場合
ファイルシステムを完全に復元する場合
newfs コマンドを使用するのが、UFS ファイルシステムを作成する標準的な方法です。newfs コマンドは mkfs コマンドの使いやすいフロントエンドであり、実際に新しいファイルシステムを作成します。newfs コマンドは、パラメータのデフォルト値 (1 シリンダ当たりのトラック数や 1 トラック当たりのセクター数など) を、新しいファイルシステムが作成されるディスクのラベルから読み取ります。選択したオプションは、mkfs コマンドに渡され、ファイルシステムが作成されます。
newfs コマンドが使用するデフォルトのパラメータについては、newfs(1M) のマニュアルページを参照してください。
次の前提条件を満たしているかどうかを確認します。
ディスクがフォーマットされ、スライスに分割されている。
既存の UFS ファイルシステムを作成し直す場合は、そのマウントを解除する。
ファイルシステムを格納するスライスのデバイス名がわかっている。
ディスクおよびディスクスライス番号の検索方法については、第 11 章ディスクの管理 (手順)を参照してください。
ディスクのフォーマットとスライスへの分割方法については、第 10 章ディスクの管理 (概要)を参照してください。
スーパーユーザーになるか、同等の役割を引き受けます。
ファイルシステムを作成します。
# newfs [-N] [-b size] [-i bytes] /dev/rdsk/device-name |
newfs コマンドが mkfs コマンドに渡すパラメータを表示します。ファイルシステムは実際に作成されません。newfs コマンドをテス トするのに好ましい方法です。
ファイルシステムのブロックサイズを 1 ブロックあたり 4096 または 8192 バイトで指定します。デフォルトは 8192 バイトです。
i ノード 1 個当たりのバイト数を指定します。デフォルトはディスクのサイズによって異なります。詳細は、newfs(1M) のマニュアルページを参照してください。
新しいファイルシステムを作成するディスクデバイス名を指定します。
システムから、確認を促すプロンプトが表示されます。
この手順を実行する前に、スライスのデバイス名が正しく指定されていることを確認してください。間違ったスライスを指定すると、その内容は新しいファイルシステムの作成時に消去されます。そして、システムがパニックを起こす原因となる可能性があります。
UFS ファイルシステムが作成されていることを確認するには、新しいファイルシステムを検査します。
# fsck /dev/rdsk/device-name |
device-name 引数は、新しいファイルシステムを格納するディスクデバイスの名前を指定します。
fsck コマンドは、新しいファイルシステムの整合性を検査して、問題があれば通知し、問題を修復する前にプロンプトを表示します。fsck コマンドの詳細は、第 21 章UFS ファイルシステムの整合性検査 (手順)または fsck(1m) のマニュアルページを参照してください。
次の例は、/dev/rdsk/c0t1d0s7 上に UFS ファイルシステムを作成する方法を示しています。
# newfs /dev/rdsk/c0t1d0s7 /dev/rdsk/c0t1d0s7: 725760 sectors in 720 cylinders of 14 tracks, 72 sectors 354.4MB in 45 cyl groups (16 c/g, 7.88MB/g, 3776 i/g) super-block backups (for fsck -F ufs -o b=#) at: 32, 16240, 32448, 48656, 64864, 81072, 97280, 113488, 129696, 145904, 162112, 178320, 194528, 210736, 226944, 243152, 258080, 274288, 290496, 306704, 322912, 339120, 355328, 371536, 387744, 403952, 420160, 436368, 452576, 468784, 484992, 501200, 516128, 532336, 548544, 564752, 580960, 597168, 613376, 629584, 645792, 662000, 678208, 694416, 710624, fsck /dev/rdsk/c0t1d0s7 # |
UFS ファイルシステムをマウントし、使用可能にする場合は、第 18 章ファイルシステムのマウントとマウント解除 (手順)に進みます。
マルチテラバイトの UFS ファイルシステムは、Solaris ボリュームマネージャーまたは VxVM ボリューム、あるいは 1T バイトを超える物理ディスクとして提供されたマルチテラバイトの LUN が利用できることを前提にサポートされています。
マルチテラバイトの UFS ファイルシステムを作成する前に、次のいずれかを行う必要があります。
format ユーティリティーまたは Solaris インストールユーティリティーを使ってマルチテラバイトのディスクパーティションを作成しておきます
Solaris ボリュームマネージャーを使ってマルチテラバイトのボリュームを設定しておきます
マルチテラバイト UFS ファイルシステムの詳細は、「64 ビット: マルチテラバイトの UFS ファイルシステムのサポート」を参照してください。
スーパーユーザーになります。
論理ボリューム上にマルチテラバイトの UFS ファイルシステムを作成します。
たとえば、次のコマンドを実行すると、1.8T バイトボリュームの UFS ファイルシステムが作成されます。
# newfs /dev/md/rdsk/d99 newfs: construct a new file system /dev/md/rdsk/d99: (y/n)? y /dev/md/rdsk/d99: 3859402752 sectors in 628158 cylinders of 48 tracks, 128 sectors 1884474.0MB in 4393 cyl groups (143 c/g, 429.00MB/g, 448 i/g) super-block backups (for fsck -F ufs -o b=#) at: 32, 878752, 1757472, 2636192, 3514912, 4393632, 5272352, 6151072, 702... Initializing cylinder groups: ........................................................................ super-block backups for last 10 cylinder groups at: 3850872736, 3851751456, 3852630176, 3853508896, 3854387616, 3855266336, 3856145056, 3857023776, 3857902496, 3858781216, # |
新しく作成したファイルシステムの整合性を検査します。
次に例を示します。
# fsck /dev/md/rdsk/d99 ** /dev/md/rdsk/d99 ** Last Mounted on ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cyl groups 2 files, 2 used, 241173122 free (0 frags, 241173122 blocks, 0.0% fragmentation) # |
新しく作成したファイルシステムをマウントして検査します。
次に例を示します。
# mount /dev/md/dsk/d99 /bigdir # df -h /bigdir Filesystem size used avail capacity Mounted on /dev/md/dsk/d99 1.8T 64M 1.8T 1% /bigdir |
マルチテラバイトの UFS ファイルシステムを作成したあとは、growfs コマンドを使ってファイルシステムを拡張できます。たとえば、前の手順でボリュームに作成したファイルシステムを使用すると、別のディスクをこのボリュームに追加できます。その後で、ファイルシステムを拡張します。
スーパーユーザーになります。
別のディスクをボリュームに追加します。
次に例を示します。
# metattach d99 c4t5d0s4 d99: component is attached # metastat d99: Concat/Stripe Size: 5145882624 blocks (2.4 TB) Stripe 0: Device Start Block Dbase Reloc c0t1d0s4 36864 Yes Yes Stripe 1: Device Start Block Dbase Reloc c3t7d0s4 0 No Yes Stripe 2: Device Start Block Dbase Reloc c1t1d0s4 0 No Yes Stripe 3: Device Start Block Dbase Reloc c4t5d0s4 0 No Yes |
ファイルシステムを拡張します。
次に例を示します。
# growfs -v /dev/md/rdsk/d99 /usr/lib/fs/ufs/mkfs -G /dev/md/rdsk/d99 5145882624 /dev/md/rdsk/d99: 5145882624 sectors in 837546 cylinders of 48 tracks, 128 sectors 2512638.0MB in 5857 cyl groups (143 c/g, 429.00MB/g, 448 i/g) super-block backups (for fsck -F ufs -o b=#) at: 32, 878752, 1757472, 2636192, 3514912, 4393632, 5272352, 6151072, 702... Initializing cylinder groups: ......................................................................... super-block backups for last 10 cylinder groups at: 5137130400, 5138009120, 5138887840, 5139766560, 5140645280, 5141524000, 5142402720, 5143281440, 5144160160, 5145038880, # |
拡張したファイルシステムをマウントして検査します。
次に例を示します。
# mount /dev/md/dsk/d99 /bigdir # df -h /bigdir Filesystem size used avail capacity Mounted on /dev/md/dsk/d99 2.4T 64M 2.4T 1% /bigdir |
UFS ファイルシステムを 1T バイトを超えるサイズに拡張するには、次の手順を実行します。この手順は、newfs -T オプションを使って UFS ファイルシステムを作成したことを前提としています。
スーパーユーザーになります。
現在のディスクまたはボリュームのサイズを特定します。
たとえば、次のボリュームは 800G バイトです。
# metastat d98 d98: Concat/Stripe Size: 1677754368 blocks (800 GB) Stripe 0: Device Start Block Dbase Reloc c0t1d0s4 0 No Yes Stripe 1: Device Start Block Dbase Reloc c3t7d0s4 0 No Yes |
このボリュームを 1T バイトよりも大きくします。
次に例を示します。
# metattach d98 c1t1d0s4 d98: component is attached # metastat d98 d98: Concat/Stripe Size: 2516631552 blocks (1.2 TB) Stripe 0: Device Start Block Dbase Reloc c0t1d0s4 0 No Yes Stripe 1: Device Start Block Dbase Reloc c3t7d0s4 0 No Yes Stripe 2: Device Start Block Dbase Reloc c1t1d0s4 0 No Yes |
ディスクまたはボリュームの UFS ファイルシステムを 1T バイトよりも大きくします。
次に例を示します。
growfs -v /dev/md/rdsk/d98 /usr/lib/fs/ufs/mkfs -G /dev/md/rdsk/d98 2516631552 /dev/md/rdsk/d98: 2516631552 sectors in 68268 cylinders of 144 tracks, 256 sectors 1228824.0MB in 2731 cyl groups (25 c/g, 450.00MB/g, 448 i/g) super-block backups (for fsck -F ufs -o b=#) at: 32, 921888, 1843744, 2765600, 3687456, 4609312, 5531168, 6453024, 737... 8296736, Initializing cylinder groups: ...................................................... super-block backups for last 10 cylinder groups at: 2507714848, 2508636704, 2509558560, 2510480416, 2511402272, 2512324128, 2513245984, 2514167840, 2515089696, 2516011552, |
拡張したファイルシステムをマウントして検査します。
次に例を示します。
# mount /dev/md/dsk/d98 /datadir # df -h /datadir Filesystem size used avail capacity Mounted on /dev/md/dsk/d98 1.2T 64M 1.2T 1% /datadir |
マルチテラバイトの UFS ファイルシステムに関する問題の障害追跡には、次のエラーメッセージと解決法を参考にしてください。
mount: /dev/rdsk/c0t0d0s0 is not this fstype. |
1T バイトを超える UFS ファイルシステムを、この機能をサポートしていない Solaris リリースが動作するシステムにマウントしようとしました。
1T バイトを超える UFS ファイルシステムは、現在の Solaris リリースが動作するシステムにマウントしてください。
"File system was not set up with the multi-terabyte format." "Its size cannot be increased to a terabyte or more." |
newfs -T コマンドを使わずに作成したファイルシステムを拡張しようとしました。
1T バイトより大きくするファイルシステムのデータをバックアップします。
newfs コマンドを使用して、ファイルシステムをマルチテラバイトファイルシステムに再作成します。
新しく作成したファイルシステムにバックアップされていたデータを復元します。
一時ファイルシステム (TMPFS) は、ファイルシステムの読み取りと書き込みにローカルメモリーを使用します。一般に、一時ファイルシステムは、UFS ファイルシステムに比べて読み書きの速度が高速です。TMPFS ファイルシステムを使用すると、ローカルディスク上で、あるいはネットワーク経由で一時ファイルの読み書きを行う際のオーバーヘッドが軽減されるのでシステムのパフォーマンスを向上できます。TMPFS ファイルシステム内のファイルは、リブートまたはマウント解除すると削除されます。
複数の TMPFS ファイルシステムを作成した場合は、すべてのファイルシステムが同じシステムリソースを使用するということに注意してください。mount コマンドの -o size オプションを使用して TMPFS のサイズを制限しないと、ある TMPFS ファイルシステムで作成されたファイルが、ほかの TMPFS ファイルシステムのための領域を使い切ってしまう可能性があります。
詳細は、tmpfs(7FS) のマニュアルページを参照してください。
スーパーユーザーになるか、同等の役割を引き受けます。
必要に応じて、TMPFS ファイルシステムとしてマウントするディレクトリを作成します。
# mkdir /mount-point |
/mount-point は、TMPFS ファイルシステムがマウントされるディレクトリです。
TMPFS ファイルシステムをマウントします。
# mount -F tmpfs [-o size=number] swap mount-point |
TMPFS ファイルシステムのサイズ制限を M バイト単位で示します。
TMPFS ファイルシステムがマウントされるディレクトリを示します。
ブート時に TMPFS ファイルシステムが自動的にマウントされるようにシステムを設定する方法については、例 17–3 を参照してください。
TMPFS ファイルシステムが作成されていることを確認します。
# mount -v |
次の例は、TMPFS ファイルシステム /export/reports を作成およびマウントし、そのサイズを 50M バイトに制限する方法を示しています。
# mkdir /export/reports # chmod 777 /export/reports # mount -F tmpfs -o size=50m swap /export/reports # mount -v |
ブート時にシステムが自動的に TMPFS ファイルシステムをマウントするように設定するには、/etc/vfstab のエントリを追加します。次の例は、ブート時に /export/test を TMPFS ファイルシステムとしてマウントする /etc/vfstab ファイルのエントリを示しています。size=number オプションを指定していないため、/export/test の TMPFS ファイルシステムのサイズは利用できるシステムリソースによってのみ制限されます。
swap - /export/test tmpfs - yes - |
/etc/vfstab ファイルの詳細は、「/etc/vfstab ファイルのフィールドの説明」を参照してください。
LOFS ファイルシステムは、既存のファイルシステムに代替パスを提供する仮想ファイルシステムです。ほかのファイルシステムを LOFS ファイルシステムにマウントしても、元のファイルシステムは変化しません。
詳細は、lofs(7FS) のマニュアルページを参照してください。
LOFS ファイルシステムは慎重に作成してください。LOFS ファイルシステムは仮想ファイルシステムなので、ユーザーやアプリケーションを混乱させる可能性があります。
スーパーユーザーになるか、同等の役割を引き受けます。
必要に応じて、LOFS ファイルシステムとしてマウントするディレクトリを作成します。
# mkdir loopback-directory |
新しく作成したディレクトリに対して、適切なアクセス権と所有権を設定します。
必要に応じて、LOFS ファイルシステムをマウントするマウントポイントを作成します。
# mkdir /mount-point |
LOFS ファイルシステムをマウントします。
# mount -F lofs loopback-directory /mount-point |
ループバックマウントポイントにマウントするファイルシステムを指定します。
LOFS ファイルシステムをマウントするディレクトリを指定します。
LOFS ファイルシステムがマウントされていることを確認します。
# mount -v |
次の例は、新しいソフトウェアを、実際にはインストールしないで、ループバックファイルシステムとして /new/dist ディレクトリに作成、マウント、およびテストする方法を示しています。
# mkdir /tmp/newroot # mount -F lofs /new/dist /tmp/newroot # chroot /tmp/newroot newcommand |
ブート時にシステムが自動的に LOFS ファイルシステムをマウントするように設定するには、/etc/vfstab ファイルの最後にエントリを追加します。次の例は、ルート (/) ファイルシステムの LOFS ファイルシステムを /tmp/newroot にマウントする /etc/vfstab ファイルのエントリを示しています。
/ - /tmp/newroot lofs - yes - |
ループバックファイルシステムのエントリは、/etc/vfstab ファイル内の最後のエントリでなければなりません。ループバックファイルシステムの /etc/vfstab エントリが、そこに組み込まれるファイルシステムよりも前にあると、ループバックファイルシステムをマウントできません。
/etc/vfstab ファイルの詳細は、「/etc/vfstab ファイルのフィールドの説明」を参照してください。