gcsfuse 挂载以状态 1 退出

gcsfuse mount exits with status 1

尝试使用 gcsfuse,但是当我 运行

gcsfuse <bucket> /target/dir

我一直收到这个错误

daemonize.Run: readFromProcess: sub-process: mountWithArgs: mountWithConn: Mount: mount: fusermount: exit status 1

我正在从一个 GCE 实例执行此操作,该实例具有对 Google 云服务

的完整 API 访问权限

该文件夹存在,我在 fuse 组中。

我尝试了 运行 所有调试开关,但它们没有任何帮助

> gcsfuse --uid "33" --gid "33" --debug_fuse --debug_gcs --debug_http --debug_invariants bucket-name /target/dir
Using mount point: /target/dir
Opening GCS connection...
Opening bucket...
Mounting file system...
daemonize.Run: readFromProcess: sub-process: mountWithArgs: mountWithConn: Mount: mount: fusermount: exit status 1

版本信息:gcsfuse 版本 0.15.0(Go 版本 go1.5.2)

我的 /target/dir 属于 www-data:fuse,但该组在挂载前没有对该目录的写权限。

我遇到了同样的问题,因为我试图在 docker 容器上装载文件夹。但是,事实证明容器需要 运行 特权模式才能使 gcsfuse 工作。

docker --privileged docker-image-name

以上命令运行良好。或者,如果有人使用 kubernetes,则需要按如下方式指定安全上下文:

  containers:
  - name: application-name
    securityContext:
      privileged: true

嘿,请清除目录文件中的挂载文件夹,否则该文件将不可见,否则将无法使用