第14章 ファイルシステムのマウント

システム管理者は、システムにファイルシステムをマウントすると、ファイルシステムのデータにアクセスできます。

14.1. Linux のマウントメカニズム

本セクションでは、Linux でのファイルシステムのマウントに関する基本概念を説明します。

Linux、UNIX、および類似のオペレーティングシステムでは、さまざまなパーティションおよびリムーバブルデバイス (CD、DVD、USB フラッシュドライブなど) にあるファイルシステムをディレクトリーツリーの特定のポイント (マウントポイント) に接続して、再度切り離すことができます。ファイルシステムがディレクトリーにマウントされている間は、そのディレクトリーの元の内容にアクセスすることはできません。

Linux では、ファイルシステムがすでに接続されているディレクトリーにファイルシステムをマウントできます。

マウント時には、次の方法でデバイスを識別できます。

  • UUID (Universally Unique Identifier) - UUID=34795a28-ca6d-4fd8-a347-73671d0c19cb など
  • ボリュームラベル - LABEL=home など
  • 非永続的なブロックデバイスへのフルパス - /dev/sda3 など

デバイス名、目的のディレクトリー、ファイルシステムタイプなど、必要な情報をすべて指定せずに mount コマンドを使用してファイルシステムをマウントすると、mount ユーティリティーは /etc/fstab ファイルの内容を読み取り、指定のファイルシステムが記載されているかどうかを確認します。/etc/fstab ファイルには、選択したファイルシステムがマウントされるデバイス名およびディレクトリーのリスト、ファイルシステムタイプ、およびマウントオプションが含まれます。そのため、/etc/fstab で指定されたファイルシステムをマウントする場合は、以下のコマンド構文で十分です。

  • マウントポイントによるマウント:

    # mount directory
  • ブロックデバイスによるマウント:

    # mount device

関連情報

14.2. 現在マウントされているファイルシステムの一覧表示

この手順では、コマンドラインに、現在マウントされているファイルシステムの一覧を表示する方法を説明します。

手順

  • マウントされているファイルシステムの一覧を表示するには、findmnt ユーティリティーを使用します。

    $ findmnt
  • 一覧表示されているファイルシステムを、特定のファイルシステムタイプに制限するには、--types オプションを追加します。

    $ findmnt --types fs-type

    以下に例を示します。

    例14.1 XFS ファイルシステムのみを表示

    $ findmnt --types xfs
    
    TARGET  SOURCE                                                FSTYPE OPTIONS
    /       /dev/mapper/luks-5564ed00-6aac-4406-bfb4-c59bf5de48b5 xfs    rw,relatime
    ├─/boot /dev/sda1                                             xfs    rw,relatime
    └─/home /dev/mapper/luks-9d185660-7537-414d-b727-d92ea036051e xfs    rw,relatime

関連情報

  • man ページの findmnt(8)

14.3. mount でファイルシステムのマウント

この手順では、mount ユーティリティーを使用してファイルシステムをマウントする方法を説明します。

前提条件

  • 選択したマウントポイントにファイルシステムがマウントされていない。

    $ findmnt mount-point

手順

  1. 特定のファイルシステムを添付する場合は、mount ユーティリティーを使用します。

    # mount device mount-point

    例14.2 XFS ファイルシステムのマウント

    たとえば、UUID により識別されるローカル XFS ファイルシステムをマウントするには、次のコマンドを実行します。

    # mount UUID=ea74bbec-536d-490c-b8d9-5b40bbd7545b /mnt/data
  2. mount がファイルシステムタイプを自動的に認識できない場合は、--types オプションで指定します。

    # mount --types type device mount-point

    例14.3 NFS ファイルシステムのマウント

    たとえば、リモートの NFS ファイルシステムをマウントするには、次のコマンドを実行します。

    # mount --types nfs4 host:/remote-export /mnt/nfs

関連情報

  • man ページの mount(8)

14.4. マウントポイントの移動

この手順では、マウントされたファイルシステムのマウントポイントを、別のディレクトリーに変更する方法を説明します。

手順

  1. ファイルシステムがマウントされているディレクトリーを変更するには、以下のコマンドを実行します。

    # mount --move old-directory new-directory

    例14.4 ホームファイルシステムの移動

    たとえば、/mnt/userdirs/ ディレクトリーにマウントされたファイルシステムを /home/ マウントポイントに移動するには、以下のコマンドを実行します。

    # mount --move /mnt/userdirs /home
  2. ファイルシステムが想定どおりに移動したことを確認します。

    $ findmnt
    $ ls old-directory
    $ ls new-directory

関連情報

  • man ページの mount(8)

14.5. umount でファイルシステムのアンマウント

