気の向くままに辿るIT/ICT/IoT
システム

ファイルシステム / File System / FS

ホーム前へ次へ
ファイルシステムとは?

ファイルシステム / File System / FS

ファイルシステム / File System / FSとは

 ファイルシステムは、記憶領域の物理構造に依存しない論理構造で記憶域を管理する仕組みであり、OSの有無に関わらず存在し、PCのHDDのようにOSが存在する場合、OSによって読み書き可能なファイルシステムが異なる場合もありますが、それらに共通の基盤となる仕組みとしてVFS/Virtual File System/仮想ファイルシステムがあります。

 これはハードディスクだけでなく、メモリやCD/BD/DVD用のファイルシステムなどもあります。

 例えば、円形の回転式磁気ディスク(のハードディスク)やBD/MO/PD/CD/DVDのような光ディスクは、同心円のトラックで構成され、物理的には内側と外側で記憶領域に利用できる大きさが異なり(外側に行くほど大きくなり)ますが、この違いを吸収する為、それぞれのトラックは、この物理的なサイズをセクタという単位で分割し、このセクタを論理的なサイズであるクラスタという単位にまとめて読み書きするようになっています。

OSFile System
WindowsFAT/VFAT/FAT32/NTFS
UNIXUFS
Linuxext2/ext3/ext4/Btrfs/ReiserFS
UNIX/LinuxJFS/XFS
Mac OS( X)MFS/HFS/HFS+
File SystemWindows
FAT(12)MS-DOS
VFATNT 3.5/95
FAT1695
FAT3295 OSR2/98/98SE/ME
NTFSNT 3.51含む以降
FAT16FAT32NTFS
95 OSR2-
98/98SE/ME-
NT-
2000
XP以降
NTFS 1.2NTFS 3.0NTFS 3.1
NT 3.51/4.02000XP
NTFS1.2(NT系)とNTFS3.x(2000やXP)は互換性なし(除:NT4.0 SP4)

 前述のようにハードディスク用のファイルシステムには、Windowsでは、FAT/File Allocation Table系でMS-DOS用のFAT、Windows 95用のVFAT(FAT16)、Windows 95 OSR2/98/98SE/ME用のFAT32とWindows NTから採用されているNTFS/NT File Systemがあります。

 UNIXには、UFS/Unix File System、Linuxには、extended filesystem(ext1)とその各バージョンext2/ext3/ext4、Btrfs/B-tree filesystem、ReiserFSなどが、UNIX用だったものが後にオープンソースとなるなどしてLinuxなどでも使われているものにJFS/Journaled File SystemやXFSなどがあります。

 初期のMac OSでは、擬似的なファイルシステムであるMFS/Macintosh File System、後のMac OSやMac OS XではHierarchical File Systemを意味するHFS/HFS+が採用されています。

 尚、後述のように新しいファイルシステムへの変換も可能であり、また、Windows以外のOSでは、Windowsのファイルシステムを認識可能な場合があります。

その他のファイルシステム

ISO 9660
procfs
NFS
tmpfs
unionfs
aufs
mhddfs
squashfs
...etc.

 Live CDには、書き込み機能を実装すべく、unionfsやmhddfsが、unionfsを改良、後に更なる進展を遂げているaufs/Another UnionFS、限られた容量を有効利用する為の圧縮ファイルシステムであるsquashfs、メモリ用tmpfsといったファイルシステムが広く利用されています。

 後に一部DVDやBDでも利用されるようになったCD-ROM用のファイルシステムにはISO 9660、ISO 9660に置き換えるべく考案されたUDF/Universal Disk Formatが、UNIX/Linuxのプロセス用ファイルシステムにはprocfs/process file systemやスワップ領域用のスワップファイルシステム、UNIXにおけるファイルシステム及びプロトコルでネットワーク上の異なるマシンのファイルシステムやOS間で読み書きできる領域を管理するNFS/Network File System、メモリ用tmpfsなどもあります。

 ISO 9660は、後に拡張機能としてCDをブータブルメディアとする為のEl Torito、主にUNIX/Linuxで利用されるRock Ridge/IEEE P1282、ロングファイルネームに対応したRomeoやJoliet、Apple社のMac OS/Mac OS X用のApple ISO9660 Extensionsなどがあります。

 また、ISO 9660には、Level 1、2、3があり、各拡張は、Joliet/Rock Ridgeを利用できないシステムではISO 9660 Level 1、Apple ISO9660 Extensionsを利用できないシステムではISO 9660 Level 2として読み込み可能となっています。

