Linuxファイルシステムについて学んでみた(マウント編)

酸素
2024-11-29
2024-11-29

はじめに

こんにちは、酸素です。

前々回のパーティション作成、前回のファイルシステムの作成と行ってきたので、今回はマウントを行います。

まず、現在の構成は以下の図のような状態となっています。
今回はパーティション3(/dev/vda3)をOSにマウントさせ、ファイルの読み書きができるように設定します。

ファイルシステム作成後

マウントとは

"マウント"とは、ハードディスクやUSBメモリをはじめとしたデバイス・およびそれに書き込まれているファイルを、OSのファイル管理システムに紐づけることを指します。
マウントを行うと、デバイスがファイル管理システムのツリー構造に含まれるようになり、参照が容易になります。
なお、マウント時は事前に空のディレクトリを作成し、その配下にファイルシステムをマウントする形となります。この空のディレクトリを"マウントポイント"と呼びます。

Linuxでマウントをする際は、mountコマンドを使用します。一般的な使い方は以下のようになります。

# mount <デバイス名> <マウントポイント>

ファイルシステムをマウントする

それでは、実際にファイルシステムをマウントしていきます。
今回は、下の画像のようにマウントポイントを/mntとし、/mnt下にダミーファイル(1G.dummy)を作成します。

マウント後

# mount /dev/vda3 /mnt

# cd /mnt
# dd if=/dev/zero of=1G.dummy bs=1M count=1000

# ls -l /mnt/
total 1024000
-rw-r--r--. 1 root root 1048576000 Aug 13 14:24 1G.dummy
# lsblk -f /dev/vda3 -o NAME,FSTYPE,FSAVAIL,FSUSE%,MOUNTPOINTS
NAME FSTYPE    FSAVAIL    FSUSE%    MOUNTPOINTS
vda3 xfs       8.9G       11%       /mnt

/dev/vda3の容量が10GBでおおよそ10%使われているので、ダミーファイルがパーティション/dev/vda3内に書き込まれたことが分かります。

ファイルシステムのアンマウント

また、mountコマンドではデバイスをマウントするのに対し、umountコマンドではデバイスをアンマウントすることができます。以下のように、/dev/vda3をアンマウントすると、/mnt下にあったファイルが参照されなくなっています。

# umount /dev/vda3
# ls -l /mnt
total 0

なお、/mntに作成したダミーファイルは、実際には/dev/vda3に記憶されおり、アンマウントすることでファイル管理システムのツリー構造の外で扱われるようになっています。

/etc/fstabについて

mountコマンドでマウントした設定は、OSの再起動後消えてしまいます。
再起動後も同じマウント設定を利用したい場合は、マウント情報を/etc/fstab というファイルに以下のように記述します。

/dev/vda3 /mnt xfs default 0 0
  • 第1フィールド: デバイス名
  • 第2フィールド: マウントポイント
  • 第3フィールド: ファイルシステムの種別(ext4, xfsなど)
  • 第4フィールド: マウントオプション(default, rw, nouserなど)
    ※デバイスの挙動(非同期、一般ユーザーに対するマウント権限)の設定が可能
  • 第5フィールド: dumpコマンドの対象の可否
  • 第6フィールド: fsckコマンド実行時の挙動
    0の場合、起動時に実行されるfsckコマンドの対象から外れる

なお、fstabファイルの書式が間違った状態ですと、OSの起動に失敗することがあります。
しかし、mountコマンドに-aオプションを付けて実行することで、再起動を挟まず即座に設定を適用することができます。なのでfstabを編集した際は、確認のために mount -a を実行することをおすすめします。(私は1度検証環境内で間違えました。。。)

おわりに

Linuxのファイルシステムについて一連の知識を簡単に触れることでより理解が進みました。
また、fstabの記述ミスを体験できたのも、今回の学習をやったからこそ得られた経験かと思います。
みなさんもfstabの編集には気を付けましょう!