この手順では、umount ユーティリティーを使用してファイルシステムをアンマウントする方法を説明します。

手順

  1. 次のいずれかのコマンドを使用してファイルシステムをアンマウントします。

    • マウントポイントで行う場合は、以下のコマンドを実行します。

      # umount mount-point
    • デバイスで行う場合は、以下のコマンドを実行します。

      # umount device

    コマンドが次のようなエラーで失敗した場合は、プロセスがリソースを使用しているため、ファイルシステムが使用中であることを意味します。

    umount: /run/media/user/FlashDrive: target is busy.
  2. ファイルシステムが使用中の場合は、fuser ユーティリティーを使用して、ファイルシステムにアクセスしているプロセスを特定します。以下に例を示します。

    $ fuser --mount /run/media/user/FlashDrive
    
    /run/media/user/FlashDrive: 18351

    その後、ファイルシステムを使用してプロセスを終了し、マウント解除を再度試みます。

14.6. 一般的なマウントオプション

本セクションでは、mount ユーティリティーでよく使用されるオプションを示します。

オプションは、次の構文で使用できます。

# mount --options option1,option2,option3 device mount-point

表14.1 一般的なマウントオプション

オプション説明

async

ファイルシステムで非同期の入出力を可能にします。

auto

mount -a コマンドを使用したファイルシステムの自動マウントを可能にします。

defaults

オプション async、auto、dev、exec、nouser、rw、suid のエイリアスを指定します。

exec

特定のファイルシステムでのバイナリーファイルの実行を許可します。

loop

イメージをループデバイスとしてマウントします。

noauto

デフォルトでは、mount -a コマンドを使用したファイルシステムの自動マウントを無効します。

noexec

特定のファイルシステムでのバイナリーファイルの実行は許可しません。

nouser

普通のユーザー (つまり root 以外のユーザー) によるファイルシステムのマウントおよびアンマウントは許可しません。

remount

ファイルシステムがすでにマウントされている場合は再度マウントを行います。

ro

読み取り専用でファイルシステムをマウントします。

rw

ファイルシステムを読み取りと書き込み両方でマウントします。

user

普通のユーザー (つまり root 以外のユーザー) によるファイルシステムのマウントおよびアンマウントを許可します。

14.7. 複数のマウントポイントでのマウント共有

システム管理者は、マウントポイントを複製して、複数のディレクトリーからファイルシステムにアクセスするようにできます。

14.7.1. 共有マウントのタイプ

使用できる共有マウントには複数のタイプがあります。共有マウントポイントの種類によって、マウントポイントに別のファイルシステムをマウントしたときに発生する内容がなります。共有マウントは、共有サブツリー 機能を使用して実装されます。

タイプは以下のとおりです。

プライベートマウント

このタイプは、伝播イベントを受信または転送しません。

複製マウントポイントまたは元のマウントポイントのどちらかに別のファイルシステムをマウントしても、それは他方には反映されません。

共有マウント

このタイプは、指定したマウントポイントの正確なレプリカを作成します。

マウントポイントが共有マウントとしてマークされている場合は、元のマウントポイント内のすべてのマウントが複製マウントポイントに反映されます (その逆も同様です)。

これは、root ファイルシステムのデフォルトのマウントタイプです。

スレーブマウント

このタイプは、指定したマウントポイントの限定的な複製を作成します。

マウントポイントがスレーブマウントとしてマークされている場合は、元のマウントポイント内のすべてのマウントが複製マウントポイントに反映されますが、スレーブマウント内のマウントは元のポイントに反映されません。

バインド不可能なマウント
このタイプは、指定のマウントポイントの複製をまったく行いません。

14.7.2. プライベートマウントポイントの複製の作成

この手順では、マウントポイントをプライベートマウントとして複製します。複製後に、複製または元のマウントポイントにマウントするファイルシステムは、他方のマウントポイントには反映されません。

手順

  1. 元のマウントポイントから仮想ファイルシステム (VFS) ノードを作成します。

    # mount --bind original-dir original-dir
  2. 元のマウントポイントをプライベートとしてマークします。

    # mount --make-private original-dir

    あるいは、選択したマウントポイントと、その下のすべてのマウントポイントのマウントタイプを変更するには、--make-private ではなく、--make-rprivate オプションを使用します。

  3. 複製を作成します。

    # mount --bind original-dir duplicate-dir

