NEWFS(8)

名称
newfs, mount_mfs - 新しいファイルシステムを作成する

書式
newfs [-NOU] [-S sector-size] [-T disktype] [-a maxcontig] [-b block-size] [-c cylinders] [-d rotdelay] [-e maxbpg] [-f frag-size] [-g avgfilesize] [-h avfpdir] [-i bytes] [-k skew] [-l interleave] [-m free space] [-n rotational positions] [-o optimization] [-p sectors] [-r revolutions] [-s size] [-t tracks] [-u sectors] [-v] [-x sectors] special mount_mfs [-NU] [-F file] [-T disktype] [-a maxcontig] [-b block-size] [-c cylinders] [-d rotdelay] [-e maxbpg] [-f frag-size] [-i bytes] [-m free space] [-n rotational positions] [-o options] [-s size] special node

解説
newfs は、ファイルシステムを最初に使用する前に初期化およびクリアします。 newfs や mount_mfs を走らせる前に、 disklabel(8) を使ってディスクラベルが書き込んでいなければなりません。 newfs は、指定した特殊ファイルにファイルシステムを作成します。 (しばしば “特殊ファイル” を “ディスク” として扱いますが、特殊ファイルは物理ディスクである必要はありません。 事実、特殊ファイルである必要もありません。) デフォルト値はたいてい妥当な値となりますが、 newfs にはこの値を変更するための数多くのオプションがあります。

mount_mfs は、仮想メモリ上にファイルシステムを構築し、指定したノード にそのファイルシステムをマウントするために使います。 ファイルシステムがアンマウントされると、 mount_mfs は終了し、このファイルシステムの内容は失われます。 mount_mfs にシグナルが送られると、 ファイルシステムをアンマウントしようとします。たとえば、 シャットダウンする場合がこれにあたります。 mount_mfs に指定するパラメータは newfs のものと同じです。 -T フラグが指定されると (下記参照)、特殊ファイルを使用しません。 そうでない場合、特殊ファイルはディスクラベルを読むためにのみ使われ、 それによってメモリベースファイルシステムへのコンフィギュレーション パラメータが得られます。 この特殊ファイルは通常、第一スワップ領域を指定します。という のは、フリーメモリが少なくなって、ファイルシステムをサポートす るメモリ領域がページングされるとき、ファイルシステムがそこに バックアップされるからです。

以下のオプションにて一般的な配置方針を定義します。

-T disktype
    過去のものとの互換性のためと mount_mfs のための物です。

-F file
    mount_mfs は、ファイルシステムのイメージとしてこのファイルを使用します。 mount_mfs が終了した時、このファイルは残されます。

-N  実際にはファイルシステムを構築せずに、ファイルシステム パラメータの表示のみを行います。

-O  4.3BSD フォーマットのファイルシステムを作成します。この オプションは、古いブート ROM が理解できるルートファイル システムを使う必要がある場合に使います。

-T  指定したディスクのための情報を /etc/disktab から得て、disklabel を使用しません。

-U  ソフトアップデートを新規ファイルシステム上で有効にします。

-a maxconting
    回転遅延 (rotational delay) を強制する前に 配置される連続ブロックの最大数を指定します ( -d オプションを参照)。 デフォルトは 1 です。このオプションをどのように設定す るかについて、詳しくは tunefs(8) を参照してください。

-b block-size
    ファイルシステムのブロックサイズをバイト単位で指定します。 2 のべき乗である必要があります。 デフォルトサイズは 16384 バイトであり、 可能な最小サイズは 4096 バイトです。 最適なブロックとフラグメントの比率は 8:1 です。 他の比率も可能ですが、お勧めできませんし、予期せぬ結果となるかもしれません。

-c #cylinders/group
    ファイルシステムのシリンダグループごとのシリンダ数を指定します。 デフォルトは、他のパラメータに許される最大値を計算するものです。 この値は、他の多くのパラメータ、 特にブロックサイズとバイトあたりの inode 数に依存します。 newfs は最大値を表示します。

