## f_mkfs

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

    FRESULT f_mkfs (
      BYTE  Drive,              /* 論理ドライブ番号 */
      BYTE  PartitioningRule,   /* 区画作成方法 */
      UINT  AllocSize           /* クラス・タサイズ */
    );

#### 引数

Drive
  フォーマットする論理ドライブ(0-9)。
PartitioningRule
  パーテーション形式(0(FDISK) または1(SFD))を指定します。
AllocSize
  クラスタ・サイズをバイト単位で指定します。2の累乗、且つセクタ・サイズ以上、且つセクタ・サイズの128倍以下でなければなりません。0を指定した場合、ボリュームのサイズに応じたデフォルトのクラスタ・サイズが選択されます。

#### 戻り値

FR_OK, FR_DISK_ERR, FR_NOT_READY, FR_NOT_ENABLED, FR_MKFS_ABORTED, FR_INVALID_PARAMETER

#### 説明

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

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

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

FATタイプ(FAT12/FAT16/FAT32)は、その論理ドライブ上のクラスタ数によってのみ決定される決まり[FAT仕様書より]になっていて、それ以外の要因はありません。したがって、どのFATタイプになるかはドライブ・サイズとクラスタ・サイズに依存します。クラスタ・サイズは大きくするほど性能が上がり、ディスク利用効率は落ちます。

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

#### 対応情報

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

#### 参照

`ボリューム管理, f_fdisk`

戻る