例14.5 プライベートマウントポイントとして /mnt に /media を複製

  1. /media ディレクトリーから VFS ノードを作成します。

    # mount --bind /media /media
  2. /media ディレクトリーをプライベートとしてマークします。

    # mount --make-private /media
  3. そのコピーを /mnt に作成します。

    # mount --bind /media /mnt
  4. これで、/media/mnt はコンテンツを共有してますが、/media 内のマウントはいずれも /mnt に現れていないことが確認できます。たとえば、CD-ROM ドライブに空でないメディアがあり、/media/cdrom/ ディレクトリーが存在する場合は、以下のコマンドを実行します。

    # mount /dev/cdrom /media/cdrom
    # ls /media/cdrom
    EFI  GPL  isolinux  LiveOS
    # ls /mnt/cdrom
    #
  5. また、/mnt ディレクトリーにマウントされているファイルシステムが /media に反映されていないことを確認することもできます。たとえば、/dev/sdc1 デバイスを使用する、空でない USB フラッシュドライブをプラグインしており、/mnt/flashdisk/ ディレクトリーが存在する場合は、次のコマンドを実行します。

    # mount /dev/sdc1 /mnt/flashdisk
    # ls /media/flashdisk
    # ls /mnt/flashdisk
    en-US  publican.cfg

関連情報

  • man ページの mount(8)

14.7.3. 共有マウントポイントの複製の作成

この手順では、マウントポイントを共有マウントとして複製します。複製後に、元のディレクトリーまたは複製にマウントしたファイルシステムは、他方のマウントポイントに常に反映されます。

手順

  1. 元のマウントポイントから仮想ファイルシステム (VFS) ノードを作成します。

    # mount --bind original-dir original-dir
  2. 元のマウントポイントを共有としてマークします。

    # mount --make-shared original-dir

    あるいは、選択したマウントポイントとその下のすべてのマウントポイントのマウントタイプを変更する場合は、--make-shared ではなく、--make-rshared オプションを使用します。

  3. 複製を作成します。

    # mount --bind original-dir duplicate-dir

例14.6 共有マウントポイントとして /mnt に /media を複製

/media ディレクトリーと /mnt ディレクトリーが同じコンテンツを共有するようにするには、次の手順を行います。

  1. /media ディレクトリーから VFS ノードを作成します。

    # mount --bind /media /media
  2. /media ディレクトリーを共有としてマークします。

    # mount --make-shared /media
  3. そのコピーを /mnt に作成します。

    # mount --bind /media /mnt
  4. これで、/media 内のマウントが /mnt にも現れていることを確認できます。たとえば、CD-ROM ドライブに空でないメディアがあり、/media/cdrom/ ディレクトリーが存在する場合は、以下のコマンドを実行します。

    # mount /dev/cdrom /media/cdrom
    # ls /media/cdrom
    EFI  GPL  isolinux  LiveOS
    # ls /mnt/cdrom
    EFI  GPL  isolinux  LiveOS
  5. 同様に、/mnt ディレクトリー内にマウントされているファイルシステムが /media に反映されていることを確認することもできます。たとえば、/dev/sdc1 デバイスを使用する、空でない USB フラッシュドライブをプラグインしており、/mnt/flashdisk/ ディレクトリーが存在する場合は、次のコマンドを実行します。

    # mount /dev/sdc1 /mnt/flashdisk
    # ls /media/flashdisk
    en-US  publican.cfg
    # ls /mnt/flashdisk
    en-US  publican.cfg

関連情報

  • man ページの mount(8)

14.7.4. スレーブマウントポイントの複製の作成

この手順では、マウントポイントをスレーブマウントとして複製します。複製後に、元のマウントポイントにマウントしたファイルシステムは複製に反映されますが、他のマウントポイントには反映されません。

手順

  1. 元のマウントポイントから仮想ファイルシステム (VFS) ノードを作成します。

    # mount --bind original-dir original-dir
  2. 元のマウントポイントを共有としてマークします。

    # mount --make-shared original-dir

    あるいは、選択したマウントポイントとその下のすべてのマウントポイントのマウントタイプを変更する場合は、--make-shared ではなく、--make-rshared オプションを使用します。

  3. 複製を作成し、それをスレーブとしてマークします。

    # mount --bind original-dir duplicate-dir
    # mount --make-slave duplicate-dir

例14.7 スレーブマウントポイントとして /mnt に /media を複製

