Linux ファイルシステムを学ぼう

ファイルシステムとは、ハードディスクなどの外部記憶装置に保存されているデータをファイルとして管理する為の仕組みです。
ハードディスクを利用するには、パーティションを作成し、そこへファイルシステムを作成して利用します。
ファイルシステムには、様々な種類があります。

ハードディスの利用方法

ハードディスクを利用するには、以下の手順で作成します。
1.パーティションの作成
2.ファイルシステムの作成
3.マウント処理

パーティションの作成

パーティションとは、ハードディスクを利用する為に、ハードディスクを複数の領域に区切った領域の事を言います。

パーティションの種類

パーティションの作り方には、MBR(マスターブートレコード)とGPT(GUIDパーティションテーブル)と言う2つの方式があります。

MBRを使ったパーティションテーブルでは、1つのディスクを最大4つの基本パーティションに分割して、そのうちの1つを拡張パーティションとし、拡張パーティション内に複数の論理パーティションを作成できます。

GPT方式では、最大128個の基本パーティションを作成でき、2TBを超えるパーティションを作成できます。
GPT方式のパーティションを作成するには、gdiskコマンドを利用します。

MBR

パーティションの作成

fdisk コマンド

パーティションの作成には、fdiskコマンドを利用します。

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

2Tバイトを超えるパーティションの作成には、gdiskコマンドを利用します。

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

ファイルシステムの作成

ファイルシステムの種類

主なファイルシステムの種類

ファイルシステム説明
ext2初期のLinuxで使われていたファイルシステム
ext3ext2を改良し機能強化したファイルシステム
ext4ext3を機能拡張したファイルシステム
xfsSGI社が開発したジャーナリング[*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
mkfs コマンド
mkfs
実行例1
mkfs
実行例2

マウント処理

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

マウントとアンマウント

mount コマンド

ファイルシステムをマウントするには、mountコマンドを利用します。

コマンド説明
mountファイルシステムをマウントする。
書式mount [オプション] [デバイスファイル] [マウントポイント]
実行例/dev/sdb1 を /mnt にマウントする
# mount /dev/sdb1 /mnt
mount コマンド
mount
実行例
umount コマンド

ファイルシステムをアンマウントするには、umountコマンドを利用します。

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

iノード

iノードとは、Linuxでファイルをディスクに保存すると、重複しない番号が割り当てられます。この番をiノード番号と言います。
すべてのファイルには対応するiノードが存在し、iノードにはディスク上のファイルに関する属性情報が格納されます。
iノードに格納されている主な情報は、以下となります。
・ファイルの種類
・ファイルサイズ
・アクセス権
・所有者
・リンク
・ディスク上の物理的な保存場所

iノード番号を確認するには、[ls -i] コマンドを利用します。
iノードに関する情報を確認するには、[df -i] コマンドを利用します。

ハードリンクとシンボリックリンク

Linuxでは、ファイルやディレクトリに別名を付けて、異なった名前で同一のファイルにアクセスする2つの仕組みがあります。 これをハードリンクとシンボリックリンクと言います。

ハードリンクとは、複数のファイルで同一のファイルの実体を参照します。iノード番号はそれぞれのファイルで同じ番号になります。
いずれのハードリンクファイルに変更を加えても、同一の実体に対して変更を加える事になります。
また、別のファイルシステムのファイルへのリンクは作成出来ません。

シンボリックリンクとは、リンク元の場所を指し示します。シンボリックリンク自体が持っているのは、リンク元へのポインタの為、リンク元ファイルを削除したり移動するとシンボリックリンクはエラーとなります。
Windowsで言うショートカットに相当します。

ハードリンク
ハードリンク
シンボリックリンク
シンボリックリンク

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

Linux

前の記事

Linux ジョブを学ぼう