NEWFS(8)

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

書式
newfs [-NO] [-S sector-size] [-T disktype] [-a maxcontig] [-b block-size] [-c cylinders] [-d rotdelay] [-e maxbpg] [-f frag-size] [-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 [-N] [-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 は、わかりにくい mkfs(8) の代わりとなるものです。 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 を使用しません。

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

-b block-size
    ファイルシステムのブロックサイズをバイト単位で指定します。

-c #cylinders/group
    ファイルシステムのシリンダグループごとのシリンダ数を指定 します。デフォルトは 16 です。

-d rotdelay
    同じディスクに対する ディスク転送完了割り込みサービスと新たな転送開始に費す時間の 期待値を指定します (ミリ秒単位)。デフォルトは0ミリ秒です。詳細は、 tunefs(8) を参照してください。

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

-f frag-size
    ファイルシステムのフラグメントサイズをバイト単位で指定します。

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

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

-n number of distinguished rotational positions
    ディスク一回転あたりに確保する回転時間の数を設定します。デフォルトは 1 で、回転位置テーブルを無効にすることを意味します。

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

-s size
    ファイルシステムサイズをセクタ単位で指定します。

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

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

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

-k sector 0 skew, per track
    遅いコントローラを補うためにメディアのフォーマット時の補正を指定します。 トラックスキューは同じシリンダ上のトラック N のセクタ 0 とトラック N-1 のセクタ 0 のオフセットです。

-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) を参照してください。

使用例

    mount_mfs -s=131072 -o nosuid,nodev /dev/sd0b /tmp

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

バグ
FreeBSD のブートコードは、カーネルが置かれているファイルシステムのブロックサイズ が 8 キロバイトでフラグメント 1 キロバイトであることを仮定しています。 他のサイズを使用しているファイルシステムからブートすることはできません。

関連項目
fdformat(1), disktab(5), fs(5), disklabel(8), diskpart(8), dumpfs(8), fsck(8), mount(8), scsiformat(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 から登場しています。