すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Linux:NFS ファイルシステムをマウントするときに発生するエラーをどのように処理すればよいですか?

最終更新日:May 16, 2025

このトピックでは、Alibaba Cloud Linux 2 または Alibaba Cloud Linux 3 を実行している Elastic Compute Service (ECS) インスタンスにネットワーク ファイル システム (NFS) をマウントするときに発生する一般的なエラーと、それらのエラーの対処方法について説明します。

mount.nfs: command not found エラーメッセージが表示される

問題の説明

  • 次の mount.nfs コマンドの <server_ip> パラメーターを ECS インスタンスのパブリック IP アドレスに置き換え、コマンドを実行してインスタンスに NFS ファイルシステムをマウントします。

    sudo mount.nfs <server_ip>:/directory /mnt

    次のエラーメッセージが表示されます。

    -bash: mount.nfs: command not found
  • 次の mount -t nfs コマンドの <server_ip> パラメーターを ECS インスタンスのパブリック IP アドレスに置き換え、コマンドを実行してインスタンスに NFS ファイルシステムをマウントします。

    sudo mount -t nfs <server_ip>:/directory /mnt

    次のエラーメッセージが表示されます。

    mount: /mnt: bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program.

原因

nfs-utils パッケージが存在しないか、必要な rpcbind コンポーネントがインストールされていません。

解決策

  1. 次のコマンドを実行して、nfs-utils パッケージと rpcbind コンポーネントをインストールします。

    sudo yum install -y nfs-utils rpcbind
  2. 次のコマンドを実行して、nfs-utils パッケージと rpcbind コンポーネントがインストールされているかどうかを確認します。

    sudo yum list installed | grep nfs-utils

    次のコマンド出力は、nfs-utils パッケージと rpcbind コンポーネントがインストールされていることを示しています。

    image

mount: /nfs/testdir: mount point does not exist エラーメッセージが表示される

問題の説明

次のコマンドの <server_ip> パラメーターを ECS インスタンスのパブリック IP アドレスに置き換え、コマンドを実行してインスタンスのマウントポイントに NFS ファイルシステムをマウントします。

sudo mount -t nfs -o vers=3 <server_ip>:/export/fs/dir /nfs/testdir

次のエラーメッセージが表示されます。

mount: /nfs/testdir: mount point does not exist.

原因

指定されたマウントポイントが ECS インスタンスに存在しません。

解決策

ECS インスタンスにマウントポイントを作成します。この例では、/nfs/testdir マウントポイントが作成されます。

sudo mkdir -p /nfs/testdir

権限が不十分であることを示す「Operation not permitted」エラーメッセージが表示される

説明

この問題は NFSv4 以降のファイルシステムでのみ発生する可能性があり、NFSv3 ファイルシステムでは発生しません。

問題の説明

NFS ファイルシステムを ECS インスタンスの root が所有するディレクトリにマウントした後、root としてインスタンスにログインしても、ディレクトリにファイルを作成できず、「Operation not permitted」エラーメッセージが表示されます。この例では、/nfs/testdir ディレクトリが使用されています。

  1. 次のコマンドを実行して、ECS インスタンスの /nfs/testdir ディレクトリにあるファイルとサブディレクトリのリストを表示します。

    cd /nfs/testdir & ls -lh

    次のコマンド出力が返されます。

    total 20K
    drwxr-xr-x 2 root root 4.0K Sep 5 13:08 subdir
    drwx------ 2 root root 16K Sep 5 13:07 lost+found
  2. 次のコマンドを実行して、/nfs/testdir ディレクトリのサブディレクトリに移動し、testfile という名前のファイルを作成します。この例では、subdir という名前のサブディレクトリが使用されています。

    cd subdir & touch testfile

    次のエラーメッセージが表示されます。

    touch: cannot touch 'testfile': Permission denied

原因

NFS サーバーの NFS ファイルシステムで no_root_squash オプションが無効になっています。subdir サブディレクトリの所有者とグループは root であり、これは NFS サーバーの root ユーザーを指します。 no_root_squash オプションが無効になっている場合、NFS クライアントの root ユーザーは NFS サーバーの匿名ユーザーにマップされます。その結果、root ユーザーは、NFS サーバーの NFS ファイルシステムで一般ユーザーがアクセスできるファイルのみを管理でき、スーパーユーザー権限が必要な操作を実行できません。 no_root_squash オプションが有効になっている場合、NFS クライアントの root ユーザーには、NFS サーバーの NFS ファイルシステムに対するすべての権限が付与されます。

解決策

  1. 次のコマンドを実行して、/etc/exports ファイルを開きます。

    sudo vim /etc/exports
  2. I キーを押して挿入モードに入り、次のコンテンツをファイルに追加します。

    /export/fs/vdc *(rw,no_subtree_check,no_root_squash)
  3. Esc キーを押し、:wq と入力し、Enter キーを押してファイルを保存して閉じます。

  4. 次のコマンドを実行して、NFS サーバーの NFS ファイルシステムのエクスポートリストを更新します。

    sudo exportfs -r