Linuxでサポートされているファイルシステムをご存知ですか?MiniTool Partition Wizardのこの記事では、Linuxシステムのファイルシステムの種類を紹介して、それぞれの構造も解説していきたいと思います。
ファイルシステムとは
Wikipediaによると、ファイル システムはデータの保存方法と取得方法を制御するために使用される仕組みです。ストレージ メディアに置かれたデータは大きなデータの集まりとなり、あるデータがどこで止まり、次のデータがどこから始まるのかを区別することができなくなります。
ファイル システムはデータをいくつかの部分に分割し、それぞれの部分に名前を付けることができます。これにより、データは簡単に分離および識別されます。それぞれのデータの集まりを「ファイル」と呼び、データの集まりや名前を管理するための構造や論理規則を「ファイルシステム」と呼びます。
明確に言うと、ファイルシステムはデータ管理スキームの設計です。
データ管理スキームは次のように示されます。
上記のスキームによれば、データ管理の論理構造形式は「ファイル + ディレクトリ + ディレクトリ ツリー」となり、これは現在のほとんどのファイル システムで使用されています(Windows では、ディレクトリはフォルダと呼ばれます)。
データ管理の論理構造に関する情報 + データ = ファイルシステムの論理部分。つまり、データ管理の論理構造スキームが異なると、ファイル システムも異なります。
ファイルシステムは、ファイルシステムAPI、論理部分(データ+データ管理構造に関する情報)、データの物理ストレージの3つの部分で構成されます。
ファイルシステムの論理的な部分は上記の部分で説明しました。 次に、データの物理ストレージについて話しましょう。ストレージ デバイスにデータを保存する場合、ファイル、ディレクトリ/フォルダ、またはディレクトリ ツリーは存在しません。特定の2 進数の文字列のみが存在します。そこで問題は、それらのデータ論理構造形式の情報をどのように記憶装置に保存するかであります。
この問題を説明するには、ストレージデバイスのストレージスペースをより適切に管理するために使用されるパーティションについて言及する必要があります。ストレージ デバイス上にパーティションを作成すると、これらのパーティションに関する情報は、ディスクの最初のセクタ (MBR セクタ) にあるパーティション テーブルに保存されます。次に、ディスクをフォーマットしてこれらのパーティションにファイル システムを追加する必要があります。
ファイルシステムのあるパーティションでは、記憶領域の一部がファイル システムの論理構造情報を格納するために使用されます。この部分は、ファイルシステムによって名前が異なります。たとえば、FATファイル システムではFATテーブル、NTFSファイル システムでは MFT テーブルなどと呼ばれます。そして、残りのスペースは、データをファイルやディレクトリ形式で保存するために使用されます。
パーティションのあるディスクのレイアウトは次の図のようになります
最後に、ファイルシステムAPIについて説明します。これは、ユーティリティまたはユーザー プログラムがファイルシステムにサービスを要求する際に使用するアプリケーションプログラミングインターフェイスです。一部のファイルシステムAPIには、ファイルシステムの作成または初期化、ファイルシステムの整合性の検証、デフラグなどのメンテナンス操作のためのインターフェイスが含まれる場合もあります。
Linuxのディレクトリ構造について
Linuxではディレクトリ ツリーを使用してディレクトリとファイルを管理します。ディレクトリ ツリー情報もストレージ デバイスに保存する必要があり、この部分はルート ファイルシステム (「/」ディレクトリ) と呼ばれます。したがって、ストレージ デバイスのレイアウトは次の図のようになります。
ご存知のとおり、ルート ファイルシステムはLinuxシステムの1 つのディレクトリです。Linuxのディレクトリ構造とファイル システム (パーティション) の間にはどのような関係があるのか疑問に思うかもしれません。この質問について回答するには、まずLinuxLinux のディレクトリ構造を理解する必要があります。
Linuxシステムでは、次の理由からルート ディレクトリ (/) が最も重要なディレクトリと見なされます。
- 他のすべてのディレクトリはルート ディレクトリから派生します。
- ルート ディレクトリは、Linux システムの起動、修復、復元に密接に関連しています。
ルート ディレクトリには、次のサブディレクトリ (第 1 レベルのディレクトリ) が含まれています。
- /bin:任意のユーザーが実行できる共通のシステム コマンドが含まれています。
- /boot:カーネルファイルやブートローダー (grub) ファイルなど、システムの起動に関連するファイルが保存されます。
- /dev:システムに接続されているすべてのハードウェア デバイスのデバイス ファイルが含まれています。これらはデバイス ドライバーではなく、コンピューター上の各デバイスを表し、それらのデバイスへのアクセスを容易にするファイルです。
- /etc:ユーザー情報、サービス起動スクリプト、共通サービスの構成ファイルなど、ホスト コンピューターのローカル システム構成ファイルが含まれています。これは Windows レジストリに似ています。
- /home:ログインとユーザーデータの保存のためのデフォルトの場所であります。各ユーザーは /home にサブディレクトリを持ちます。
- /lib:システムの起動に必要な共有ライブラリ ファイルが含まれています。
- /media:ホストに接続されているフロッピー ディスク、CD、USB サム ドライブなどの外部リムーバブル メディア デバイスをマウントするために使用される場所です。
- /mnt:これは通常のハード ドライブ パーティション (ファイルシステム) の従来のマウントポイントですが、ほとんどの人はハード ドライブを /home にマウントすることを好みます。
- /misc:NFS サービスの共有ディレクトリをマウントするために使用される場所です。
- /opt:他のソフトウェアを配置してインストールするために使用される場所です。
- /usr:正式名は Unix Software Resource で、ソフトウェアのデフォルトのインストール場所であり、Windows システムの「C:Windows + C:Program files」の複合体に似ています。
- /root:root ユーザーのホーム ディレクトリであり、ログインして root ユーザー データを保存するデフォルトの場所です。
- /sbi:システム環境設定に関するコマンドが保存されています。rootのみが使用できますが、一般ユーザーでも閲覧できるコマンドもあります。
- /srv:サービスのデータが含まれています。一部のシステム サービスが開始された後、必要なデータをこのディレクトリに呼び出したり、保存したりできます。
- /tmp:システムが一時ファイルを保存する場所であり、すべてのユーザーがアクセスして書き込みを行うことができます。
- /lost+found:システムが予期せずクラッシュするか、予期せずシャットダウンする場合、システムの起動中に、fsck ツールがこのディレクトリをチェックし、破損したファイルシステムを修復することになります。このディレクトリは各パーティション(ファイルシステム)にのみ表示されることに注意してください。
- /proc:このディレクトリ内のデータはハードディスクには保存されませんが、主にシステムのカーネル、プロセス、外部デバイスのステータス、ネットワークのステータスなどが保存されます。
- /sys:/proc ディレクトリに似ており、このディレクトリ内のデータはメモリに保存されますが、主にカーネルに関連する情報が保存されます。
- /var:キャッシュ、ログ ファイル、ソフトウェア操作中に生成されるファイルなどの動的データを保存するために使用されます。
上記のディレクトリにはサブディレクトリ (セカンダリ ディレクトリ) も含まれています。Linux システムをインストールするときは、ディスクにパーティションを作成し、これらのディレクトリにパーティションをマウントする必要があります。Linuxでディスクをパーティション分割する場合、ルート ディレクトリ用の「/」パーティション、「/boot」パーティション、「/home」パーティション、仮想メモリ用の「swap」パーティションの4つのパーティションを作成するようにアドバイスする人が多いです。
パーティションがマウントされていない他のディレクトリについては、ルートディレクトリと一緒にルートパーティション(ファイルシステム)に保存されます。
以下の図は、Linuxのディレクトリとパーティションのレイアウトを示しています。
Linuxのディレクトリ構造とパーティションの関係は次のとおりです。
- ディレクトリはデータの論理的な位置であり、パーティションはデータの物理的な位置です。
- パーティションは、使用する前にディレクトリにマウントする必要があります。
- 一般に、1つのディレクトリに1つのパーティションをマウントすることをお勧めします。 ただし、Linuxでは、同じパーティションを複数のディレクトリにマウントすることができるし、aufsを使用して同じディレクトリに複数のパーティションをマウントすることもできます。(一部の Linux システムはこの機能をサポートしていません)。
- Aufsを使用せずに同じディレクトリに 2 つのパーティションをマウントすると、最後のパーティションが前のパーティションをカバーします。でも心配しないでください。カバーされたパーティションのデータは失われません。
- パーティションのマウントを解除しても、中のデータは失われません。
一般的なLinuxファイルシステム
Linuxは約100種類のパーティションの読み取りをサポートしていますが、作成および書き込みができるのはそのうちの少数のみです。一般的に使用されるLinux ファイルシステムは、ext2、ext3、ext4、JFS、ReiserFS、XFS、および Btrfsです。このパートでは、これらのファイル システムについて簡単に紹介します。
Ext2、Ext3、Ext4
ext (extended file system/拡張ファイルシステム) は、Linuxカーネル専用に作成された最初のファイル システムです。1992 年 4 月に実装され、MINIX ファイルシステムの特定の制限を克服することを目的としていました。
- 長所:新しい仮想ファイルシステム (VFS) 抽象化レイヤーを使用し、最大 2 GB のストレージに対応できました。
- 短所:原始的なタイムスタンプを使用します(今日私たちがよく知っている i ノードの作成、ファイル アクセス、ファイルの変更に 3 つの個別のスタンプを使用するのではなく、ファイルごとに 1 つのタイムスタンプのみです)。これを踏まえて、すぐに ext2 に置き換えられました。
Ext2は、Linux用の最初の商用グレードのファイル システムであり、BSDの Berkeley Fast File System と同じ原理に従って設計されました。
- 長所:速度と CPU 使用率の点で際立っており、特に中規模および小規模のファイルに対して優れたファイル アクセス パフォーマンスを発揮しています。そのため、Linuxカーネルと最終的にはMINIXの両方で広く使用されるようになり、サードパーティのモジュールを使用して MacOS と Windows で利用できるようになりました。
- 短所:データがディスクに書き込まれている間にシステムがクラッシュしたり電源が失われたりすると、致命的な破損が発生する可能性がありました。 また、時間の経過とともに断片化が発生し、パフォーマンスが大幅に低下することもありました。
Ext3プロジェクトは1998年に開始され、2001年11月に採用されました。ext2と同様に、ext3は16ビットの内部アドレス指定を使用します。 これは、ブロック サイズが4K、最大ファイルシステム サイズが 16 TBの場合、処理できる最大ファイル サイズは 2 TB であることを意味します。
- 長所:ジャーナリングを使用して信頼性を向上させ、不潔なシャットダウン後にファイル システムをチェックする必要がなくなります。 システムが突然クラッシュした場合、新しく再起動されたシステムは、直前に実行した操作を不完全なトランザクションとして認識し、まったく行われていないかのようにロールバックします。
- 短所:ファイルデータの処理速度と解凍を向上させるほどの高いパフォーマンスはなく、最大ファイルシステムと最大ファイルの制限があります。
Ext4は2006年に開始され、2008年に正式にリリースされました。Ext3をベースにしており、ext3のストレージ制限を拡張することを目的としていました。Ext4は、最大16TBのファイルの保存と最大1EB のパーティションの作成をサポートできます。
JFS
JFS (Journaled File System) は、AIX UNIX用に IBM によって開発された 64 ビットのジャーナリング ファイル システムです。主にサーバー (シングル プロセッサ システムから高度なマルチプロセッサおよびクラスタ システムまで) の高スループットおよび信頼性要件を満たすように設計および開発されています。
2000 年 2 月、IBM は、オープン ソース ライセンスの下で Linux バージョンの JFS ファイル システムを移植すると発表しました。 したがって、多くのユーザーがこのエンタープライズ レベルのファイル システムをインストールして使用しています。
- 長所:高速再起動機能があります。JFSは、数秒または数分以内にファイル システムを一貫した状態に復元できます。
- 短所:ログを保存するときにシステムは大量のデータを書き込む必要があるため、パフォーマンスがある程度低下し、システム リソースの占有率が高くなります。
ReiserFS
ReiserFS (Reiser3 とも呼ばれる) は、Hans Reiser 率いる Namesys のチームによって最初に設計および実装された汎用のジャーナリングされたコンピューター ファイル システムです。 これは、パフォーマンスと高度な機能が向上した ext3 の代替として導入されました。
SuSE Linux のデフォルトのファイル形式が ReiserFS だった時期もありましたが、その後 Reiser は殺人罪で有罪判決を受け、Namesysは2008 年に廃業しました。SuSeにはext3に戻る以外に選択肢はありませんでした。ReiserFSは現在、ボランティアによってオープンソースとして維持されています。
- 長所: 新しいオンディスク形式が導入され、ファイル サイズが大きくなり、ストレージの効率、速度、機能が向上しました。後継は Reiser4です。
- 短所:バージョンアップのたびにディスクをフォーマットする必要があるので、セキュリティ性能と安定性はext3と比べて一定のギャップがあります。そして、非常に長いファイル ディレクトリを正しく処理できません。768文字を超えるファイル ディレクトリを作成し、lsまたはその他の echoコマンドを使用すると、システムがハングする可能性があります。
XFS
XFSは、1993年に Silicon Graphics, Inc (SGI) によって作成された高性能 64 ビット ジャーナリング ファイル システムです。2001 年以来、Linux カーネルに組み込まれています。
- 長所:ほとんどのストレージ容量と I/O ストレージ要件を満たすことができます。 さらに、高度な同時実行性 (つまり、非常に多くのプロセスがすべて同時にファイル システムに書き込む) が可能です。
- 短所:少し複雑で実装が難しいため、XFS は現在主にハイエンド Linux エンタープライズ アプリケーションで使用されています。
Btrfs
Btrfs(B ツリー ファイル システム) は、コピー オン ライト (COW) 原理に基づくファイル システムであり、2007年に開発始めたものです。2013 年 11 月以来、ファイル システムのディスク上のフォーマットは Linux カーネルで安定していると宣言されています。
- 長所:Linuxファイル システムにおけるプーリング、スナップショット、チェックサム、および統合されたマルチデバイス スパンの欠如に対処することを目的としています。 複数のデバイス管理、ブロックごとのチェックサム、非同期レプリケーション、インライン圧縮などを提供することを目的としています。
- 短所:信頼できるボリューム マネージャーではありません。パフォーマンスに重大な問題があり、次世代機能 (レプリケーション、複数ディスク トポロジ、スナップショット管理) には非常にバグが多いため、データ損失が発生する可能性があります。
Windowsシステムで Ext2/3/4 パーティションを作成する方法
WindowsとLinuxのデュアルブート環境を構築したり、永続ストレージを備えたLinux USB を作成したりする場合は、予めにWindows システムでLinux 用のext2/3/4パーティションを作成することができます。これを行うには、MiniTool Partition Free Editionを使用することをお勧めします。
MiniTool Partition Wizard Freeクリックしてダウンロード100%クリーン&セーフ
ステップ1:MiniTool Partition WizardをPCにダウンロードしてインストールします。
ステップ2:このソフトウェアを起動してメインインターフェースに入ります。
ステップ3:ディスク上の未割り当て領域を右クリックして「新規作成」をクリックします。未割り当て領域がない場合は、「移動/サイズ変更」機能を使って、既存のパーティションから未割り当て領域を作成することができます。
ステップ4:ポップアップ ウィンドウで作成するパーティションの各パラメータを設定します。
- 「ファイルシステム」のドロップダウン メニューを展開して、ext2、ext3、またはext4を選択します。
- パーティションのサイズと場所を調整します。
- その他のパラメータについては、デフォルト設定をそのまま使用できます。
ステップ5:「OK」をクリックして続行します。
ステップ6:変更をプレビューし、「適用」をクリックします。
ext2/3/4パーティションを作成したら、Linuxシステムのインストールを開始できます。Windows と Linux をデュアルブートする方法と、永続ストレージを備えたポータブル Linux を作成する方法の詳細な手順については、こちらの投稿を参照してください。
結語
この記事では、Linuxファイルシステムの種類と構造についての情報を解説しています。ぜひご参考にしてください。また、WindowsシステムでLinux用のext2/3/4パーティションを作成したい場合は、MiniTool Partition Wizardを使用することをお勧めします。なお、このソフトウェアの使用中に何かご不明な点やご意見がございましたら、お気軽に[email protected]までご連絡ください。