この例は、/media ディレクトリーのコンテンツが /mnt にも表示され、/mnt ディレクトリーのマウントが /media に反映されないようにする方法を示しています。

  1. /media ディレクトリーから VFS ノードを作成します。

    # mount --bind /media /media
  2. /media ディレクトリーを共有としてマークします。

    # mount --make-shared /media
  3. そのコピーを /mnt に作成し、スレーブとしてマークします。

    # mount --bind /media /mnt
    # mount --make-slave /mnt
  4. /media 内のマウントが /mnt にも表示されていることを確認します。たとえば、CD-ROM ドライブに空でないメディアがあり、/media/cdrom/ ディレクトリーが存在する場合は、以下のコマンドを実行します。

    # mount /dev/cdrom /media/cdrom
    # ls /media/cdrom
    EFI  GPL  isolinux  LiveOS
    # ls /mnt/cdrom
    EFI  GPL  isolinux  LiveOS
  5. また、/mnt ディレクトリー内にマウントされているファイルシステムが /media に反映されていないことを確認します。たとえば、/dev/sdc1 デバイスを使用する、空でない USB フラッシュドライブをプラグインしており、/mnt/flashdisk/ ディレクトリーが存在する場合は、次のコマンドを実行します。

    # mount /dev/sdc1 /mnt/flashdisk
    # ls /media/flashdisk
    # ls /mnt/flashdisk
    en-US  publican.cfg

関連情報

  • man ページの mount(8)

14.7.5. マウントポイントが複製されないようにする

この手順では、別のマウントポイントに複製されないように、マウントポイントをバインド不可としてマークします。

手順

  • マウントポイントのタイプをバインド不可なマウントに変更するには、以下のコマンドを使用します。

    # mount --bind mount-point mount-point
    # mount --make-unbindable mount-point

    あるいは、選択したマウントポイントとその下のすべてのマウントポイントのマウントタイプを変更する場合は、--make-unbindable の代わりに、--make-runbindable オプションを使用します。

    これ以降、このマウントの複製を作成しようとすると、以下のエラーが出て失敗します。

    # mount --bind mount-point duplicate-dir
    
    mount: wrong fs type, bad option, bad superblock on mount-point,
    missing codepage or helper program, or other error
    In some cases useful info is found in syslog - try
    dmesg | tail  or so

例14.8 /media が複製されないようにする

  • /media ディレクトリーが共有されないようにするには、以下のコマンドを実行します。

    # mount --bind /media /media
    # mount --make-unbindable /media

関連情報

  • man ページの mount(8)

14.8. ファイルシステムの永続的なマウント

システム管理者は、ファイルシステムを永続的にマウントして、非リムーバブルストレージを構成できます。

14.8.1. /etc/fstab ファイル

本セクションでは、ファイルシステムの永続的なマウントポイントを制御する /etc/fstab 設定ファイルを説明します。ファイルシステムを永続的にマウントするには、/etc/fstab を使用することが推奨されます。

/etc/fstab ファイルの各行は、ファイルシステムのマウントポイントを定義します。空白で区切られた 6 つのフィールドが含まれています。

  1. /dev ディレクトリーの永続的な属性またはパスで識別されるブロックデバイス。
  2. デバイスがマウントされるディレクトリー。
  3. デバイス上のファイルシステム。
  4. ファイルシステムのマウントオプション。defaults オプションは、システムの起動時に、パーティションがデフォルトのオプションでマウントされることを意味します。本セクションでは、x-systemd.option 形式の systemd マウントユニットオプションも取り上げます。
  5. dump ユーティリティーのオプションのバックアップを作成します。
  6. fsck ユーティリティーの順序を確認します。

例14.9 /etc/fstab/boot ファイルシステム

ブロックデバイスマウントポイントファイルシステムオプションバックアップチェック

UUID=ea74bbec-536d-490c-b8d9-5b40bbd7545b

/boot

xfs

defaults

0

0

systemd サービスは、/etc/fstab のエントリーからマウントユニットを自動的に生成します。

関連情報

  • man ページの fstab(5)
  • man ページの systemd.mount(5)fstab セクション

14.8.2. /etc/fstab へのファイルシステムの追加

この手順では、/etc/fstab 設定ファイルでファイルシステムの永続マウントポイントを設定する方法を説明します。

手順

  1. ファイルシステムの UUID 属性を調べます。

    $ lsblk --fs storage-device

    以下に例を示します。

    例14.10 パーティションの UUID の表示

    $ lsblk --fs /dev/sda1
    
    NAME FSTYPE LABEL UUID                                 MOUNTPOINT
    sda1 xfs    Boot  ea74bbec-536d-490c-b8d9-5b40bbd7545b /boot
  2. このマウントポイントのディレクトリーがない場合は、作成します。

    # mkdir --parents mount-point
  3. root で /etc/fstab ファイルを編集し、ファイルシステムに行を追加します (UUID で識別されます)。

    以下に例を示します。

    例14.11 /etc/fstab の /boot マウントポイント

    UUID=ea74bbec-536d-490c-b8d9-5b40bbd7545b /boot xfs defaults 0 0
  4. システムが新しい設定を登録するように、マウントユニットを再生成します。

    # systemctl daemon-reload
  5. ファイルシステムをマウントして、設定が機能することを確認します。

    # mount mount-point

