背景介绍
百度网盘开会员后使用体验还是很不错的,会员等级制度也让一直开会员的用户能够享受到更多的特权。就拿空间来说从lv2到lv9一直从5TB加到18TB,这么大的存储空间显然除了盲目转存囤积资料外很难填的满的,毕竟手动上传还是很麻烦,我们也很难有那么多资料需要进行备份。OpenList(Alist的接替者)的出现能够拓展百度网盘的使用方法,这里就利用它搭配rclone将百度网盘挂载到本地。
传统挂载网盘到本地的教程已经很多了,本文默认已经了解过相关文字介绍,掌握了挂载的方法,不再叙述这些基础内容,
我在这里遇到的问题是手动敲命令行启动服务后,打开的两个命令行窗口很烦人,同时下次启动还是需要输入命令进行启动。在这篇记录中主要想探讨的是,很如何自动稳定地启动相关服务。
用法
在开始前记录我对挂载网盘后一些用法,仅供参考。
网盘挂载到本地后,虽然是方便访问了但是也很难和真正的本地磁盘相比。对于他的定位我认为还是以备份资料为主。挂载后网盘能够像是普通磁盘那样访问,这就像是加强版的同步空间一样,能够兼容更多软件,方便的自动备份很多资料。
作为程序员,日常灵光一闪可能就会创建一个项目,天长日久电脑中堆积很多也不方便,相信大多数人和我的选择一样,暂时不用的项目上传到github,然后删除本地文件。可惜Github的访问让人沮丧,而其他平台gitlab,码云,gitcode等无法做到GitHub那样无限仓库。这时候我们将网盘挂载到本地后就能够将我们的项目方便的上传到网盘进行备份了。方法就是Git的裸仓库,你可以在挂载网盘的目录下使用git命令创建一个裸仓库,这样一来它能够直接在本地像是正常磁盘那样访问,方便的通过本地文件路径进行推送,同时真实的文件将会被保存在网盘,安全性大大增加。
同理我们还能够在本地启动Git LFS服务,将数据存储文件夹也指向网盘路径,这样我们就得到了一个超大空间的LFS管理库!
openlist S3服务
rclone本身并不提供百度网盘的挂载服务,首先要借助openlist集成百度网盘存储后,利用openlist的S3功能进行转发。
这一步需要注意的点是,需要先在openlist程序文件夹下的配置文件中data/config.json里开始S3服务,之后去管理后台挂载网盘存储以及设置中对象存储一栏下设置S3服务的访问密钥和ID,可选地你可以单独为某个目录设置存储桶名字,这样rclone中就可以只挂载对应目录。
{
...
"s3": {
"enable": true,
"port": 5246,
"ssl": false
}
...
}
openlist 服务
配置后openlist后我们需要将其注册为windows系统服务,以便我们在启动设备后自动静默启动服务。
这里利用到的工具为shawl,详细了解见官方主页,这里给出我的注册命令
sc.exe create openlist-server binPath= "shawl【shawl绝对路径】 run --name openlist-server --cwd D:\software\openlist-windows-amd64 -- D:\software\openlist-windows-amd64\openlist.exe server" DisplayName= "OpenList Server" start= auto
后续可以按照普通服务的管理方式,管理我们注册的openlist-server服务,相关启动日志将在shawl程序文件夹下
rclone 挂载
rclone在windows下使用需要安装winfsp服务,二者安装都没有难度,不再赘述
安装后我们即可配置对接openlist的S3服务,这里选择配置文件的方式
rclone config file可以输出当前配置文件的路径,如果提示没有可以选择rclone config交互提示的方式创建。默认情况下windows下的存放路径为%APPDATA%\rclone\rclone.conf你也可以直接手动创建这个文件
配置如下:
[alist]
type = s3
provider = Other
access_key_id = 你的openlist S3访问ID
secret_access_key = 你的openlist S3访问密钥
endpoint = http://127.0.0.1:5246 端口需要替换成自己openlist配置文件中s3访问的入口
acl = private
force_path_style = true
no_check_certificate = true
rclone 服务
由于使用系统管理员账户启动rclone挂载后本地普通用户是看不到磁盘的,这里暂时只能通过vbs脚本加上计划任务的方式迂回实现。
编辑一个vbs脚本
' Rclone 挂载 Alist 到 X 盘的后台运行脚本(无窗口、带完整日志)
On Error Resume Next
' ========== 你的专属配置(已填好,无需修改) ==========
Dim rclonePath, rcloneArgs, logPath
' 请修改这行的 rclone.exe 路径为你实际的安装路径!!!
rclonePath = "D:\software\GLOBAL_TOOLS\rclone-v1.73.2-windows-amd64\rclone.exe"
rcloneArgs = "mount alist:/root/ X: --config ""C:\Users\20613\AppData\Roaming\rclone\rclone.conf"" --cache-dir ""D:\software\GLOBAL_TOOLS\rclone-v1.73.2-windows-amd64\Cache"" --vfs-cache-mode full --network-mode --volname openlist --multi-thread-streams 8 --buffer-size 32M --vfs-read-chunk-size 16M --vfs-read-chunk-size-limit 256M --dir-cache-time 2h --vfs-cache-max-age 24h --vfs-cache-max-size 50G --links --no-console"
' 脚本运行日志路径(可自定义,建议和 rclone 同目录)
logPath = "D:\software\GLOBAL_TOOLS\rclone-v1.73.2-windows-amd64\rclone_alist_run.log"
' ======================================================
' 创建日志对象
Dim fso, logFile
Set fso = CreateObject("Scripting.FileSystemObject")
' 记录启动日志
Set logFile = fso.OpenTextFile(logPath, 8, True)
logFile.WriteLine "[" & Now() & "] 脚本启动,开始执行 Rclone 挂载命令"
logFile.Close
' 执行 Rclone 命令(核心:0=隐藏窗口,False=不等待退出)
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
Dim runCmd
runCmd = """" & rclonePath & """ " & rcloneArgs
WshShell.Run runCmd, 0, False
' 记录执行结果日志
Set logFile = fso.OpenTextFile(logPath, 8, True)
If Err.Number = 0 Then
logFile.WriteLine "[" & Now() & "] Rclone 命令执行成功,挂载命令:" & runCmd
Else
logFile.WriteLine "[" & Now() & "] Rclone 命令执行失败,错误码:" & Err.Number & ",错误信息:" & Err.Description
End If
logFile.Close
' 释放对象
Set WshShell = Nothing
Set fso = Nothing
Set logFile = Nothing
接下来配置计划任务,用于自动调用vbs脚本
- 按下 Win+R 输入 taskschd.msc 打开任务计划程序,点击「创建任务」;
- 【常规】选项卡:名称:Rclone 后台服务(VBS)
- 【触发器】选项卡:新建 → 开始任务选择「启动时」,启用触发器;
- 【操作】选项卡(重点修改):操作:启动程序;程序或脚本:输入 wscript.exe(Windows 原生 VBS 解释器,无需额外安装);添加参数:填入你的 VBS 脚本完整路径(示例:“D:\Tools\rclone\Rclone_Background.vbs”,路径带空格必须加引号);起始于:填入 VBS 脚本所在文件夹(示例:D:\Tools\rclone\);
- 【条件】选项卡:取消「只在用户登录时」;
整体配置完成,重启查看效果,正确结果应当是X盘自动挂载并显示。
番外:磁盘显示美化
经过上述配置完后,X盘会被显示在网络位置下面,并且名字类似openlist (\\server) (X:)这种格式,是 Windows 对「网络驱动器」的强制默认显示规则:卷标 (UNC服务器路径) (盘符:)。其中 (\server) 就是挂载时底层的 UNC 路径前缀,哪怕我们设置了 –volname,只要开启 –network-mode 网络模式,Windows 就会自动把这个路径后缀加上。
这很反直觉,也不好看,可以通过修改注册表的方式去除烦人的(\\server)后缀。
ps:你也可以去掉–network-mode 网络模式将磁盘以本地磁盘的方式挂载,但是据说这样就享受不到windows对远程位置的优化了,我是实用主义者,认为有用比好看重要,遂罢。
这个方案一劳永逸,既保留网络模式的高稳定性(看视频、读写文件不易卡死资源管理器),又能让盘符显示完全符合你的预期,只显示 openlist (X:)。 操作步骤:
- 按 Win + R,输入 regedit 回车,打开注册表编辑器。
- 定位到以下路径: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2
- 在该路径下,找到和你的 X 盘对应的项,名称为 ##server#alist 类似(对应你默认的 UNC 路径 \server\alist)。
- 选中这个项,在右侧空白处右键 → 新建 → 字符串值,命名为 _LabelFromReg。
- 双击新建的 _LabelFromReg,数值数据填写你想要的名称 openlist,点击确定。
- 关闭注册表,按 F5 刷新「此电脑」,立刻生效,X 盘会直接显示为 openlist (X:),无任何多余后缀。

