为什么我的 Amazon EFS 文件系统为只读?

上次更新时间:2020 年 6 月 29 日

我的 Amazon Elastic File System (Amazon EFS) 文件系统可用,并且正确挂载在我的 Amazon Elastic Compute Cloud (Amazon EC2) 实例上,但我无法写入它。如何解决此问题?

简短描述

下面是阻止您写入文件系统的两种常见问题:

  • /etc/fstab 文件中的挂载选项设置为只读访问权限。
  • 关联的 AWS Identity and Access Management (IAM) 策略指示只读访问权限,或者根访问权限被禁用。

解决方法

注意:此解决方法使用 Amazon EFS 挂载帮助程序。Amazon EFS 装载帮助程序已预安装在 Amazon Linux 上。如果您使用的是其他分发,请参阅在其他 Linux 分发上安装 amazon-efs-utils 软件包

验证 /etc/fstab 文件中的挂载选项正确无误

1.    运行以下命令以检查文件系统的当前挂载选项:

$ mount -t nfs4

在以下示例输出中,变量 ro 表示文件系统当前允许只读访问。

file-system-id.efs.region.amazonaws.com:/ on /efs type nfs4 (ro,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.0.2.0,local_lock=none,addr=192.0.0.0)

2.    使用 vi 之类编辑工具将 /etc/fstab 文件中的挂载参数更改为 rw (读/写访问):

注意:file-system-id 替换为您的文件系统的 ID。

file-system-id:/ efs-mount-point efs rw,_netdev 0 0

3.    运行以下命令以卸载并重新挂载文件系统。

$ sudo mount -o remount,rw /efs -t efs && mount -t nfs4
file-system-id.efs.region.amazonaws.com:/ on /efs type nfs4 (rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=190.0.2.0,local_lock=none,addr=190.0.2.0)

4.    在文件系统中创建或编辑文件以确认您可以写入该文件系统。

验证权限设置正确

1.    打开 Amazon EFS 控制台

注意:确保您与 Amazon EFS 文件系统处于同一个区域中。

2.    选择您要检查的文件系统,然后选择操作管理客户端访问

3.    在策略设置选项卡上,如果已选择了以下选项,将其取消选中:

默认情况下禁用根访问
默认情况下强制实施只读访问

4.    选择设置策略

5.    选择保存策略

6.    运行 umount 命令以卸载文件系统。

$ sudo umount /efs

7.    运行 mount 命令再次挂载文件系统以应用更改。

注意:file-system-id 替换为您的文件系统的 ID。

$ sudo mount -t efs -o iam fs-file-system-id /efs

8.    使用 vi 之类编辑工具将以下行添加到 /etc/fstab,以使新挂载在重新启动后持久有效:

使用 IAM 授权对拥有实例配置文件的实例进行挂载:

file-system-id:/ efs-mount-point efs _netdev,iam 0 0

使用 IAM 授权对使用凭证文件的 Linux 实例进行挂载:

file-system-id:/ efs-mount-point efs _netdev,iam,awsprofile=namedprofile 0 0

使用 EFS 接入点挂载:

file-system-id efs-mount-point efs _netdev,accesspoint=access-point-id 0 0

有关更多信息,请参阅使用 /etc/fstab 自动挂载

9.    在文件系统中创建或编辑文件以确认您可以写入该文件系统。


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?