関連情報

14.8.3. RHEL システムロールを使用したファイルシステムの永続的なマウント

本セクションでは、storage ロールを使用して、ファイルシステムを永続的にマウントする方法を説明します。

前提条件

  • storage ロールを使用する Ansible Playbook がある。

    このような Playbook を適用する方法は、「ロールの適用」を参照してください。

14.8.3.1. ファイルシステムを永続的にマウントする Ansible Playbook の例

本セクションでは、Ansible Playbook の例を紹介します。この Playbook は、ストレージ ロールをすぐに適用して、XFS ファイルシステムを永続的にマウントします。

例14.12 /dev/sdb のファイルシステムを /mnt/data にマウントする Playbook

---
- hosts: all
  vars:
    storage_volumes:
      - name: barefs
        type: disk
        disks:
          - sdb
        fs_type: xfs
        mount_point: /mnt/data
  roles:
    - rhel-system-roles.storage
  • この Playbook では、ファイルシステムが /etc/fstab ファイルに追加され、すぐにファイルシステムをマウントします。
  • /dev/sdb デバイス上のファイルシステム、またはマウントポイントのディレクトリーが存在しない場合は、Playbook により作成されます。

関連情報

  • storage システムロールで使用されるパラメーターの詳細は、/usr/share/ansible/roles/rhel-system-roles.storage/README.md ファイルを参照してください。

14.8.3.2. 関連情報

14.9. オンデマンドでのファイルシステムのマウント

システム管理者は、NFS などのファイルシステムをオンデマンドで自動的にマウントするように設定できます。

14.9.1. autofs サービス

本セクションでは、ファイルシステムをオンデマンドでマウントするのに使用する autofs サービスの利点と基本概念を説明します。

/etc/fstab 設定を使用した永続的なマウントの欠点の 1 つは、マウントされたファイルシステムにユーザーがアクセスする頻度に関わらず、マウントされたファイルシステムを所定の場所で維持するために、システムがリソースを割り当てる必要があることです。これは、システムが一度に多数のシステムへの NFS マウントを維持している場合などに、システムのパフォーマンスに影響を与える可能性があります。

/etc/fstab に代わるのは、カーネルベースの autofs サービスの使用です。これは以下のコンポーネントで構成されています。

  • ファイルシステムを実装するカーネルモジュール
  • 他のすべての機能を実行するユーザー空間サービス

autofs サービスは、ファイルシステムの自動マウントおよび自動アンマウントが可能なため (オンデマンド)、システムのリソースを節約できます。このサービスは、NFS、AFS、SMBFS、CIFS、およびローカルなどのファイルシステムをマウントする場合にも使用できます。

関連情報

  • man ページの autofs(8)

14.9.2. autofs 設定ファイル

本セクションでは、autofs サービスで使用される設定ファイルの使用方法と構文を説明します。

マスターマップファイル

autofs サービスは、デフォルトの主要設定ファイルとして、/etc/auto.master (マスターマップ) を使用します。これは、/etc/autofs.conf 設定ファイルの autofs 設定を Name Service Switch (NSS) メカニズムとともに使用することで、対応している別のネットワークソースと名前を使用するように変更できます。

すべてのオンデマンドマウントポイントはマスターマップで設定する必要があります。マウントポイント、ホスト名、エクスポートされたディレクトリー、オプションはすべて、ホストごとに手動で設定するのではなく、一連のファイル (またはサポートされているその他のネットワークソース) で指定できます。

マスターマップファイルには、autofs により制御されるマウントポイントと、それに対応する設定ファイルまたは自動マウントマップと呼ばれるネットワークソースが一覧表示されます。マスターマップの形式は次のとおりです。

mount-point  map-name  options

この形式で使用されている変数を以下に示します。

mount-point
autofs マウントポイント (例: /mnt/data/) です。
map-file
マウントポイントの一覧と、マウントポイントがマウントされるファイルシステムの場所が記載されているマップソースファイルです。
options
指定した場合に、エントリーにオプションが指定されていなければ、指定されたマップ内のすべてのエントリーに適用されます。

例14.13 /etc/auto.master ファイル

以下は /etc/auto.master ファイルのサンプル行です。

/mnt/data  /etc/auto.data
マップファイル

マップファイルは、個々のオンデマンドマウントポイントのプロパティを設定します。

ディレクトリーが存在しない場合、自動マウント機能はディレクトリーを作成します。ディレクトリーが存在している状況で自動マウント機能が起動した場合は、自動マウント機能の終了時にディレクトリーが削除されることはありません。タイムアウトを指定した場合は、タイムアウト期間中ディレクトリーにアクセスしないと、ディレクトリーが自動的にアンマウントされます。

