ファイルシステムのマウント~mountコマンド・umountコマンド~
本記事の対象者
LPIC level1習得を目指す初学者の方
コマンドの基本的な用途について、要点を絞って解説します。
今回の内容
今回は、mountコマンドとumountコマンドについて解説します。
前者はファイルシステムをマウントするコマンド、後者はファイルシステムのマウントを解除するコマンドです。
なお、「マウントとは何か」ということが知りたい方はこちらの記事を参照してください。
ハードディスクを使用するための過程
「パーティションについて」の記事で説明した通り、Linuxでハードディスクを接続して使用するには、以下の過程が必要です。
①デバイスファイルを作成する。(基本的には自動で作成される。)
②ディスク内にパーティションを作成する。
③パーティション内にファイルシステムを構築する。
④ファイルシステムをマウントする。
今回は、最後の過程である④のファイルシステムのマウントについて、その具体的なコマンドを解説する記事になります。
mountコマンド
mountコマンドは、ファイルシステムをマウントするためのコマンドです。
mount | |
---|---|
意味 | ファイルシステムをマウントする。 |
書式 | mount [オプション] [デバイスファイル名(パーティション名)] [マウントポイント] |
なお、mountコマンドをオプションなしで使用した場合、現在のマウント状況を一覧表示します。
mountコマンドの主なオプションは以下です。
コマンドオプション(※1) | 説明 |
---|---|
-a | 「/etc/fstab」(※2)に記述されているファイルシステムをすべてマウントする。(noautoオプションがついているものは除く) |
-t <ファイルシステム> | ファイルシステムの種類を指定する。 |
-o | マウントオプションを指定する。複数指定する場合は、「,(カンマ)」で区切って入力する。 |
-v | 詳細を表示する。 |
※1
mountコマンドにはマウントの際のオプションである「マウントオプション」があります(-oで指定)。それと区別するためにコマンドオプションと記載しています。
※2
「/etc/fstab」は、ファイルシステムの情報が記載されているファイルです。mountコマンドを実行する際にはこのファイルが参照されます。
「/etc/fstab」については、こちらの記事で説明しています。
mountコマンドの主なマウントオプションは以下です。
これは、「/etc/fstab」に設定として記載できるマウントオプションと同一のものです。
以下はその再掲となります。
※これらが試験に問われる可能性は低いです。
マウントオプション | 説明 |
---|---|
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 | 一般ユーザーのマウントを許可しない。 |
[root@localhost ~]# mount sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=490368k,nr_inodes=122592,mode=755) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755) tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755) cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd) pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpuset) cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,freezer) cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,perf_event) cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,net_prio,net_cls) cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpuacct,cpu) cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,hugetlb) cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,memory) cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,pids) cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,blkio) cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,devices) configfs on /sys/kernel/config type configfs (rw,relatime) /dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota) selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime) systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=22,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=12453) hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel) debugfs on /sys/kernel/debug type debugfs (rw,relatime) mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel) fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime) /dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime) tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=101476k,mode=700) gvfsd-fuse on /run/user/0/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
引数なしで実行した場合、現在のマウント状況一覧が表示されます。
「/etc/mtab」の内容が加工されて表示されています。
[root@localhost ~]# mount /dev/sda1 /mnt [root@localhost ~]# df -h ファイルシステム サイズ 使用 残り 使用% マウント位置 devtmpfs 479M 0 479M 0% /dev tmpfs 496M 0 496M 0% /dev/shm tmpfs 496M 7.7M 488M 2% /run tmpfs 496M 0 496M 0% /sys/fs/cgroup /dev/mapper/centos-root 6.2G 5.6G 681M 90% / /dev/sda1 1014M 172M 843M 17% /mnt tmpfs 100M 36K 100M 1% /run/user/0
dfコマンドを使用して、マウントポイントを表示しています。
「/dev/sda1」が「/mnt」にマウントされていることが分かります。
[root@localhost ~]# mount | grep '/dev/sdb1' [root@localhost ~]# cat /etc/fstab /dev/mapper/centos-root / xfs defaults 0 0 UUID=ca954bfe-e7ce-438d-bb79-cd13b768f028 /boot xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 /dev/sdb1 /mnt ext3 defaults 1 2 [root@localhost ~]# mount -a [root@localhost ~]# mount | grep '/dev/sdb1' /dev/sdb1 on /mnt type ext3 (rw,relatime,seclabel,data=ordered)
最初、「mount | grep ‘/dev/sdb1’」の標準出力はありません。つまり、「/dev/sdb1」はどこにもマウントされていない状態です。
ここで「/etc/fstab」の最終行に「/dev/sdb1を/mntにマウントする」という設定が書かれています。
この状態で「mount -a」をすることで「/etc/fstab」に記載された通りにマウントが実行されていることが分かります。
umountコマンド
umountコマンドは、ファイルシステムをアンマウントするコマンドです。
umount | |
---|---|
意味 | ファイルシステムをアンマウントする。 |
書式 | umount [オプション] [デバイスファイル名(パーティション名) or マウントポイント] |
mountコマンドの書式では当然「パーティション名」と「マウントポイント」の指定が必要でしたが、umountコマンドではそのどちらかを指定するだけで構いません。
パーティション名を指定すれば、そのパーティションがマウントされているマウントポイントからアンマウントされます。
マウントポイントを指定すれば、そのマウントポイントにマウントされているパーティションがアンマウントされます。
umountコマンドの主なオプションは以下です。
オプション | 説明 |
---|---|
-a | 「/etc/mtab」(※3)に記述されているファイルシステムをすべてアンマウントする。 |
-t <ファイルシステム> | ファイルシステムの種類を指定する。 |
※3
「/etc/mtab」は、現在マウントされているファイシステムが管理されているファイルです。ユーザが設定するファイルではなく、mountコマンドとumountコマンドが参照しているファイルです。
「/etc/mtab」については、こちらの記事で説明しています。
[root@localhost ~]# umount /dev/sda1 [root@localhost ~]# df -h ファイルシステム サイズ 使用 残り 使用% マウント位置 devtmpfs 479M 0 479M 0% /dev tmpfs 496M 0 496M 0% /dev/shm tmpfs 496M 7.7M 488M 2% /run tmpfs 496M 0 496M 0% /sys/fs/cgroup /dev/mapper/centos-root 6.2G 5.6G 681M 90% / tmpfs 100M 36K 100M 1% /run/user/0
dfコマンドの一覧から消えていることが確認できます。
「umount /mnt」としても同じ結果を得ることができます。
まとめ
今回は、ファイルシステムのマウントに関するコマンドについて解説しました。
これで、Linuxでハードディスクを使用するための過程の解説は一通り終了です。
最初から流れで見返していただくとより理解が深まるかと思います。
最後に確認問題で今回の記事の知識を是非復習してください。
確認問題
現在マウントされているすべてのファイルシステムを表示するには次のコマンドのどれを使用すればよいか。 (2つ選択)
A) cat /proc/mounts
B) lsmount
C) mount
D) mount -a
E) mount -ls