-d rotdelay
    かつては、 同じシリンダに対して他のディスク転送を開始するために要する最小時間を ミリ秒で指定しました。 この値は、 ファイル中の各ブロックを、回転に対して最適に配置するために使用しました。 読み込み/書き込みを背後で行う近年のディスクでは、 この機能を無効にした方が性能が高いです。 よって、この値はデフォルト値の 0 ミリ秒に設定すべきです。 tunefs(8) を参照してください。

-e maxbpg
    単一のファイルが他のシリンダグループへまたがることを強制される前に、 1 つのシリンダグループから割り当てることのできる最大のブロック数を指定し ます。デフォルト値は、シリンダグループのブロック数の約 1/4 です。この オプションの詳細については、 tunefs(8) を参照してください。

-f frag-size
    ファイルシステムのフラグメントサイズをバイト単位で指定します。 blocksize/8 から blocksize までの範囲の、2 のべき乗である必要があります。 デフォルトは 2048 バイトです。

-g avgfilesize
    ファイルシステム中の、ファイルサイズの平均の期待値。

-h avgfpdir
    ファイルシステム中の、ディレクトリあたりのファイル数の平均の期待値。

-i number of bytes per inode
    ファイルシステム中の inode の密度を設定します。デフォルト は、 (4 * フラグメントサイズ) バイトのデータ領域ごとに 1 つの inode を作ります。 inode 数を少なくしたい場合は大きな値を指定し、 inode 数を多くしたい場合は小さな値を指定します。 各ファイルに対して inode が 1 個必要ですので、 ファイルシステム上の平均ファイルサイズを、 この値は事実上指定します。

-m free space %
    通常のユーザからは保護されている領域のパーセンテージを 指定します。 これは最低限の空き領域のしきい値となります。 デフォルト値は <ufs/ffs/fs.h> にて MINFREE と定義され、現在 8% です。 このオプションの詳細については、 tunefs(8) を参照してください。

-n number of distinguished rotational positions
    UFS には、 異なった回転位置にある利用可能なブロックを管理する能力があります。 これにより、最小の回転遅延でデータを拾えるように、 データをレイアウト可能です。 このパラメータは、区別すべき回転位置数のデフォルトを指定します。

    今日では、この値は 1 に設定すべきです (回転位置テーブルを無効にします)。 先読みと後書きがある近年のドライブでは、 回転位置テーブル無しの方が性能がよいからです。

-o optimization preference
    (space か time) ブロック確保に費す時間を最小にするか、 ディスク上のフラグメント領域を最小にするかを、 ファイルシステムに指示します。 デフォルトで minfree (前述) が 8% を下回る場合は、 space (空間) の最小化が行われ、8% 以上ならば time (時間) の最小化が行われます。 このオプションの詳細については、 tunefs(8) を参照してださい。

-s size
    ファイルシステムサイズをセクタ単位で指定します。 デフォルト値は、 special で指定される raw パーティションのサイズです (言い換えると、 newfs はパーティション全体をファイルシステムに使用します)。

-v  ディスクにはパーティションが含まれておらず、 newfs はディスク全体の上にファイルシステムを構築すべきであることを指定します。 本オプションは vinum のような統合ディスクを扱うのに便利です。

次のオプションは、ディスクジオメトリの標準設定を変更します。 デフォルトの値はディスクラベルから得られます。 これらの値を変更するのは、 最初にファイルシステムを構築したときとは異なるタイプのディスク上で ロウイメージを使用してファイルシステムを構築するようなときだけです (たとえば、ライトワンスディスク上など)。 これらの値をデフォルトの 値から変更すると、標準のスーパブロックが壊れたときに、 fsck(8) が代替のスーパブロックを見つけることができなくなるので注意して ください。

-S sector-size
    セクタサイズ (バイト単位) です (通常 512 以外は使用しません)。