マップの一般的な形式は、マスターマップに似ています。ただし、マスターマップでは、オプションフィールドはエントリーの末尾ではなく、マウントポイントと場所の間に表示されます。

mount-point  options  location

この形式で使用されている変数を以下に示します。

mount-point
これは、autofs のマウントポイントを参照しています。これは 1 つのインダイレクトマウント用の 1 つのディレクトリー名にすることも、複数のダイレクトマウント用のマウントポイントの完全パスにすることもできます。ダイレクトマップとインダイレクトマップの各エントリーキー (mount-point) の後に空白で区切られたオフセットディレクトリー (/ で始まるサブディレクトリー名) が記載されます。これがマルチマウントエントリーと呼ばれるものです。
options
オプションを指定すると、これはそのマップエントリー用のマウントオプションになります。エントリー自体にはオプション指定を行いません。このフィールドは任意です。
location
ローカルファイルシステムのパス (Sun マップ形式のエスケープ文字 : が先頭に付き、マップ名が / で始まります)、NFS ファイルシステム、他の有効なファイルシステムの場所などのファイルシステムの場所を参照します。

例14.14 マップファイル

以下は、マップファイルのサンプルです (例: /etc/auto.misc)。

payroll  -fstype=nfs4  personnel:/dev/disk/by-uuid/52b94495-e106-4f29-b868-fe6f6c2789b1
sales    -fstype=xfs   :/dev/disk/by-uuid/5564ed00-6aac-4406-bfb4-c59bf5de48b5

マップファイルの最初の列は、autofs マウントポイント (personnel サーバーからの salespayroll) を示しています。2 列目は、autofs マウントのオプションを示しています。3 列目はマウントのソースを示しています。

任意の設定に基づき、autofs マウントポイントは、/home/payroll/home/sales になります。-fstype= オプションは省略されることが多く、通常は正しい操作には必要ありません。

与えられた設定を使用して、プロセスが /home/payroll/2006/July.sxc などのアンマウントされたディレクトリー autofs へのアクセスを要求すると、autofs サービスは自動的にディレクトリーをマウントします。

amd マップ形式

autofs サービスは、amd 形式のマップ設定も認識します。これは Red Hat Enterprise Linux から削除された、am-utils サービス用に書き込まれた既存の自動マウント機能の設定を再利用する場合に便利です。

ただし、Red Hat は、前述のセクションで説明した簡単な autofs 形式の使用を推奨しています。

関連情報

  • man ページの autofs(5)autofs.conf(5)、および auto.master(5)
  • amd マップ形式の詳細は、autofs パッケージで提供されている /usr/share/doc/autofs/README.amd-maps ファイルを参照してください。

14.9.3. autofs マウントポイントの設定

この手順では、autofs サービスを使用してオンデマンドマウントポイントを設定する方法を説明します。

前提条件

  • autofs パッケージをインストールしている。

    # yum install autofs
  • autofs サービスを起動して有効にしている。

    # systemctl enable --now autofs

手順

  1. /etc/auto.identifier にあるオンデマンドマウントポイント用のマップファイルを作成します。identifier を、マウントポイントを識別する名前に置き換えます。
  2. マップファイルで、「autofs 設定ファイル」の説明に従って、マウントポイント、オプション、および場所の各フィールドを入力します。
  3. マスターマップファイルで、「autofs 設定ファイル」 の説明に従って、マップファイルを登録します。
  4. オンデマンドディレクトリーのコンテンツへのアクセスを試みます。

    $ ls automounted-directory

14.9.4. autofs サービスを使用した NFS サーバーユーザーのホームディレクトリーの自動マウント

この手順では、ユーザーのホームディレクトリーを自動的にマウントするように autofs サービスを設定する方法を説明します。

前提条件

  • autofs パッケージがインストールされている。
  • autofs サービスが有効で、実行している。

手順

  1. ユーザーのホームディレクトリーをマウントする必要があるサーバーの /etc/auto.master ファイルを編集して、マップファイルのマウントポイントと場所を指定します。これを行うには、以下の行を /etc/auto.master ファイルに追加します。

    /home /etc/auto.home
  2. ユーザーのホームディレクトリーをマウントする必要があるサーバー上で、/etc/auto.home という名前のマップファイルを作成し、以下のパラメーターでファイルを編集します。

    * -fstype=nfs,rw,sync host.example.com:/home/&i

    fstype パラメーターはデフォルトで nfs であるため、このパラメーターは飛ばして次に進むことができます。詳細は、man ページの autofs(5) を参照してください。

  3. autofs サービスを再読み込みします。

    # systemctl reload autofs

14.9.5. autofs サイトの設定ファイルの上書き/拡張

