## f_mkfs

論理ドライブ上にFATボリュームを作成(フォーマット)します。

    FRESULT f_mkfs (
      const TCHAR* path, /* [IN] 論理ドライブ番号 */
      BYTE  sfd,         /* [IN] 区画作成方法 */
      UINT  au           /* [IN] クラス・タサイズ */
    );

#### 引数

path
  フォーマット対象の論理ドライブを示すパス名を示すヌル文字`'\0'`終端の文字列へのポインタを指定します。ドライブ番号を含まない場合は、カレント・ドライブを意味します。
sfd
  パーテーション形式。(0(FDISK) または 1(SFD))
au
  クラスタ・サイズをバイト単位で指定します。対象ドライブのセクタ・サイズのn倍(n = 1〜128で、2の累乗)でなければなりません。0を指定した場合、ボリュームのサイズに応じたデフォルトのクラスタ・サイズが選択されます。

#### 戻り値

FR_OK, FR_DISK_ERR, FR_NOT_READY, FR_NOT_ENABLED, FR_MKFS_ABORTED, FR_INVALID_PARAMETER

#### 説明

物理ドライブ上にFATボリュームを作成します。FDISK形式が指定された場合は、物理ドライブ全体を占める基本区画(パーテーション)が作成され、その中にFATボリュームが作成されます。SFD形式では、FATボリュームが物理ドライブの先頭セクタからベタで作成されます。

フォーマットする論理ドライブがマルチ・パーテーション機能(`_MULTI_PARTITION`)によって特定の区画(1〜4)に結び付けられている場合は、その区画の中にFATボリュームが作成されます。`sfd`は無視され、また対応する物理ドライブはこれに先立ち、`f_fdisk()`または他のツールで適切に区画設定されている必要があります。

パーテーション形式には、FDISK形式とSFD形式の二通りあります。FDISK形式は、ハードディスク、MMC、SDC、CFC、U Diskなどで標準的に使用されます。FDISK形式では一台の物理ドライブ上に一つまたは複数の区画を作成することができます。区画管理情報はMBR(物理ドライブの先頭セクタ)に記録されます。SFD形式は単に何の分割も行わない形式で、ボリュームは物理ドライブの先頭セクタから開始します。SFD形式は、フロッピー・ディスク、マイクロドライブ、光学ディスク、およびその他スーパー・フロッピー・メディアで標準的に使用されています。

FATタイプ(FAT12/FAT16/FAT32)は、そのボリューム上のクラスタ数によってのみ決定される決まり[FAT仕様書より]になっていて、それ以外の要因はありません。したがって、どのFATタイプになるかはボリューム・サイズとクラスタ・サイズに依存します。クラスタ・サイズは大きくするほど性能が上がります。

クラスタ数がFATタイプの境界に近くなるときは、`FR_MKFS_ABORTED`で関数が失敗する可能性があります。

#### 対応情報

`_FS_READONLY == 0`で、且つ`_USE_MKFS == 1`のとき使用可能です。

#### 参照

`ボリューム管理, f_fdisk`

戻る