マウントについて
こんにちは、Kimです。
今回は、マウントに関しての記事を書いていこうと思います。
/etc/fstabファイルについて
LinuxOSを再起動する際、いくつかの設定ファイルが読み込まれ、処理されて立ち上がります。
そのうちの1つに、マウントの設定が書かれた/etc/fstabファイルというものがあります。
マウントを恒常的に設定するには、このファイルに記載する必要があります。
突然に意図のない再起動が走った際に
このファイルに正しい設定が書かれていないと、通常とは異なる状態になるかもしれません。
挙動をみてみる
今回はSFTPユーザー”user1″が、Webコンテンツのみ操作できるよう、
homepage.htmlディレクトにuser1のマウント用ディレクトリがマウントされている想定で、
サーバー再起動時の挙動を確認していきます。
Webコンテンツが入っているディレクトリ。
[root@kim-test ~]# ll /var/www/html/contents/homepage.html
-rw-rw-r-- 1 root root 0 10月 8 20:17 /var/www/html/contents/homepage.html
user1のマウント用ディレクトリ。
[root@kim-test ~]# ll -d /home/user1/contents_unmount/ /home/user1/contents_mount
drwxr-xr-x 2 user1 user1 4096 10月 8 20:25 /home/user1/contents_mount
drwxr-xr-x 2 user1 user1 4096 10月 8 20:26 /home/user1/contents_unmount/
[root@kim-test ~]# ll /home/user1/contents_unmount/ /home/user1/contents_mount
/home/user1/contents_mount:
合計 0
/home/user1/contents_unmount/:
合計 0
user1のマウント用ディレクトリを、homepage.htmlディレクトリにマウントします。
[root@kim-test ~]# mount --bind /var/www/html/contents/home/user1/contents_mount
[root@kim-test ~]#
[root@kim-test ~]# ll /home/user1/contents_mount
合計 0
-rw-rw-r-- 1 root root 0 10月 8 20:17 homepage.html
[root@kim-test ~]# mount --bind /var/www/html/contents/home/user1/contents_unmount
[root@kim-test ~]#
[root@kim-test ~]# ll /home/user1/contents_unmount
合計 0
-rw-rw-r-- 1 root root 0 10月 8 20:17 homepage.html
findmntコマンドでマウントの設定状況を一覧で確認できます。
“TARGET”がマウント先、”SOURCE”がマウント元を示しています。
[root@kim-test ~]# ll /var/www/html/contents/homepage.html
-rw-rw-r-- 1 root root 0 10月 8 20:17 /var/www/html/contents/homepage.html
[root@kim-test ~]# ll /home/user1/contents_mount
合計 0
-rw-rw-r-- 1 root root 0 10月 8 20:17 homepage.html
[root@kim-test ~]# ll /home/user1/contents_unmount
合計 0
-rw-rw-r-- 1 root root 0 10月 8 20:17 homepage.html
[root@kim-test ~]# findmnt
TARGET SOURCE FSTYPE OPTIONS
/ /dev/vda3 ext4 rw,relatime,data=ordered
|-/sys sysfs sysfs rw,nosuid,nodev,noexec,relatime
| |-/sys/kernel/security securityfs securityfs rw,nosuid,nodev,noexec,relatime
| |-/sys/fs/cgroup tmpfs tmpfs ro,nosuid,nodev,noexec,mode=755
| | |-/sys/fs/cgroup/systemd cgroup cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd
| | |-/sys/fs/cgroup/net_cls,net_prio cgroup cgroup rw,nosuid,nodev,noexec,relatime,net_prio,net_cls
| | |-/sys/fs/cgroup/blkio cgroup cgroup rw,nosuid,nodev,noexec,relatime,blkio
| | |-/sys/fs/cgroup/cpu,cpuacct cgroup cgroup rw,nosuid,nodev,noexec,relatime,cpuacct,cpu
| | |-/sys/fs/cgroup/cpuset cgroup cgroup rw,nosuid,nodev,noexec,relatime,cpuset
| | |-/sys/fs/cgroup/perf_event cgroup cgroup rw,nosuid,nodev,noexec,relatime,perf_event
| | |-/sys/fs/cgroup/freezer cgroup cgroup rw,nosuid,nodev,noexec,relatime,freezer
| | |-/sys/fs/cgroup/pids cgroup cgroup rw,nosuid,nodev,noexec,relatime,pids
| | |-/sys/fs/cgroup/devices cgroup cgroup rw,nosuid,nodev,noexec,relatime,devices
| | |-/sys/fs/cgroup/hugetlb cgroup cgroup rw,nosuid,nodev,noexec,relatime,hugetlb
| | |-/sys/fs/cgroup/memory cgroup cgroup rw,nosuid,nodev,noexec,relatime,memory
| |-/sys/fs/pstore pstore pstore rw,nosuid,nodev,noexec,relatime
| |-/sys/kernel/config configfs configfs rw,relatime
| |-/sys/kernel/debug debugfs debugfs rw,relatime
|-/proc proc proc rw,nosuid,nodev,noexec,relatime
| |-/proc/sys/fs/binfmt_misc systemd-1 autofs rw,relatime,fd=26,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=10639
| |-/proc/sys/fs/binfmt_misc binfmt_misc binfmt_misc rw,relatime
|-/dev devtmpfs devtmpfs rw,nosuid,size=490760k,nr_inodes=122690,mode=755
| |-/dev/shm tmpfs tmpfs rw,nosuid,nodev
| |-/dev/pts devpts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000
| |-/dev/mqueue mqueue mqueue rw,relatime
| |-/dev/hugepages hugetlbfs hugetlbfs rw,relatime
|-/run tmpfs tmpfs rw,nosuid,nodev,mode=755
| |-/run/user/1000 tmpfs tmpfs rw,nosuid,nodev,relatime,size=101480k,mode=700,uid=1000,gid=1000
|-/home/user1/contents_mount /dev/vda3[/var/www/html/contents]
ext4 rw,relatime,data=ordered
|-/home/user1/contents_unmount /dev/vda3[/var/www/html/contents]
ext4 rw,relatime,data=ordered
/etc/fstabファイルにcontents_mountディレクトリのマウント設定だけを記載します。
[root@kim-test ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Mon Dec 14 04:55:29 2020
#
# 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
#
UUID=dc83d69a-dcc2-40e5-86e3-f7c9c8d53d4c / ext4 defaults 1 1
UUID=1db1649d-fd8e-4059-a1ed-121864462f42 swap swap defaults 0 0
/var/www/html/contents/home/user1/contents_mount none bind 0 0
サーバーを再起動させ、マウント状況を確認します。
[root@kim-test ~]# reboot
Shared connection to XXX.XXX.XXX.XXX closed.
[root@kim-test ~]# ll /home/user1/contents_mount
合計 0
-rw-rw-r-- 1 root root 0 10月 8 20:17 homepage.html
[root@kim-test ~]# ll /home/user1/contents_unmount
合計 0
[root@kim-test ~]# findmnt
TARGET SOURCE FSTYPE OPTIONS
/ /dev/vda3 ext4 rw,relatime,data=ordered
|-/sys sysfs sysfs rw,nosuid,nodev,noexec,relatime
| |-/sys/kernel/security securityfs securityfs rw,nosuid,nodev,noexec,relatime
| |-/sys/fs/cgroup tmpfs tmpfs ro,nosuid,nodev,noexec,mode=755
| | tq/sys/fs/cgroup/systemd cgroup cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd
| | tq/sys/fs/cgroup/net_cls,net_prio cgroup cgroup rw,nosuid,nodev,noexec,relatime,net_prio,net_cls
| | tq/sys/fs/cgroup/memory cgroup cgroup rw,nosuid,nodev,noexec,relatime,memory
| | tq/sys/fs/cgroup/perf_event cgroup cgroup rw,nosuid,nodev,noexec,relatime,perf_event
| | tq/sys/fs/cgroup/hugetlb cgroup cgroup rw,nosuid,nodev,noexec,relatime,hugetlb
| | tq/sys/fs/cgroup/pids cgroup cgroup rw,nosuid,nodev,noexec,relatime,pids
| | tq/sys/fs/cgroup/cpuset cgroup cgroup rw,nosuid,nodev,noexec,relatime,cpuset
| | tq/sys/fs/cgroup/cpu,cpuacct cgroup cgroup rw,nosuid,nodev,noexec,relatime,cpuacct,cpu
| | tq/sys/fs/cgroup/freezer cgroup cgroup rw,nosuid,nodev,noexec,relatime,freezer
| | tq/sys/fs/cgroup/blkio cgroup cgroup rw,nosuid,nodev,noexec,relatime,blkio
| | mq/sys/fs/cgroup/devices cgroup cgroup rw,nosuid,nodev,noexec,relatime,devices
| |-/sys/fs/pstore pstore pstore rw,nosuid,nodev,noexec,relatime
| |-/sys/kernel/config configfs configfs rw,relatime
| |-/sys/kernel/debug debugfs debugfs rw,relatime
|-/proc proc proc rw,nosuid,nodev,noexec,relatime
| |-/proc/sys/fs/binfmt_misc systemd-1 autofs rw,relatime,fd=27,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=10715
| |q/proc/sys/fs/binfmt_misc binfmt_misc binfmt_misc rw,relatime
|-/dev devtmpfs devtmpfs rw,nosuid,size=490760k,nr_inodes=122690,mode=755
| |-/dev/shm tmpfs tmpfs rw,nosuid,nodev
| |-/dev/pts devpts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000
| |-/dev/hugepages hugetlbfs hugetlbfs rw,relatime
| |-/dev/mqueue mqueue mqueue rw,relatime
|-/run tmpfs tmpfs rw,nosuid,nodev,mode=755
| |-/run/user/1000 tmpfs tmpfs rw,nosuid,nodev,relatime,size=101480k,mode=700,uid=1000,gid=1000
|-/home/user1/contents_mount /dev/vda3[/var/www/html/contents]
ext4 rw,relatime,data=ordered
/etc/fstabに設定していないcontents_unmountディレクトリのマウントは再起動で外れてしまいました。
ウェブページの作成でFTPやSFTPを使用しているとき、このファイルに正しい設定が書かれていないと、突然意図しない再起動が実施された際に 通常とは異なる状態になるかもしれません。
おわりに
今回はOS再起動時のマウントの挙動について見ていきました。
サーバー内の設定に関して、お悩み事がありましたら
お気軽に弊社へお問い合わせください。