IT技術・ノウハウ

【LPIC101】ファイルシステム・パーティション・マウント

2021年10月6日

こんにちは、yassanです。
今回は、LPIC101の試験対策という観点で、Linuxのファイルシステムらについて学習したいと思います。

概要

ファイルシステムとは、ディスクに保存するデータをファイルとして管理する仕組みのことです。
日常生活でも、僕らはコンピュータに対して画像ファイルやテキストファイルなど、ファイルという単位でデータを管理していますね。

このファイルシステムが利用できる環境を作るには、
①ディスク内にパーティションを作成する
②パーティション内にファイルシステムを作成する
③ファイルシステムをマウントする
という3ステップを実行する必要があります。

パーティションの作成

パーティション作成(管理)コマンド

パーティション管理コマンドには、fdisk / gdisk / parted の3種類があります。
これらのコマンドを使って、パーティションの作成・削除・変更・確認などを行います。

fdiskコマンド

fdiskは、引数にデバイス名(/dev/sdaなど)を与えて実行することで対話モードとなります。
そこで、サブコマンドを入力して、パーティションを管理します。

サブコマンド
lパーティションタイプの表示
nパーティションの作成
dパーティションの削除
pパーティションテーブルの表示
tパーティションタイプの表示
aブートフラグのオン・オフの切り替え
wパーティションテーブルの変更を保存して終了
qパーティションテーブルの変更を保存せず終了
mヘルプの表示

パーティションの作成の際は、パーティションタイプ(基本パーティションか拡張パーティションか)、パーティション番号、開始セクタが問われます。

gdiskコマンド

パーティションテーブルには、MBRの他にGPTがあります。
gsidkコマンドは、GPTにも対応したパーティションの操作をすることができます。

使い方やサブコマンドは、fdiskコマンドと同じです。

partedコマンド

こちらも、MBRとGPTに対応したコマンドです。
fdsik / gdisk とサブコマンドが異なるので注意が必要です。

partedコマンドは、対話モードだけでなく、-sオプションをつけることで引数の情報からパーティションを管理できます。

サブコマンド
check 番号ファイルシステムのチェック
mklabel gpt または msdos新しいパーティションテーブルの作成
mkpart 種類 開始 終了指定した種類のパーティションを作成
rm 番号指定したパーティションの削除
p または printパーティションテーブルの表示
q または quit対話モードの終了

partedには、fdisk / gdiskのように「wで書き込みして終了」のようなものはなく、即座に反映されます。

ファイルシステムの作成

ファイルシステムの種類

ファイルシステムには色々な種類があります。

ファイルシステム
ext2Linuxの標準ファイルシステム
ext3ext2 + ジャーナリング機能
ext4ext3の機能拡張
XFSSGI社が開発したジャーナリングファイルシステム
JFSIBM社が開発したジャーナリングファイルシステム
Btrfs高度な機能を備えたファイルシステム
ストレージプール、マルチデバイスファイルシステム、スナップショット、サブボリュームがあり耐障害性にも優れる先進的なファイルシステム
iso9660CD-ROMのファイルシステム
msdosMS-DOSのファイルシステム
vfatSDカードやWindowsで使うファイルシステム
exFATFATの後継となるフラッシュメモリ向けファイルシステム

試験的には、ジャーナリング機能があるかが重要になりそうです。

ファイルシステム作成コマンド

ファイルシステム作成コマンドには、mkfs / mke2fs / mkfs.xxx / mkswap があります。

mkfs.xxxコマンド

mkfs.xxxは、xxxに記載したファイルシステム名のファイルシステム名を作成します。
引数には、デバイス名を与えます。

このコマンドは、プログラムを直接呼び出す形式になります。

ファイルシステムコマンド(プログラム)
ext2mkfs.ext2
ext3mkfs.ext3
ext4mkfs.ext4
XFSmkfs.xfs
VFATmkfs.vfat
exFATmkfs.exfat
Btrfsmkfs.btrfs

mkfsコマンド

mkfsコマンドは、先のプログラムを呼び出すフロントエンドのコマンドになります。

mkfs -t ファイルシステムタイプ オプション デバイス名 の形式で呼び出します。
ファイルシステムタイプを指定しないと、ext2が設定されます。

mke2fsコマンド

ext2, ext3, ext4 ファイルシステムを作成するときは、mke2fsコマンドも使えます。

mke2fs オプション デバイスファイル名 の形式で利用します。
-j オプションでext3を指定します。
オプションを設定しないと、ext2が設定されます。

mkswapコマンド

