Linuxのルートファイルシステムとは?最上位ファイル構造とディレクトリ構成を初心者向けに徹底解説
生徒
「Linuxの勉強をしていると、ルートファイルシステムという言葉が出てきます。ルートディレクトリとは違うんですか?」
先生
「Linuxのルートファイルシステムは、/を最上位としてファイルやディレクトリがつながっている基本のファイル構造です。Linux全体のファイルシステムを理解するときの出発点になります。」
生徒
「Windowsのようにドライブごとに分かれているのとは違うんですか?」
先生
「Linuxでは、別のディスクやパーティションも/から続く一つのディレクトリ構造へ組み込んで利用します。ルートディレクトリやマウントとの違いも含めて、初心者向けに順番に確認していきましょう。」
Linuxを初めて学ぶ人や、 OS・プロセス・メモリ管理・仮想マシン・コンテナの仕組みを図解で理解したい人におすすめの定番書籍です。
試して理解 Linuxのしくみを見る※ Amazonアソシエイト広告リンク
1. Linuxのルートファイルシステムとは?
Linuxのルートファイルシステムとは、Linuxで利用されるファイルやディレクトリの階層構造において、最上位となる/を起点にした基本のファイルシステムです。読み方はルートファイルシステム(ルートファイルシステム)といいます。
ファイルシステムは英語でFile Systemと書き、読み方はFile System(ファイルシステム)です。HDDやSSDなどのストレージに保存されているファイルやディレクトリを整理し、名前や保存場所、アクセス権などを管理する仕組みです。
Linuxでは、ファイルやディレクトリがバラバラに存在するのではなく、/という最上位の場所から木の枝のようにつながっています。例えば、/etc、/home、/usr、/varなどは、すべて/の下にあるディレクトリです。
Linux初心者は、ルートファイルシステムをLinuxのすべてのファイルやディレクトリを見るための最上位ファイル構造と考えると分かりやすいでしょう。どのディスクに実際のデータが保存されているかに関係なく、利用者から見ると/から続く一つの階層構造として扱えるのがLinuxの特徴です。
Linuxのルートファイルシステムを理解すると、ディレクトリ構造、パーティション、マウント、ストレージ管理、ルートパーティションなどの関係が分かりやすくなります。
2. ルートディレクトリとルートファイルシステムの違い
Linux初心者が混同しやすい用語として、ルートディレクトリとルートファイルシステムがあります。読み方はルートディレクトリ(ルートディレクトリ)です。
ルートディレクトリは、Linuxのディレクトリ階層で一番上にある/という場所そのものです。一方、ルートファイルシステムは、その/を起点として構成されるファイルシステム全体を指す言葉として使われます。
例えば、大きな会社の建物を想像してください。ルートディレクトリは建物の正面入口で、ルートファイルシステムは入口から入ってつながっている廊下や部屋を含めた建物全体の構造のようなものです。
現在いるディレクトリを確認する場合には、pwdコマンドを利用できます。読み方はpwd(ピーダブリューディー)です。
pwd
/home/user
この結果では、現在いる場所が/home/userであることが分かります。先頭の/がルートディレクトリで、その下にhome、さらにその下にuserというディレクトリがつながっています。
Linuxでは、どれだけ深い場所にあるファイルでも、基本的には/から順番にたどって場所を表せます。このように最上位からすべてがつながる構造が、Linuxのファイルシステムを理解するうえで重要な特徴です。
3. Linuxの最上位ファイル構造を確認する
Linuxのルートファイルシステムには、用途ごとにさまざまなディレクトリが用意されています。最上位にどのようなディレクトリが存在しているのかを確認するには、ls /を実行します。
ls /
bin boot dev etc home lib media mnt opt proc root run srv sys tmp usr var
表示される内容はLinuxディストリビューションや環境によって多少異なりますが、代表的なLinuxではこのようなディレクトリを見ることができます。それぞれのディレクトリには役割があります。
/etcにはシステムやアプリケーションの設定ファイル、/homeには一般ユーザーのホームディレクトリ、/usrには多くのプログラムやライブラリ、/varにはログファイルや変化するデータなどが保存されます。
/tmpは一時的なファイルを保存する場所、/devはデバイスに関係する特殊なファイルが置かれる場所、/procや/sysはLinuxカーネルや実行中のシステム情報と関係する特殊なファイルシステムです。
Linux初心者は、すべてのディレクトリの細かな役割を最初から暗記する必要はありません。まずは、/の下に用途ごとのディレクトリがあり、Linuxのファイル構造はこの一か所を起点として広がっていると理解しておくことが大切です。
4. ルートファイルシステムとルートパーティションの違い
ルートファイルシステムと一緒に覚えておきたいのが、ルートパーティションです。読み方はルートパーティション(ルートパーティション)です。二つの言葉は関係していますが、意味は同じではありません。
パーティションは英語でPartitionと書き、読み方はPartition(パーティション)です。HDDやSSDなどのストレージを、用途ごとに分割した論理的な領域を意味します。
ルートパーティションは、ルートファイルシステムの/を保存するために使われている領域です。例えば、/dev/sda2というパーティションが/へマウントされている場合、そのパーティションがルートパーティションです。
どのファイルシステムが/に使われているのかは、dfコマンドで確認できます。読み方はdf(ディーエフ)です。
df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 40G 14G 24G 37% /
この例では、/dev/sda2が/へマウントされています。そのため、/dev/sda2がルートパーティションであり、その上にLinuxのルートファイルシステムが存在していると考えられます。
Linux初心者は、ルートパーティションはストレージ側の領域、ルートファイルシステムはLinuxから見たファイル構造と考えると整理しやすくなります。
5. マウントとは?別のファイルシステムをルート構造へつなぐ仕組み
Linuxのルートファイルシステムを理解するときに欠かせないのがマウントです。英語ではMountと書き、読み方はMount(マウント)です。マウントとは、別のストレージやパーティションのファイルシステムを、Linuxの特定のディレクトリへ接続して利用できるようにする仕組みです。
例えば、ルートファイルシステムとは別のパーティションを/homeへマウントできます。その場合、利用者から見ると/homeは通常どおり/の下にありますが、実際のデータは別のパーティションに保存されています。
この仕組みがあるため、Linuxでは複数のHDDやSSD、パーティションを利用していても、Windowsのようにそれぞれを完全に別のドライブとして扱う必要がありません。すべてを/から続く一つのファイル構造へ組み込むことができます。
現在どのファイルシステムがどこへマウントされているか確認するときには、findmntコマンドが便利です。読み方はfindmnt(ファインドマウント)です。
findmnt -o TARGET,SOURCE,FSTYPE
TARGET SOURCE FSTYPE
/ /dev/sda2 ext4
/boot /dev/sda1 ext4
/home /dev/sdb1 ext4
この例では、/は/dev/sda2、/bootは/dev/sda1、/homeは/dev/sdb1からマウントされています。
実際には三つの別々の領域が使われていますが、Linuxの利用者から見ると、すべてが/からつながる一つのディレクトリ構造に見えます。これがLinuxのルートファイルシステムを理解するうえで重要なポイントです。
6. lsblkコマンドでストレージとルートファイルシステムの関係を確認する
Linuxが認識しているディスクやパーティションと、ルートファイルシステムとの関係を確認したい場合は、lsblkコマンドを利用できます。読み方はlsblk(エルエスブロック)です。
lsblkでは、HDDやSSDなどのブロックデバイス、その中に作成されているパーティション、マウント先などを一覧表示できます。
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 50G 0 disk
sda1 8:1 0 1G 0 part /boot
sda2 8:2 0 49G 0 part /
sdb 8:16 0 100G 0 disk
sdb1 8:17 0 100G 0 part /home
この例では、sda2が/へマウントされているため、ルートファイルシステムを支えるルートパーティションです。また、sdb1という別のパーティションが/homeへマウントされています。
このような構成でも、利用者が/home/userへ移動するときに、別のディスクへ移動していることを特別に意識する必要はありません。Linuxがマウントによって一つのディレクトリ構造として見せてくれるからです。
Linuxでは環境によってsdaではなく、nvme0n1のような名前のストレージや、論理ボリュームが利用されることもあります。そのため、デバイス名を丸暗記するより、MOUNTPOINTSに表示される/を確認することが重要です。
7. procやsysなど特殊なファイルシステムもルート配下に見える
Linuxのルートファイルシステムを見ていると、/procや/sysというディレクトリがあります。これらは一般的な文書ファイルを保存する場所とは少し違います。
/procは、実行中のプロセスやLinuxカーネルに関する情報を参照するために使われる特殊なファイルシステムです。プロセスは英語でProcessと書き、読み方はProcess(プロセス)です。実行中のプログラムをLinuxが管理する単位として使われます。
/sysも、Linuxカーネルやデバイスに関係する情報を提供する特殊なファイルシステムです。これらは通常のストレージに普通のファイルとして保存されている情報だけで構成されているわけではありません。
例えば、findmntを使うと、/procや/sysにも別のファイルシステムがマウントされていることを確認できます。
findmnt /proc /sys
TARGET SOURCE FSTYPE
/proc proc proc
/sys sysfs sysfs
このようにLinuxでは、HDDやSSDに作成した通常のファイルシステムだけではなく、システム情報を提供する特殊なファイルシステムも/以下へ接続されています。
そのため、ルートファイルシステムを単純に一台のディスクの中身と考えると正確ではありません。Linuxでは複数のファイルシステムを組み合わせて、利用者からは一つの大きなディレクトリツリーとして見えるようにしています。
8. ルートファイルシステムはLinuxの起動にも重要
Linuxのルートファイルシステムは、Linuxを起動して通常のシステムを利用できるようにするうえでも重要です。Linuxが起動するときには、必要な処理を進めたあとでルートファイルシステムを利用できる状態にし、そこにある設定ファイルやプログラムなどを使ってシステムを立ち上げていきます。
Linuxの起動ではLinuxカーネルが重要な役割を持ちます。カーネルは英語でKernelと書き、読み方はKernel(カーネル)です。ハードウェア、メモリ、プロセス、ファイルシステムなどを管理するLinuxの中心部分です。
起動の途中では、一時的なファイルシステムを利用して必要なデバイスやドライバを準備してから、本来のルートファイルシステムへ切り替える構成もあります。このときに関係するものとしてinitramfsという仕組みがあります。
initramfsは、読み方はinitramfs(イニットラムエフエス)といいます。Linuxの起動初期に利用される一時的なファイルシステムで、本来のルートファイルシステムを利用できるようにするための準備を行う目的などで使われます。
Linux初心者が起動処理の細かな内部動作をすべて覚える必要はありませんが、Linuxが正常に動作するには最終的にルートファイルシステムを正しく利用できることが重要だと理解しておきましょう。
ルートファイルシステムに必要なファイルがなくなったり、正常にマウントできなくなったりすると、Linuxが正常に起動できない原因になることがあります。役割が分からないシステムファイルを安易に削除しないことが大切です。
9. Linux初心者がルートファイルシステムで覚えておきたいポイント
Linuxのルートファイルシステムについて最初に覚えておきたいのは、Linuxでは/がすべてのファイルやディレクトリの最上位となることです。Linuxのディレクトリ構造は/を起点として木のように枝分かれしており、この構造を理解することがLinuxファイルシステムの基本になります。
また、/以下に見えているすべてのデータが、必ず一つのパーティションに保存されているわけではありません。/homeや/bootなどに別のファイルシステムをマウントすることもでき、/procや/sysのような特殊なファイルシステムも同じ階層構造へ組み込まれています。
Linuxでは、このマウントという仕組みによって、複数のディスク、パーティション、ファイルシステムを一つの大きなディレクトリ構造として扱えます。Windowsのドライブ文字に慣れている初心者にとっては最初に戸惑いやすい部分ですが、Linuxのストレージ管理を理解するうえで非常に重要です。
ルートファイルシステムは、/を最上位として構成されるLinuxの基本的なファイル構造です。
ルートディレクトリは、Linuxのディレクトリ構造で一番上にある/という場所です。
ルートパーティションは、/として利用されるファイルシステムを保存しているストレージ上の領域です。
マウントは、別のファイルシステムをLinuxの特定のディレクトリへ接続して利用できるようにする仕組みです。
dfコマンドを使うと、ルートファイルシステムの容量や使用状況を確認できます。
lsblkコマンドを使うと、ディスクやパーティションとマウント先の関係を確認できます。
findmntコマンドを使うと、どのファイルシステムがどのディレクトリへマウントされているのか確認できます。
Linux初心者は、ルートファイルシステムを単純に一番大きなディスク領域だと考えないことが大切です。Linuxから見た最上位のファイル構造がルートファイルシステムであり、その中には別のディスクやパーティションからマウントされたファイルシステムも組み込むことができます。
例えば、ルートパーティションが小さくても、/homeに大容量の別ディスクをマウントしているLinuxでは、ユーザーデータを大量に保存できる場合があります。逆に、すべてのディレクトリをルートパーティション内に保存している場合には、ログやユーザーデータの増加によってルートファイルシステムの空き容量が減っていきます。
ルートファイルシステムについて理解できるようになると、Linuxのファイルシステム、ルートディレクトリ、ルートパーティション、HDD、SSD、パーティション、マウント、ディレクトリ階層、ストレージ管理などの知識がつながってきます。
Linuxサーバーのディスク構成を確認するときや、容量不足の原因を調べるとき、Linuxを新しくインストールするときにもルートファイルシステムの知識は役立ちます。まずはls /、df -h /、lsblk、findmntなどを実際のLinux環境で実行し、画面に表示される情報とファイル構造を関連付けながら学習すると理解しやすくなります。
LPICレベル1の合格を目指している人や、 Linuxコマンド・シェル・ネットワーク・セキュリティの試験対策を効率よく進めたい人におすすめの定番問題集です。
Linux教科書 LPICレベル1 スピードマスター問題集を見る※ Amazonアソシエイト広告リンク
まとめ
Linuxのルートファイルシステムとは、Linuxで扱うファイルやディレクトリの最上位となる/を起点にした基本的なファイル構造です。Linuxでは、設定ファイル、ユーザーデータ、プログラム、ライブラリ、ログ、デバイス情報などが、それぞれ役割を持ったディレクトリとして/の下につながっています。Windowsのように複数のドライブ文字を中心に考えるのではなく、Linuxでは一つの大きな木のようなディレクトリ階層としてファイルシステムを扱うことが大きな特徴です。
Linux初心者がルートファイルシステムを理解するときは、まずルートディレクトリ、ルートパーティション、マウントの違いを整理することが大切です。ルートディレクトリは/という最上位の場所そのものです。ルートファイルシステムは、その/を起点として構成されるファイルやディレクトリの仕組みです。そしてルートパーティションは、/として利用するファイルシステムを保存しているストレージ上の領域です。この三つは関係していますが、同じ意味ではありません。
Linuxの最上位ファイル構造を振り返ろう
Linuxのルートファイルシステムでは、/etc、/home、/usr、/var、/tmp、/dev、/proc、/sysなど、用途の異なるさまざまなディレクトリが/の下に配置されています。Linuxディストリビューションや構成によって多少違いはありますが、ルートディレクトリから用途ごとのディレクトリへ枝分かれする基本的な考え方は共通しています。
最上位にどのようなディレクトリが存在するのか確認したい場合は、ls /を実行できます。
ls /
bin boot dev etc home lib media mnt opt proc root run srv sys tmp usr var
/etcにはLinuxやアプリケーションの設定ファイル、/homeには一般ユーザーのデータ、/usrには多くのプログラムやライブラリ、/varにはログやキャッシュなどの変化するデータが保存されます。/tmpは一時ファイル、/devはデバイスに関係する特殊なファイルを扱う場所です。
Linux初心者は、すべてのディレクトリの細かな用途を最初から暗記する必要はありません。まずは/が最上位にあり、その下へ役割ごとのディレクトリがつながっていることを理解しておくと、Linuxファイルシステム全体を整理しやすくなります。
ルートディレクトリとルートパーティションを区別しよう
ルートファイルシステムについて学習すると、ルートディレクトリやルートパーティションという似た言葉も出てきます。ルートディレクトリはLinuxの最上位となる/という場所です。一方、ルートパーティションは、その/として利用されるファイルシステムを保存しているディスクやSSD上の領域です。
現在のLinux環境で、どの領域が/として使用されているのか調べたい場合には、df -h /を利用できます。
df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 40G 14G 24G 37% /
この例では、/dev/sda2という領域が/へマウントされています。そのため、この環境では/dev/sda2がルートパーティションとして利用されていることが分かります。また、容量、使用量、空き容量、使用率も一緒に確認できます。
Linux初心者は、ルートファイルシステムをストレージの一番大きな領域と考えないようにしましょう。どのパーティションがルートとして使われているのかは、容量ではなく/へマウントされているかどうかで判断します。
マウントによって複数のファイルシステムが一つにつながる
Linuxのルートファイルシステムを理解するうえで重要なのがマウントです。マウントとは、別のディスクやパーティションに作られたファイルシステムを、Linuxの特定のディレクトリへ接続して利用できるようにする仕組みです。
例えば、ルートパーティションとは別のディスクを/homeへマウントできます。この場合、ユーザーから見ると/homeは/の下にある普通のディレクトリとして見えます。しかし、実際のデータは別のストレージに保存されています。
どのファイルシステムがどこへマウントされているのかを確認する場合は、findmntコマンドが便利です。
findmnt -o TARGET,SOURCE,FSTYPE
TARGET SOURCE FSTYPE
/ /dev/sda2 ext4
/boot /dev/sda1 ext4
/home /dev/sdb1 ext4
この例では、/は/dev/sda2、/bootは/dev/sda1、/homeは/dev/sdb1からマウントされています。実際には複数のパーティションが使用されていますが、Linuxの利用者からは/を最上位とした一つのディレクトリ構造として見えます。
この仕組みを理解すると、Linuxでは別のHDDやSSDを追加しても、なぜWindowsのような別のドライブ文字を付けなくても利用できるのかが分かります。Linuxではストレージを任意のディレクトリへマウントすることで、ルートファイルシステムの中へ組み込めます。
lsblkでディスクとファイル構造の関係を確認しよう
Linuxのファイル構造だけではなく、実際のディスクやパーティションとの関係を確認したい場合には、lsblkコマンドを利用できます。lsblkでは、Linuxが認識しているHDDやSSD、その中のパーティション、マウント先などを一覧で確認できます。
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 50G 0 disk
sda1 8:1 0 1G 0 part /boot
sda2 8:2 0 49G 0 part /
sdb 8:16 0 100G 0 disk
sdb1 8:17 0 100G 0 part /home
この例では、sda2が/へマウントされ、sdb1が/homeへマウントされています。利用者が/home/userへ移動するときは別のディスクへアクセスしていることになりますが、普段のLinux操作では特別に意識する必要はありません。
Linuxのストレージ構成によっては、sdaという名前ではなく、別の名前でディスクや論理ボリュームが表示されることもあります。そのためデバイス名そのものを丸暗記するのではなく、/や/homeなどのマウント先を見ることがポイントです。
procやsysもルートファイル構造の中に見える
Linuxのルートファイルシステムには、一般的なファイルを保存するディレクトリだけではなく、/procや/sysのような特殊なファイルシステムも組み込まれています。
/procでは実行中のプロセスやLinuxカーネルに関する情報を確認できます。/sysではLinuxカーネルやデバイスに関係する情報を参照できます。これらは、通常の文書ファイルのようにSSDやHDDへ保存された内容を単純に表示しているわけではありません。
つまり、Linuxで/の下に見えているものが、すべて同じパーティションの普通のファイルというわけではありません。通常のディスク上のファイルシステム、別のパーティションからマウントされたファイルシステム、システム情報を提供する特殊なファイルシステムなどが、一つのディレクトリ構造の中に組み合わされています。
Linuxの起動でもルートファイルシステムは重要
ルートファイルシステムは、Linuxを起動するためにも重要です。Linuxが起動するときにはLinuxカーネルが動き始め、必要なデバイスやファイルシステムを利用できるように準備します。そして本来のルートファイルシステムを利用できる状態にして、設定ファイルやプログラムを読み込みながら通常のLinux環境を立ち上げていきます。
起動初期には、initramfsと呼ばれる一時的なファイルシステムを利用する構成があります。これは必要なドライバやデバイスを準備し、本来のルートファイルシステムを利用できるようにするための処理などに使われます。
Linux初心者は、起動処理の細かな流れを最初から覚える必要はありません。しかし、ルートファイルシステムが正常に利用できなければLinuxの通常の環境へ進めないことがあるため、システムの中心となる重要なファイル構造だと覚えておきましょう。
ルートファイルシステムにはLinuxの動作に必要な重要ファイルが多く存在します。空き容量を増やしたい場合でも、役割が分からない設定ファイルやシステムファイルを安易に削除しないようにしましょう。
ルートファイルシステムは、Linuxの/を最上位として構成される基本的なファイル構造です。
ルートディレクトリは、Linuxのディレクトリ階層で一番上となる/という場所そのものです。
ルートパーティションは、/として利用されるファイルシステムを保存するストレージ上の領域です。
マウントを利用すると、別のディスクやパーティションのファイルシステムを/homeや/bootなどへ接続できます。
ls /では、Linuxの最上位に存在する代表的なディレクトリを確認できます。
df -h /では、ルートファイルシステムの容量、使用量、空き容量、マウント先を確認できます。
lsblkでは、HDDやSSD、パーティションとマウント先の関係を確認できます。
findmntでは、どのファイルシステムがどのディレクトリへマウントされているのかを確認できます。
Linux初心者がルートファイルシステムを理解するときは、/の中身がすべて一台のディスクに保存されていると考えないことが重要です。Linuxでは、別のHDDやSSD、パーティション、特殊なファイルシステムをマウントによって一つのディレクトリ階層へ組み込めます。利用者から見ると一つの大きなファイル構造ですが、実際の保存場所や仕組みは複数に分かれている場合があります。
ルートファイルシステムを学ぶことで、Linuxのディレクトリ構造だけではなく、ルートパーティション、ストレージ管理、マウント、HDD、SSD、パーティション、ファイルシステム、Linuxカーネル、起動処理などの知識もつながってきます。Linuxサーバーを管理するときやディスク容量不足を調査するときにも必要となる基本なので、実際にls、df、lsblk、findmntを実行しながら、自分のLinux環境がどのような構成になっているのか確認すると理解しやすくなります。
生徒
「Linuxのルートファイルシステムは、/を一番上にしたファイルやディレクトリ全体の構造だと考えればいいんですね。」
先生
「そうです。Linuxでは/を起点として/etc、/home、/usr、/varなどがつながっています。」
生徒
「ルートディレクトリは/という場所で、ルートファイルシステムはそこから広がるファイル構造なんですね。」
先生
「その区別ができていれば分かりやすいです。さらにルートパーティションは、その/として使われるファイルシステムを保存するストレージ側の領域です。」
生徒
「でも/homeが別のディスクに保存されていることもあるんですよね。」
先生
「はい。別のディスクやパーティションを/homeへマウントできます。その場合でも利用者からは/の下にある普通のディレクトリとして見えます。」
生徒
「つまり、画面では一つのファイル構造に見えても、実際には複数のディスクが使われていることがあるんですね。」
先生
「そのとおりです。マウントによって複数のファイルシステムを一つのディレクトリ構造へ組み込めるのがLinuxの大きな特徴です。」
生徒
「どのディスクやパーティションが使われているか確認したいときは、lsblkを使えばいいですか?」
先生
「はい。ディスクやパーティションとマウント先を見るならlsblkが便利です。ルートファイルシステムの容量を見るならdf -h /、詳しいマウント関係を見るならfindmntも使えます。」
生徒
「/procや/sysも普通のファイルを保存する場所ではないんですよね。」
先生
「そうです。Linuxカーネルやプロセス、デバイスに関する情報を扱う特殊なファイルシステムです。それらも/の下へマウントされているので、一つのファイル構造の中に見えます。」
生徒
「ルートファイルシステムはLinuxの起動にも関係するんですよね。」
先生
「はい。Linuxが通常の環境で動作するには、本来のルートファイルシステムを正しく利用できることが重要です。必要な設定ファイルやプログラムもそこから利用されます。」
生徒
「ルートファイルシステムを理解すると、ディレクトリだけでなく、ディスクやパーティション、マウントまで一緒に理解できそうです。」
先生
「その理解が大切です。Linuxのファイルシステムとストレージ管理では、それぞれを別々に暗記するより、/を中心にディスクやパーティションがどうつながっているのかを考えると、全体像をつかみやすくなります。」