クライアントシステムの特定のマウントポイントで、サイトのデフォルトを上書きすることが役に立つ場合があります。

例14.15 初期条件

たとえば、次の条件を検討します。

  • 自動マウント機能のマップが NIS に格納され、/etc/nsswitch.conf ファイルに次のようなディレクティブがある。

    automount:    files nis
  • auto.master ファイルに以下を含む。

    +auto.master
  • NIS の auto.master マップファイルに以下を含む。

    /home auto.home
  • NIS の auto.home マップには以下が含まれている。

    beth    fileserver.example.com:/export/home/beth
    joe     fileserver.example.com:/export/home/joe
    *       fileserver.example.com:/export/home/&
  • /etc/auto.home ファイルマップが存在しない。

例14.16 別のサーバーからのホームディレクトリーのマウント

上記の条件で、クライアントシステムが NIS マップの auto.home を上書きして、別のサーバーからホームディレクトリーをマウントする必要があるとします。

  • この場合、クライアントは次の /etc/auto.master マップを使用する必要があります。

    /home ­/etc/auto.home
    +auto.master
  • /etc/auto.home マップにエントリーが含まれています。

    *    host.example.com:/export/home/&

自動マウント機能は最初に出現したマウントポイントのみを処理するため、/home ディレクトリーには NIS auto.home マップではなく、/etc/auto.home の内容が含まれます。

例14.17 選択されたエントリーのみを使用した auto.home の拡張

別の方法として、サイト全体の auto.home マップを少しのエントリーを使用して拡張するには、次の手順を行います。

  1. /etc/auto.home ファイルマップを作成し、そこに新しいエントリーを追加します。最後に、NIS の auto.home マップを含めます。これにより、/etc/auto.home ファイルマップは次のようになります。

    mydir someserver:/export/mydir
    +auto.home
  2. この NIS の auto.home マップ条件で、/home ディレクトリーの出力内容を一覧表示すると次のようになります。

    $ ls /home
    
    beth joe mydir

autofs は、読み取り中のファイルマップと同じ名前のファイルマップの内容を組み込まないため、上記の例は期待どおりに動作します。このように、autofs は、nsswitch 設定内の次のマップソースに移動します。

14.9.6. LDAP で自動マウント機能マップの格納

この手順では、autofs マップファイルではなく、LDAP 設定で自動マウント機能マップを格納するように autofs を設定します。

前提条件

  • LDAP から自動マウント機能マップを取得するように設定されているすべてのシステムに、LDAP クライアントライブラリーをインストールする必要があります。Red Hat Enterprise Linux では、openldap パッケージは、autofs パッケージの依存関係として自動的にインストールされます。

手順

  1. LDAP アクセスを設定するには、/etc/openldap/ldap.conf ファイルを変更します。BASEURIschema の各オプションがサイトに適切に設定されていることを確認します。
  2. 自動マウント機能マップを LDAP に格納するために既定された最新のスキーマが、rfc2307bis ドラフトに記載されています。このスキーマを使用する場合は、スキーマの定義のコメント文字を取り除き、/etc/autofs.conf 設定ファイル内に設定する必要があります。以下に例を示します。

    例14.18 autofs の設定

    DEFAULT_MAP_OBJECT_CLASS="automountMap"
    DEFAULT_ENTRY_OBJECT_CLASS="automount"
    DEFAULT_MAP_ATTRIBUTE="automountMapName"
    DEFAULT_ENTRY_ATTRIBUTE="automountKey"
    DEFAULT_VALUE_ATTRIBUTE="automountInformation"
  3. 他のすべてのスキーマエントリーが設定内でコメントされていることを確認してください。automountKey 属性は、rfc2307bis スキーマの cn 属性を置き換えます。以下は、LDAP データ交換形式 (LDIF) 設定の例です。

    例14.19 LDF の設定

    # extended LDIF
    #
    # LDAPv3
    # base <> with scope subtree
    # filter: (&(objectclass=automountMap)(automountMapName=auto.master))
    # requesting: ALL
    #
    
    # auto.master, example.com
    dn: automountMapName=auto.master,dc=example,dc=com
    objectClass: top
    objectClass: automountMap
    automountMapName: auto.master
    
    # extended LDIF
    #
    # LDAPv3
    # base <automountMapName=auto.master,dc=example,dc=com> with scope subtree
    # filter: (objectclass=automount)
    # requesting: ALL
    #
    
    # /home, auto.master, example.com
    dn: automountMapName=auto.master,dc=example,dc=com
    objectClass: automount
    cn: /home
    
    automountKey: /home
    automountInformation: auto.home
    
    # extended LDIF
    #
    # LDAPv3
    # base <> with scope subtree
    # filter: (&(objectclass=automountMap)(automountMapName=auto.home))
    # requesting: ALL
    #
    
    # auto.home, example.com
    dn: automountMapName=auto.home,dc=example,dc=com
    objectClass: automountMap
    automountMapName: auto.home
    
    # extended LDIF
    #
    # LDAPv3
    # base <automountMapName=auto.home,dc=example,dc=com> with scope subtree
    # filter: (objectclass=automount)
    # requesting: ALL
    #
    
    # foo, auto.home, example.com
    dn: automountKey=foo,automountMapName=auto.home,dc=example,dc=com
    objectClass: automount
    automountKey: foo
    automountInformation: filer.example.com:/export/foo
    
    # /, auto.home, example.com
    dn: automountKey=/,automountMapName=auto.home,dc=example,dc=com
    objectClass: automount
    automountKey: /
    automountInformation: filer.example.com:/export/&