パーティション上にスワップ領域を作成するコマンドです。
(スワップ領域は、独立したパーティションに割り当てるのが一般的です)

mkswap デバイス名 の書式で利用できます。

ファイルシステム管理コマンド

ディスクに関するコマンドは、df / du があります。
ファイルシステムに関するコマンドは、fsck / e2fsck / tune2fs があります。

df

ファイルシステムの使用状況を確認できます。
-i をつけることでiノードの使用状況が確認できます。

du

ファイルやディレクトリが占めている容量を確認できます。
オプションは、下記の通りです。

オプション
-aディレクトリ以外のファイルについても表示
-lリンクも含めて表示
-c全ての容量の合計を表示
-k容量をキロバイト単位で表示
-m容量をメガバイト単位で表示
-s指定したファイルやディレクトリのみの合計を表示
-Sサブディレクトリを含めずに集計
-h容量を読みやすい単位で表示

fsck

ディスクのチェックを行い、必要であれば試みることができます。
ファイルシステムに破損が発生した場合に有効なコマンドです。

コマンドの実行は、ファイルシステムをアンマウントした状態で行う必要があります。
(書き込み中のディスクに対して実行すると、破壊の恐れがあります)

mkfsコマンドと同じく、-t でファイルシステムの種類を指定して実行します。
オプションは下記の通りです。

オプション
-tファイルシステムの種類を指定
-a自動的に修復
-r対話的に修復
-A/etc/fstabに記述したファイルシステムを対象
-Nテスト実行(実際には実行しない)

e2fsck

ext2, ext3, ext4に対して行うコマンドです。
やってることはfsckを同じですが、オプションが違うので注意が必要です。

オプション
-p自動的に修復
-yすべてyesで回答
-nすべてnoで回答

tune2fs

ext2, ext3, ext4のファイルシステムのパラメータを設定します。
調整対象のファイルシステムは、こちらもアンマウントしておく必要があります。

fsckの時間感覚なども、tune2fsコマンドで管理します。
そのほか、ext2をext3に変換したり、ボリュームラベルを設定できます。

マウント / アンマウント

/etc/fstab

マウントを学習するうえで、覚えなくてはならないのが /etc/fstabファイルです。
マウントするときには、この設定ファイルが参照されます。

ファイル内に1行ずつマウントの情報を記載します。
それぞれ順に、①デバイスファイル名またはUUID ②マウントポイント ③ファイルシステムの種類 ④マウントオプション ⑤dumpフラグ ⑥fsckのチェック順序 に記載します。

マウントオプションは種類が多いので、覚えるのが大変ですが頻出なので抑えておきましょう。

オプション
asyncファイルシステムの非同期入出力を設定
auto / noautomount -a で実行したときにマウントする / しない
exec / noexecバイナリ実行を許可する / しない
ro / rw読み取り専用でマウント / 読み書きを許可してマウント
user / users / nouser一般ユーザーでもマウント可 / マウントしたユーザー以外でもアンマウント可 / 一般ユーザーのマウントを許可しない
unhide隠しファイルも表示
suidSUIDとSGIDを有効にする
defaultデフォルト設定を適用(async, auto, dev, exec, nouser, rw, suid)

マウント / アンマウントコマンド

マウントするときは、mountコマンドを使います。
アンマウントするときは、umountコマンドを使います。

コマンド自体はすごくシンプルですね。

mountコマンド

ファイルシステムをマウントするコマンドです。

オプションを付けずに実行すると、現在のマウント状況を表示します。

オプションをつけて実行するときは、mount オプション デバイス名 マウントポイントの書式で実行します。
mountコマンドも、-t でファイルシステムの種類を指定できます。
-a をつけると、先程の/etc/fstabに記述されたファイルシステムを全てマウントします。

ちなみに、デバイス名かマウントポイントのどちらかを省略しても、/etc/fstab内で情報の補完ができている場合は、きちんと動作します。

umountコマンド

ファイルシステムをアンマウントするコマンドです。

こちらは、umount オプション デバイス名またはマウントポイント の書式で実行します。

まとめ

というわけで、ファイルシステムをはじめ、パーティションやファイルシステムに関するコマンドを中心に紹介しました。

実務でも使用する機会が多々あるかと思います。
試験対策も大事ですが、実機でもスラスラ使えるようになるのが望ましいですね。

最後に、参考にした書籍のリンクを貼っておきます。
試験範囲を網羅でき、適度な情報量なのでおすすめです。

ここまで読んでいただき、ありがとうございました。

-IT技術・ノウハウ
-, ,