-k sector 0 skew, per track
    遅いコントローラを補うためにメディアのフォーマット時の補正を指定します。 トラックスキューは同じシリンダ上のトラック N のセクタ 0 とトラック N-1 のセクタ 0 のオフセットです。 このオプションは、歴史的には重要でした。 近年のコントローラは十分高速であり、 操作を続けざまに (back-to-back で) 行います。

-l hardware sector interleave
    遅いコントローラを補うためにメディアのフォーマット時の補正を指定します。 インタリーブはトラック毎の物理セクタのインタリーブで、次の比の分母で 定義されます:
        読まれるセクタ/通過するセクタ
    つまりインタリーブの 1/1 は連続的に配置されていることを、 1/2 は論理 セクタ 0 と論理セクタ 1 との間に 1 セクタあることを示します。 このオプションは、歴史的には重要でした。 近年のディスクの物理レイアウトは、外部からは見えません。

-p spare sectors per track
    予備セクタ (不良セクタと置き換えるセクタ) は、 各トラックの最後の物理セクタを使用します。 これらには、ファイルシステムとしてデータを割り当てることができないため、 セクタ/トラック (-u) に含まれません。 このオプションは、歴史的には重要でした。 近年のディスクは、ディスク固有の不良セクタ割り当てを行います。

-r revolutions/minute
    1 分間あたりのディスク回転速度を指定します。 この値はもはや価値がありません。 この値に依存するすべてのパラメータは、通常は無効になっているからです。

-t #tracks/cylinder
    ファイルシステムによってデータを割り当てることができるシリンダあたりの トラック数です。デフォルトは 1 です。0 が設定された場合にはディスクラベル に指定されている値が使われます。

-u sectors/track
    ファイルシステムによってデータを割り当てることができるトラックあたりの セクタ数です。デフォルトは 4096 です。 0 が設定された場合にはディスクラベルに 指定されている値が使われます。この値には、各トラックの最後に確保 される不良ブロックの置き換えのための予備セクタは含まれません ( -p オプションを参照)。

-x spare sectors per cylinder
    予備セクタ (不良セクタと置き換えるセクタ) は、シリンダの最後のトラック の物理セクタを使用します。これらには、ファイルシステムとしてデータを 割り当てることができないため、セクタ/トラック (-u) には含まれません。 このオプションは、歴史的には重要でした。 近年のディスクは、ディスク固有の不良セクタ割り当てを行います。

mount_mfs コマンドのオプションは、 -o オプションを除いて newfs コマンドと同じものです。

-o オプションは以下のとおりです:

-o  -o フラグに続いて指定されるオプションは、コンマで区切られた文字列です。 指定できるオプションとその意味は mount(8) を参照してください。

使用例
    newfs /dev/ad3s1a

新規の UFS ファイルシステムを ad3s1a に作成します。 newfs は、ブロックサイズに 16384 バイト、フラグメントサイズに 2048 バイト、 グループあたりのシリンダ数に最大数を使用します。 ほとんどのアプリケーションに対し、 これらの値は歴史的なデフォルトよりも良い性能となる傾向があります。 この大きなフラグメントサイズは、 小さなファイルを大量に含むファイルシステム上に、無駄な領域を生じさせます。

    mount_mfs -s 131072 -o nosuid,nodev,nosymfollow /dev/da0s1b /tmp

mount(8) の nosuid, nodev, nosymfollow のオプションを指定し、 64 MB の大きさのメモリファイルシステムを /tmp にマウントします。

関連項目
fdformat(1), disktab(5), fs(5), camcontrol(8), disklabel(8), diskpart(8), dumpfs(8), fsck(8), mount(8), tunefs(8) M. McKusick, W. Joy, S. Leffler, R. Fabry, A Fast File System for UNIX, ACM Transactions on Computer Systems 2, 3, pp 181-197, August 1984, (reprinted in the BSD System Manager's Manual).

歴史
newfs コマンドは、 4.2BSD から登場しています。