EN JA
NEWFS_MSDOS(8)
NEWFS_MSDOS(8) FreeBSD System Manager's Manual NEWFS_MSDOS(8)

名称

newfs_msdos新しい MS-DOS (FAT) ファイルシステムを構築する

書式

newfs_msdos [ -N][ -@ offset][ -B boot][ -C create-size][ -F FAT-type][ -I VolumeId][ -L label][ -O OEM][ -S sector-size][ -a FAT-size][ -b block-size][ -c cluster-size][ -e DirEnts][ -f format][ -h heads][ -i info][ -k backup][ -m media][ -n FATs][ -o hidden][ -r reserved][ -s total][ -u track-size] special [ disktype]

解説

newfs_msdos ユーティリティは、必要なら、ジオメトリを決定するために disktab(5) エントリの disktype を使用して、指定された special のデバイスまたはファイルに FAT12、FAT16 または FAT32 ファイルシステムを作成します。

special/ を含んでいなくて、 -C が使用されていないなら、デバイス名であると見なし、 /dev/ は、実際のデバイス名を構成する名前の前に追加されます。カレントディレクトリ中のファイルを扱うためには、 ./filename を使用します。

オプションは、次の通りです:

-N
ファイルシステムを作成しません: 単にパラメータを印刷 (表示) します。
-@ offset
デバイスまたはファイルのバイト単位で指定されたオフセットでファイルシステムを構築します。オフセットに追加された接尾辞 s、k、m、g (小文字または大文字) は、数値が、それぞれセクタ、キロバイト、メガバイト、またはギガバイト単位であることを指定します。
-B boot
ファイルからブートストラップを取得します。
-C create-size
指定されたサイズでイメージファイルを作成します。サイズに追加された接尾辞の文字は、 -@ オプションと同様に解釈されます。ファイルは、既存ファイルを切り詰め、要求されたサイズにそれをリサイズすることによって同じ名前で作成されます。ファイルシステムがスパース (sparse) ファイルをサポートしているなら、ディスク上に占有された空間は、パラメータとして指定されたサイズより小さいかもしれません。
-F FAT-type
FAT タイプ (12、16 または 32 の 1 つ)。
-I VolumeID
ボリューム ID、10 進数または 16 進数 (0x...) 形式の 32 ビット数。
-L label
ボリュームラベル (最大 11 文字)。ラベルは、通常の DOS (8+3) ファイル名に許される文字のみから成るべきです。
-O OEM
OEM 文字列 (最大 8 文字)。デフォルトは、“ BSD 4.4”です。
-S sector-size
1 セクタあたりのバイト数。受け付け可能な値は、512 から 32768 までの範囲の 2 のべき乗です。
-a FAT-size
1 FAT あたりのセクタ数。
-b block-size
ファイルシステムのブロックサイズ (1 クラスタあたりのバイト数)。この値は、1 クラスタあたりの受け付け可能なセクタ数に帰着するべきです (下記参照)。
-c cluster-size
1 クラスタあたりのセクタ数。受け付け可能な値は、1 から 128 までの範囲の 2 のべき乗です。ブロックまたはクラスタサイズが指定されていないなら、コードは、ファイルシステムのサイズによって、512 バイトと 32K の間のクラスタを使用します。
-e DirEnts
ルートディレクトリのエントリ数 (FAT12 と FAT16 のみ)。
-f format
標準 (フロッピディスク) の形式を指定します。標準の形式は、(キロバイト単位の最大容量): 160, 180, 320, 360, 640, 720, 1200, 1232, 1440, 2880 です。
-h heads
ドライブのヘッド数。
-i info
ファイルシステム情報セクタの位置 (FAT32 のみ)。 0xffff の値は、情報セクタが無いことを表します。
-k backup
バックアップブートセクタの位置 (FAT32 のみ)。 0xffff の値は、バックアップセクタが無いことを表します。
-m media
メディア記述子 (受け付け可能な範囲は、0xf0 から 0xff まで)。
-n FATs
FAT 数。受け付け可能な値は、1 から 16 までです。デフォルトは、2 です。
-o hidden
隠しセクタの数。
-r reserved
予約セクタの数。
-s total
ファイルシステムのサイズ。
-u track-size
1 トラックあたりのセクタ数。

いくつかのパラメータ (例えば、サイズ、セクタの数など) がオプションまたはディスクタイプを通して指定されないなら、プログラムは、それらを自動的に生成しようと試みます。特に、サイズは、 -@ オプションで指定されたオフセットを引いたデバイスまたはファイルサイズとして決定されます。ジオメトリが利用可能でないとき、63 セクタ、255 ヘッドと見なされます。次に、サイズは、いくつかのファイルシステムのコードによってエラーが出ないようにするために、トラックサイズの倍数となるように丸められます。

FAT ファイルシステムパラメータは、実際のファイルシステムに前の "予約された"セクタの最初の "ブートセクタ BPB (BIOS パラメータブロック)"を占有します。参照する目的のために、この構造体を、以下に示します。

struct bsbpb { 
    uint16_t bpbBytesPerSec;  /* [-S] 1 セクタあたりのバイト */ 
    uint8_t bpbSecPerClust;  /* [-c] 1 クラスタあたりのセクタ */ 
    uint16_t bpbResSectors;  /* [-r] 予約セクタ */ 
    uint8_t bpbFATs;  /* [-n] FAT の数 */ 
    uint16_t bpbRootDirEnts;  /* [-e] ルートディレクトリのエントリ */ 
    uint16_t bpbSectors;  /* [-s] 合計セクタ */ 
    uint8_t bpbMedia;  /* [-m] メディア記述子 */ 
    uint16_t bpbFATsecs;  /* [-a] 1 FAT あたりのセクタ */ 
    uint16_t bpbSecPerTrack;  /* [-u] 1 トラックあたりのセクタ */ 
    uint16_t bpbHeads;  /* [-h] ドライブヘッド */ 
    uint32_t bpbHiddenSecs;  /* [-o] 隠しセクタ */ 
    uint32_t bpbHugeSectors;  /* [-s] ビッグ合計セクタ */ 
}; 
/* FAT32 拡張 */ 
struct bsxbpb { 
    uint32_t bpbBigFATsecs;  /* [-a] 1 FAT あたりのビッグセクタ */ 
    uint16_t bpbExtFlags;  /* 制御フラグ */ 
    uint16_t bpbFSVers;  /* ファイルシステムバージョン */ 
    uint32_t bpbRootClust;  /* ルートディレクトリ開始クラスタ */ 
    uint16_t bpbFSInfo;  /* [-i] ファイルシステムの情報セクタ */ 
    uint16_t bpbBackup;  /* [-k] バックアップブートセクタ */ 
};

制限

たとえファイルシステム自体が大きくても、最大のファイルサイズは、4GB です。

終了ステータス

終了ステータスは、成功すれば 0、エラーの場合は、1 です。

使用例

/dev/ada0s1 に、デフォルトパラメータを使用して、ファイルシステムを作成します:

newfs_msdos /dev/ada0s1

/dev/fd0 に、ボリュームラベル foo を付けて標準の 1.44M ファイルシステムを作成します:

newfs_msdos -f 1440 -L foo fd0

イメージファイル内の 63 セクタで始まる FAT パーティションで 30MB のイメージファイルを作成します:

newfs_msdos -C 30M -@63s ./somefile

歴史

newfs_msdos ユーティリティは、 FreeBSD 3.0 ではじめて登場しました。

作者

Robert Nordier <rnordier@FreeBSD.org>.
October 1, 2013 FreeBSD