在 Linux 上挂载 MinIO——用 NetDrive 在 Ubuntu 上使用自托管 S3 存储
使用 NetDrive 的 Ubuntu 实验版本,将自托管的 MinIO 存储桶挂载为 Linux 挂载点——涵盖端点设置、路径样式访问和验证步骤。
一个构建团队在一排 Ubuntu 服务器上运行着自己的 MinIO 集群,而不是花钱购买托管对象存储——Docker 分层缓存、每晚的测试固件,以及几 TB 从不需要离开办公网络的构建产物。CI 运行器早已用普通的 shell 命令读写本地路径,仅仅为了访问三排机架之外的一个存储桶,就要围绕 MinIO 的 SDK 重写这一切,感觉像是在解决一个根本不需要解决的问题。NetDrive 的 Linux 版本转而将该存储桶挂载为一个普通路径,这样现有脚本无需改动即可继续工作。

在 Ubuntu 上挂载 MinIO
NetDrive 让 Google Drive、OneDrive、S3、SFTP、WebDAV 等在 Windows 和 macOS 上显示为本地驱动器 — 无需同步,无需完整下载。
- S3 兼容连接——适用于任何自托管的 MinIO 端点
- 可在 Ubuntu 16.04 及更高版本上运行
- 现有 shell 脚本通过普通挂载点读写
免费试用。提供终身与订阅方案。
为什么挂载点胜过针对 MinIO API 编写脚本
直接与 MinIO 通信意味着要引入 mc 客户端或 S3 SDK,处理访问密钥轮换,并为不同任务所用的各种语言编写重试逻辑。这些都不算难,但这是把基础设施工作硬塞进一个本质上只是”读这个文件、写那个文件”的任务里。挂载存储桶彻底去掉了这一层——tar、cp、rsync,以及任何已经知道如何操作本地路径的工具,都能以同样的方式操作挂载点。
自 3.15.450 版本(2021-11-08)起,NetDrive 就已将 MinIO 视为受良好支持的 S3 兼容连接,同一版本还在 Amazon S3 之外加入了通用的 S3 兼容支持。而在 Linux 上,这种连接类型依托的是 NetDrive 的实验性 Ubuntu 版本,而非经过更充分测试的 Windows 和 macOS 版本——这一点值得事先了解,因为 Linux 在 NetDrive 自己的对比页面上就标注着”实验性”。

开始之前需要准备什么
- MinIO 端点 URL——如果是本地网络上的一台机器,类似
http://minio.internal:9000这样的地址;如果集群位于反向代理之后,则使用 HTTPS URL。MinIO 的 API 默认监听 9000 端口;Web 控制台运行在另一个端口上,NetDrive 并不与之通信。 - Access Key 和 Secret Key——一个限定作用域到 NetDrive 所需存储桶的服务账户,可从 MinIO 控制台的 Identity → Service Accounts 创建,或通过
mc admin user svcacct add创建。长期运行的场景应避免使用根凭据。 - 存储桶名称——NetDrive 以存储桶为单位建立连接,因此需要多个存储桶的服务器,每个都要单独建立一个 NetDrive 连接。
- Ubuntu 16.04 或更高版本,并且机器防火墙上需放行通向 MinIO 端点所用端口的出站访问。
在 Ubuntu 上安装 NetDrive
NetDrive for Linux 并未收录在 Ubuntu 的默认软件源中,因此安装流程走的是 GitHub 而非 apt:
- 前往 github.com/NetDrive/installer,下载与你的 Ubuntu 版本匹配的发行版。
- 安装前先查看该发行版的发布说明——需要先加载一个驱动组件,否则连接无法挂载。
- 安装该软件包,然后启动一次 NetDrive 以加载驱动。根据机器的配置方式,此步骤可能会提示输入
sudo。
分步操作:连接一个 MinIO 存储桶
- 打开 NetDrive 的 Drive Manager,点击 + Add Drive。
- 从提供商列表中选择 Amazon S3——MinIO 使用的是 S3 API,因此这是 NetDrive 用于连接 MinIO 及其他 S3 兼容存储的入口。

- 输入之前创建的服务账户的 Access Key ID 和 Secret Access Key。
- 将 Region 设置为任意非空值,例如
us-east-1——MinIO 会忽略这个字段,但它不能留空。 - 输入 Endpoint——即 MinIO 的 API URL,例如
http://minio.internal:9000。 - 输入要挂载的 Bucket 名称。
- 启用 Path style(有时标注为 Force path style)。自托管的 MinIO 通常没有为虚拟主机风格的存储桶 URL 配置 DNS 记录,因此路径样式寻址——即存储桶以路径段的形式出现——是开箱即用的设置。
- 设置一个挂载点,例如
/mnt/minio-artifacts,然后点击 Connect。
在 CI 任务依赖挂载点之前先验证它
在让无人值守的任务指向挂载点之前,先确认挂载确实生效了:
# Confirm the mount is listed
mount | grep minio-artifacts
# Or just list it
ls /mnt/minio-artifacts

如果目录显示为空,或挂载始终没有出现,先检查机器防火墙是否放行了通向 MinIO 端点所用端口的出站流量,再去怀疑访问密钥是否有误——在被严格锁定的构建服务器上,端口被阻塞比凭据错误更常见。

在 Linux 版本上需要留意的事项
- 发布节奏独立。 为 Windows 或 macOS 发布的修复,不会自动在同一周内落地到 Linux 版本。
- 没有
apt集成。 更新来自 GitHub 发行版,而非包管理器,因此跟踪新版本需要手动操作。 - Windows 和 macOS 得到了更深入的测试。 CI 运行器或从 MinIO 读取数据的夜间任务,是 Linux 版本一个合理的应用场景;在将其置于无人值守的生产流水线之前,请充分测试。
小结
在 Ubuntu 上挂载自托管的 MinIO 存储桶,能让构建服务器获得与 NetDrive 在 Windows 和 macOS 上相同的驱动器式访问方式,而无需围绕 S3 SDK 重写代码。关于同一提供商在测试更充分的平台上的使用方法,参见 在 Windows 上挂载 MinIO 或 在 macOS 上挂载 MinIO;关于更广泛的 Linux 使用场景,参见 Ubuntu Linux 上的 NetDrive;关于围绕 S3 兼容存储构建的 CI 场景,参见 DevOps:使用 NetDrive 管理 S3 测试固件。
— Kai, NetDrive