ハイブリッドISO

 ハイブリッドISOというのは、俗称で当初は、El Torito/ISO 9660とMacintoshにおけるファイルシステムHFS/HFS+の何れも使えるISOディスクイメージという意味でしたが、近年、CD/DVD/BDだけでなくUSBメモリにもディスクイメージコピーできるISOディスクイメージを指すことが多くなっているようです。

 前述の通り、El Torito/ISO 9660仕様は、CD用に規格され、後に登場したDVDやBDでも利用されるケースもあるわけですが、後に登場したUSBメモリは、これらとは異なるパーティションとファイルシステムによるフォーマットを要するので本来、USBメモリには、USBメモリ用イメージが用意されるのが普通でISOディスクイメージをUSBメモリで利用することは想定されていませんでした。

 ただ、こうした用途においてCD/DVDからUSBメモリに移り変わろうとしている状況もあってか、これら用のISOディスクイメージをUSBメモリでも利用できるようにしたハイブリッドISOなるものが登場することになりました。

 ハイブリッドISOは、カーネルのコンパイル時に意図して作成されるものでLinux/*BSD/PC-UNIXの中には、基本ハイブリッドISOが提供されているケースもあり、そうでない場合でも[isohybrid]コマンドによって後からハイブリッドISOに変換、パイプでコマンドを連結すれば、元のISOディスクイメージを残して新たにハイブリッドISOを生成することもできるようになっているケースもあります。

ファイルシステムの変換

ファイルシステム変換
Windows
コマンドプロンプト
コマンド
FAT16/FAT32からNTFSconvert
Linuxコンソールコマンド
ext2からext3tune2fs
ext3からext4

 一般に有効性やセキュリティ面からファイルシステムは最新の安定版を使用することが推奨され、特にWindowsでは、NTFS以降が推奨されます。

 ただ、後述のように異なるOSとの間でのファイルシステム内の読み書きにおける対応度合いからFAT/FAT32(/対応が徐々に進むNTFS)を利用するケースもあります。

 尚、FAT16/FAT32からNTFS、ext2からext3、ext3からext4へ保存済みデータを壊すことなくファイルシステムを変換することが可能です(が戻すことはできません)。

異なるファイルシステムの共存

 例えば、マルチブートさせる場合のようにディスク内のパーティションごとにファイルシステムを設定する方法やホストOSと仮想マシン内のゲストOSなど同一マシン内で(物理的なHDDのファイルシステムとイメージファイル内のファイルシステムなど)異なるファイルシステムを共存させる方法はいくつかあります。

異なるファイルシステム間のデータ交換

 ハードディスク用のファイルシステムについては、Windows、UNIX/Linux、Mac OS/Mac OS XといったOSによって異なる仕組みを採用しており、そのままではファイル交換をすることができないようになっています。

 しかし、Windowsの普及度合いから、LinuxではWindowsのファイルシステムでの読み書きに対応している場合もありますし、Windowsネットワークを実装したフリーソフトウェアであるSamba(のファイルシステムsmbfsやcifs)を介してUNIXベースまたはUNIXとしてのMac OS Xを含むUNIX、LinuxとWindows間で環境を共有できる仕組みやNFSによるファイル交換も可能です。

 Linuxでは、かなり前からFAT/FAT32に対応しており、一部NTFSにも対応している場合もあり、何れ完全対応するものと思われますが、現状では、例えば、外付けハードディスクのファイルシステムを(FATより効率的に管理可能な)FAT32でフォーマットしておけば、LinuxとWindows間でファイル共有することが可能となりますが、前述の通り、Windowsでは、有用性やセキュリティ面からNTFS含む以降のファイルシステムが推奨されますのでFAT系マシンがある場合はネットワークにつながず、スタンドアローンとするか、適宜ファイルシステム変換などを利用するとよいでしょうし、NTFSや他の高効率且つセキュリティ的にも安心なファイルシステムが共有可能なマシンならFAT/FAT32ではなくそのファイルシステムを共有するとよいでしょう。

システムレスキュー

 尚、Linuxが対応済みのファイルシステムでフォーマットされたWindowsマシンであれば、Linuxをインストール済みのライブメディアとしてUSBメモリスティックやCD/BD/DVDブート(起動)した場合、マウントさえすれば、ハードディスク上のWindowsのファイル操作も可能になります。

 もちろん、その場合、USBメモリスティックやブート可能なUSB接続の外付けHDDなどのファイルシステムは、Linuxで一般に利用されるext2/ext3などでOKです。

 また、ハードディスクとは別の領域からの操作となる為、フォーマットやパーティション操作、OSの再インストールや入れ替えなども可能となり、LiveメディアをWindowsマシンのレスキュー(復旧)メディアとして利用することもできます。

 同様の目的にも使えるLiveCD用の簡易WindowsとしてPEがあり、マイクロソフト社が無償提供している共にCUI操作のPE作成ソフト及びPEの他、GUI操作できるフリーソフトウェアWinBuilderでPEを作成すれば、PE自体もGUI操作可能、NTFSに対応したWindowsバージョンをベースとして作成されたPEであれば、当然NTFSの読み書きも可能です。

ファイルシステム構造

 Linuxや一部のUNIX系OSでは主要なディレクトリ構成を定め、標準化を図っているものにFHS/Filesystem Hierarchy Standardがあります。

ホーム前へ次へ