Linux ファイルシステムを学ぼう
ファイルシステムとは、ハードディスクなどの外部記憶装置に保存されているデータをファイルとして管理する為の仕組みです。
ハードディスクを利用するには、パーティションを作成し、そこへファイルシステムを作成して利用します。
ファイルシステムには、様々な種類があります。
ハードディスの利用方法
ハードディスクを利用するには、以下の手順で作成します。
1.パーティションの作成
2.ファイルシステムの作成
3.マウント処理
パーティションの作成
パーティションとは、ハードディスクを利用する為に、ハードディスクを複数の領域に区切った領域の事を言います。
パーティションの種類
パーティションの作り方には、MBR(マスターブートレコード)とGPT(GUIDパーティションテーブル)と言う2つの方式があります。
MBRを使ったパーティションテーブルでは、1つのディスクを最大4つの基本パーティションに分割して、そのうちの1つを拡張パーティションとし、拡張パーティション内に複数の論理パーティションを作成できます。
GPT方式では、最大128個の基本パーティションを作成でき、2TBを超えるパーティションを作成できます。
GPT方式のパーティションを作成するには、gdiskコマンドを利用します。

パーティションの作成
fdisk コマンド
パーティションの作成には、fdiskコマンドを利用します。
コマンド | 説明 |
---|---|
fdisk | パーティションを管理する。 |
書式 | fdisk [オプション] [デバイスファイル名] |
オプション | -l パーティションテーブルを表示する -s 指定したパーティションのパーティションサイズをブロック単位で表示する |
実行例1 | パーティションテーブルを表示する # fdisk -l /dev/sda |
実行例2 | /dev/sdbにパーティションを作成する # fdisk /dev/sdb |


gdisk コマンド
2Tバイトを超えるパーティションの作成には、gdiskコマンドを利用します。
コマンド | 説明 |
---|---|
gdisk | パーティションを管理する。 |
書式 | gdisk [オプション] [デバイスファイル名] |
オプション | -l パーティションテーブルを表示する |
実行例1 | パーティションテーブルを表示する # gdisk -l /dev/sda |
実行例2 | /dev/sdbにパーティションを作成する # gdisk /dev/sdb |



ファイルシステムの作成
ファイルシステムの種類
主なファイルシステムの種類
ファイルシステム | 説明 |
---|---|
ext2 | 初期のLinuxで使われていたファイルシステム |
ext3 | ext2を改良し機能強化したファイルシステム |
ext4 | ext3を機能拡張したファイルシステム |
xfs | SGI社が開発したジャーナリング[*1]ファイルシステム |
[*1]ジャーナリングとは、ファイルシステムに対する書き換え処理のコマンドをファイルシステムに逐一記録する機能 |
ファイルシステムの作成
mkfs コマンド
ファイルシステムの作成には、mkfsコマンドを利用します。
コマンド | 説明 |
---|---|
mkfs | ファイルシステムを作成する。 |
書式 | mkfs [オプション] デバイスファイル名 |
オプション | -t ファイルシステムタイプを指定する -v 詳細な情報を表示する |
実行例1 | /dev/sdb1にext4ファイルシステムを作成する # mkfs -t ext4 /dev/sdb1 |
実行例2 | /dev/sdb2にxfsファイルシステムを作成する # mkfs.xfs -f /dev/sdb2 |


マウント処理
マウントとは、あるファイルシステムに別のファイルシステムを組み込んで、全体として1つのファイルシステムとして扱えるようにする事を言います。

マウントとアンマウント
mount コマンド
ファイルシステムをマウントするには、mountコマンドを利用します。
コマンド | 説明 |
---|---|
mount | ファイルシステムをマウントする。 |
書式 | mount [オプション] [デバイスファイル] [マウントポイント] |
実行例 | /dev/sdb1 を /mnt にマウントする # mount /dev/sdb1 /mnt |

umount コマンド
ファイルシステムをアンマウントするには、umountコマンドを利用します。
コマンド | 説明 |
---|---|
umount | マウントを解除する。 |
書式 | umount [オプション] [デバイスファイル名またはマウントポイント] |
実行例 | /dev/sdb1 をマウントした /mnt をアンマントする # umount /mnt # umount /dev/sdb1 |

iノード
iノードとは、Linuxでファイルをディスクに保存すると、重複しない番号が割り当てられます。この番をiノード番号と言います。
すべてのファイルには対応するiノードが存在し、iノードにはディスク上のファイルに関する属性情報が格納されます。
iノードに格納されている主な情報は、以下となります。
・ファイルの種類
・ファイルサイズ
・アクセス権
・所有者
・リンク
・ディスク上の物理的な保存場所
iノード番号を確認するには、[ls -i] コマンドを利用します。
iノードに関する情報を確認するには、[df -i] コマンドを利用します。
ハードリンクとシンボリックリンク
Linuxでは、ファイルやディレクトリに別名を付けて、異なった名前で同一のファイルにアクセスする2つの仕組みがあります。 これをハードリンクとシンボリックリンクと言います。
ハードリンクとは、複数のファイルで同一のファイルの実体を参照します。iノード番号はそれぞれのファイルで同じ番号になります。
いずれのハードリンクファイルに変更を加えても、同一の実体に対して変更を加える事になります。
また、別のファイルシステムのファイルへのリンクは作成出来ません。
シンボリックリンクとは、リンク元の場所を指し示します。シンボリックリンク自体が持っているのは、リンク元へのポインタの為、リンク元ファイルを削除したり移動するとシンボリックリンクはエラーとなります。
Windowsで言うショートカットに相当します。


ITエンジニアは、DX、AI、IoT時代を迎え、ますます需要が高っています。
プログラミングスキルを身に着けてITエンジニアとして活躍してみませんか?
