ファイルシステムテーブル~fstab、mtab~
本記事の対象者
LPIC level1習得を目指す初学者の方
コマンドの基本的な用途について、要点を絞って解説します。
今回の内容
今回は、「/etc/fstab」ファイルと「/etc/mtab」ファイルについて解説します。
/etc/fstab
「/etc/fstab」は、ファイルシステムの情報が記載されている設定ファイルです。
マウントを実行する際にはこのファイルが参照されます。
このファイルはOS起動時に読み込まれるため、ファイルシステムを自動的にマウントすることもできます。
よって、マウントする頻度の高いファイルシステムは、ここに記載しておきます。
[root@localhost ~]# cat /etc/fstab LABEL=/ / ext3 defaults 1 1 /dev/sda1 / ext3 defaults 1 1 /dev/sda2 /boot ext3 defaults 1 2 /dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro 0 0 /dev/sdb1 /var ext3 defaults 1 3 /dev/sdb2 swap swap defaults 0 0
①デバイスファイル名
デバイスファイル名もしくはラベル(LABEL=ラベル名)、またはUUID(※1)を指定します。
②マウントポイント
ファイルシステムのマウント先のディレクトリ(=マウントポイント)を指定します。
③ファイルシステムの種類
ファイルシステムの種類を指定します。
④マウントオプション(※2)
マウントする際に必要となるオプションを指定します。複数のオプションを指定する場合は「,(カンマ)」で区切ります。
⑤dumpフラグ
1であればdumpコマンドによるバックアップ対象になります。
通常、「ext2」「ext3」ファイルシステムは1を、その他のファイルシステムは0を指定します。
⑥ブート時にfsckがチェックする順序
Linuxが起動する際にfsckがチェックする順序を「0,1,2…」で指定できます。
1,2…の順にチェックされ、0を指定するとチェックされません。
ルートファイルシステムは1である必要があります。
※1
UUIDは、デバイスを識別するために使われるIDです。デバイスには固有のUUIDがつけられています。
最近のシステムでは、デバイスファイル欄にUUIDが指定されていることがあります。
[root@localhost ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Wed Oct 27 16:43:44 2021 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root / xfs defaults 0 0 UUID=0cd877d9-d9ba-4b37-96cf-86c11457ec46 /boot xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0
※2 主なマウントオプションの一覧
マウントオプション | 説明 |
---|---|
async | ファイルシステムの非同期入出力を設定する。 |
auto | -aオプションでmountコマンドを実行したときにマウントする。 |
noauto | -aオプションでmountコマンドを実行してもマウントしない。 |
defaults | デフォルトのオプションを設定する。 (async, auto, dev, exec, nouser, rw, suid) |
exec | バイナリの実行を許可する。 |
noexec | バイナリの実行を許可しない。 |
ro | 読み取り専用でマウントする。 |
rw | 読み書きを許可してマウントする。 |
unhide | 隠しファイルも表示する。 |
suid | SUIDとSGIDを有効にする。 |
user | 一般ユーザーでもマウントを可能にする。 |
users | マウントしたユーザー以外のユーザーもアンマウント(マウント解除)できるようになる。 |
nouser | 一般ユーザーのマウントを許可しない。 |
/etc/mtab
「/etc/mtab」は、現在マウントされているファイルシステムの情報が格納されているファイルです。
このファイルはmountコマンドやumountコマンドが使用しているファイルであり、「/etc/fstab」のようにユーザーが手動で書き換えるものではありません。
[root@localhost ~]# cat /etc/mtab sysfs /sys sysfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0 proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0 devtmpfs /dev devtmpfs rw,seclabel,nosuid,size=495436k,nr_inodes=123859,mode=755 0 0 securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0 tmpfs /dev/shm tmpfs rw,seclabel,nosuid,nodev 0 0 devpts /dev/pts devpts rw,seclabel,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0 tmpfs /run tmpfs rw,seclabel,nosuid,nodev,mode=755 0 0 tmpfs /sys/fs/cgroup tmpfs ro,seclabel,nosuid,nodev,noexec,mode=755 0 0 cgroup /sys/fs/cgroup/systemd cgroup rw,seclabel,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd 0 0 pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0 cgroup /sys/fs/cgroup/cpuset cgroup rw,seclabel,nosuid,nodev,noexec,relatime,cpuset 0 0 cgroup /sys/fs/cgroup/net_cls,net_prio cgroup rw,seclabel,nosuid,nodev,noexec,relatime,net_prio,net_cls 0 0 cgroup /sys/fs/cgroup/freezer cgroup rw,seclabel,nosuid,nodev,noexec,relatime,freezer 0 0 cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,seclabel,nosuid,nodev,noexec,relatime,cpuacct,cpu 0 0 cgroup /sys/fs/cgroup/perf_event cgroup rw,seclabel,nosuid,nodev,noexec,relatime,perf_event 0 0 cgroup /sys/fs/cgroup/blkio cgroup rw,seclabel,nosuid,nodev,noexec,relatime,blkio 0 0 cgroup /sys/fs/cgroup/pids cgroup rw,seclabel,nosuid,nodev,noexec,relatime,pids 0 0 cgroup /sys/fs/cgroup/hugetlb cgroup rw,seclabel,nosuid,nodev,noexec,relatime,hugetlb 0 0 cgroup /sys/fs/cgroup/devices cgroup rw,seclabel,nosuid,nodev,noexec,relatime,devices 0 0 cgroup /sys/fs/cgroup/memory cgroup rw,seclabel,nosuid,nodev,noexec,relatime,memory 0 0 configfs /sys/kernel/config configfs rw,relatime 0 0 /dev/mapper/centos-root / xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0 selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0 systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=26,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=12188 0 0 debugfs /sys/kernel/debug debugfs rw,relatime 0 0 hugetlbfs /dev/hugepages hugetlbfs rw,seclabel,relatime 0 0 mqueue /dev/mqueue mqueue rw,seclabel,relatime 0 0 /dev/sda1 /boot xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0 tmpfs /run/user/0 tmpfs rw,seclabel,nosuid,nodev,relatime,size=101476k,mode=700 0 0
※本来このようなコマンドを打って確認する類のファイルではありません。
まとめ
今回は、「/etc/fstab」「/etc/mtab」について解説しました。
これらのファイルは、マウントを実行するコマンドである「mount」やマウントを解除するコマンドである「umount」との関連が重要です。
これらのコマンドの解説の際に「/etc/fstab」「/etc/mtab」がまた登場しますので、今回の内容はしっかりと抑えておいてください。
最後に確認問題で今回の内容を振り返ってみてください。
確認問題
「/etc/fstab」の一行にはいくつのフィールドがあるか。
A) 4
B) 5
C) 6
D) 7
「/etc/fstab」で明示的にデバイスファイル名を記載する代わりに、目的のファイルシステムを識別するために他にどのような形式を使用できるか。(2つ選択)
A) LABEL
B) FIND
C) ID
D) UUID