テックブログ

マウントについて

こんにちは、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再起動時のマウントの挙動について見ていきました。
サーバー内の設定に関して、お悩み事がありましたら
お気軽に弊社へお問い合わせください。

この記事をシェアする

  • facebook
  • twitter
  • hatena
  • line
URLとタイトルをコピーする

実績数30,000件!
サーバーやネットワークなど
ITインフラのことならネットアシストへ、
お気軽にご相談ください