#1.この記事の内容
ファイルシステムの種類とOSとの対応関係及び制限事項を整理します.
ファイルシステムとは,OSが提供する機能の一つで,HDDやUSBメモリ等の記憶装置に保存されたデータの管理や操作に必要な機能です.
フォーマットの際に,FAT32,exFAT,NTFS等が指定できますが,OSごとに対応するフォーマットが異なります.
例えば,FAT32はWindowsやMac,Linux,raspbian等多くのOSが対応している為,FAT32でフォーマットした記憶装置を用いるとパソコン間でデータの受け渡しが可能となります.
ただし,ファイルシステムごとに,1ファイルのサイズ上限や,1フォルダ内に格納可能なファイル数等の制限がある為,注意が必要です.
本記事の調査にあたり参照したサイトは,ページ下部の関連リンクに記載しています.
#2.ファイルシステムの種類とOSとの対応関係一覧
個人的によく使用する,FAT32,exFAT,NTFS,ext4について調査しました.
RW:読み書き可能
RO:読み取りのみ可能
×:非対応
ファイルシステム | Windows | Mac | Linux | ボリュームサイズ | 1ファイルの最大サイズ | 1ディレクトリ内の最大ファイル数 |
---|---|---|---|---|---|---|
FAT32 | RW | RW | RW | 2TiB ※Windowsでは32GiB |
4GiB | 65,535(※1) |
exFAT | RW | RW | × | 64ZiB | 16EiB | 2,796,202 |
NTFS | RW | × | × | 16EiB | 16EiB | 4,294,967,295 |
ext4 | × | × | RW | 1EiB | 16TiB | i-nodeに依存 |
※1:ファイル名が8.3形式(ファイル名(8文字).拡張子(3文字))準拠かつルートディレクトリの場合のファイル数.ファイル数が長い場合やサブディレクトリの場合は,ファイル数が抑制される.
ファイル名の形式 | ルートディレクトリ | サブディレクトリ | ファイル名備考 |
---|---|---|---|
8.3形式 | 65,535 | 65,534 | 大文字と記号のみ12文字まで |
13文字 | 65,535÷3→21,845 | 65,534÷3→21,844 | 小文字や数字含む13文字の例 |
25文字 | 65,535÷4→16,383 | 65,534÷4→16,383 | 小文字や数字含む25文字の例 |
#3.さいごに
RaspberryPi上でCOCOデータセットの「2017 Test images [41K/6GB]」を扱おうと,FAT32でフォーマットしたUSBメモリにコピーを試みたところ,下記のエラーが発生し,FAT32の制約事項(1ディレクトリ内のファイル数超過)への該当が判明したことから本調査を行いました.
同様の問題に遭遇した方の参考になれば幸いです.
#4.関連リンク
- ファイルシステム(FAT32、FAT16、NTFS、exFAT、HFS、HFS+、APFS)の違いについて
- OSの対応状況
- Linuxファイルシステムをまとめてみました
- テビバイト
- NTFS volとFAT32のディレクトリごとの最大ファイル数
- NTFS vs FAT vs exFAT
- Is There a Limit to What a Single Folder or Directory Can Hold?
- FAT32のファイルシステムで扱える最大ファイル数は65,535個?21,845個?
- Ubuntuでの1ディレクトリあたりのファイル数上限、容量上限はあるのでしょうか?
- linux(RHEL・CentOS・Amazon linux 2)のディレクトリの格納ファイル数上限
- ファイルシステムおよびストレージの制限
- Linuxのファイルシステムについて