関連情報

14.10. root ファイルシステムに対する読み取り専用パーミッションの設定

場合によっては、root ファイルシステム (/) を読み取り専用パーミッションでマウントする必要があります。ユースケースの例には、システムの予期せぬ電源切断後に行うセキュリティーの向上またはデータ整合性の保持が含まれます。

14.10.1. 書き込みパーミッションを保持するファイルおよびディレクトリー

システムが正しく機能するためには、一部のファイルやディレクトリーで書き込みパーミッションが必要とされます。root ファイルシステムが読み取り専用モードでマウントされると、このようなファイルは、tmpfs 一時ファイルシステムを使用して RAM にマウントされます。

そのようなファイルとディレクトリーのデフォルトセットは、/etc/rwtab ファイルから読み取り、以下のような内容になっています。

dirs	/var/cache/man
dirs	/var/gdm
<content truncated>

empty	/tmp
empty	/var/cache/foomatic
<content truncated>

files	/etc/adjtime
files	/etc/ntp.conf
<content truncated>

/etc/rwtab ファイルのエントリーは、以下の形式に従います。

copy-method    path

この構文で、以下のことを行います。

  • copy-method を、ファイルまたはディレクトリーを tmpfs にコピーする方法を指定するキーワードの 1 つに置き換えます。
  • path を、ファイルまたはディレクトリーへのパスに置き換えます。

/etc/rwtab ファイルは、ファイルまたはディレクトリーを tmpfs にコピーする方法として以下を認識します。

empty

空のパスが tmpfs にコピーされます。以下に例を示します。

empty /tmp
dirs

ディレクトリーツリーが空の状態で tmpfs にコピーされます。以下に例を示します。

dirs /var/run
files

ファイルやディレクトリーツリーはそのまま tmpfs にコピーされます。以下に例を示します。

files /etc/resolv.conf

カスタムパスを /etc/rwtab.d/ に追加する場合も同じ形式が適用されます。

14.10.2. ブート時に読み取り専用パーミッションでマウントするように root ファイルシステムの設定

この手順を行うと、今後システムが起動するたびに、root ファイルシステムが読み取り専用としてマウントされます。

手順

  1. /etc/sysconfig/readonly-root ファイルで、READONLY オプションを yes に設定します。

    # Set to 'yes' to mount the file systems as read-only.
    READONLY=yes
  2. /etc/fstab ファイルの root エントリー (/) に ro オプションを追加します。

    /dev/mapper/luks-c376919e...  /  xfs  x-systemd.device-timeout=0,ro  1  1
  3. ro オプションを /etc/default/grub ファイルの GRUB_CMDLINE_LINUX ディレクティブに追加し、ディレクティブに rw が含まれていないことを確認します。

    GRUB_CMDLINE_LINUX="rhgb quiet... ro"
  4. GRUB2 設定ファイルを再作成します。

    # grub2-mkconfig -o /boot/grub2/grub.cfg
  5. tmpfs ファイルシステムに書き込みパーミッションでマウントするファイルとディレクトリーを追加する必要がある場合は、/etc/rwtab.d/ ディレクトリーにテキストファイルを作成し、そこに設定を置きます。

    たとえば、/etc/example/file ファイルを書き込みパーミッションでマウントするには、この行を /etc/rwtab.d/example ファイルに追加します。

    files /etc/example/file
    重要

    tmpfs のファイルおよびディレクトリーの変更内容は、再起動後は持続しません。

  6. システムを再起動して変更を適用します。

トラブルシューティング

  • 誤って読み取り専用パーミッションで root ファイルシステムをマウントした場合は、次のコマンドを使用して、読み書きパーミッションで再度マウントできます。

    # mount -o remount,rw /

このページには機械翻訳が使用されている場合があります (詳細はこちら)。