/ 文档备忘 / 1浏览

Rclone mount OneDrive

要将 OneDrive 挂载到 Debian12 上,可以使用 rclone 来实现。以下是详细步骤:

1. 安装 rclone

如果还没有安装 rclone,可以参考以下命令进行安装:

curl https://rclone.org/install.sh | sudo bash

2. 配置 rclone

如果还没有配置 OneDrive,可以使用以下命令进行配置:

rclone config

根据提示配置 OneDrive 的相关信息。

  • 默认挂载根目录,可以按照需要挂载某个目录,可在配置文件中加上 root_folder_id = xxxxxx 参数。可通过命令获取目录 id,以下命令列出 Documents 目录下所有文件和文件夹的 ID
    # onedrive 是之前 rclone 配置的名字(根目录)
    # Documents 是根目录下的一个文件夹名字
    rclone lsjson onedrive:Documents
    

    输出会类似如下:

    [
    {
      "Path": "example-folder",
      "Name": "example-folder",
      "Size": -1,
      "MimeType": "inode/directory",
      "ID": "example-folder-id",
      "IsDir": true,
      "ModTime": "2024-01-01T00:00:00Z",
      "Hashes": {}
    },
    {
      "Path": "example-file.txt",
      "Name": "example-file.txt",
      "Size": 12345,
      "MimeType": "text/plain",
      "ID": "example-file-id",
      "IsDir": false,
      "ModTime": "2024-01-01T00:00:00Z",
      "Hashes": {}
    }
    ]
    

3. 创建挂载目录

在你的 Debian12 系统上创建一个目录来挂载 OneDrive 的内容:

sudo mkdir /mnt/onedrive

4. 挂载 OneDrive

使用 rclone mount 命令来挂载 OneDrive 到之前创建的目录。请注意,这种方法是基于 FUSE(Filesystem in Userspace),需要安装 fuse
如果使用 openvz 主机一般需要联系主机厂商创建工单开通

安装 FUSE

首先安装 FUSE:

sudo yum install fuse

挂载 OneDrive

使用 rclone mount 命令挂载 OneDrive:

rclone mount myonedrive: /mnt/onedrive --vfs-cache-mode full

这里 myonedrive 是你在 rclone config 中配置的 OneDrive 远程名称。

5. 后台运行挂载(可选)

如果希望挂载在后台运行,可以使用 screentmux 等工具,或者在命令中添加 & 来实现后台运行:

# --
nohup rclone mount omyonedrive: /mnt/onedrive --allow-other --attr-timeout 5m --vfs-cache-mode full --vfs-cache-max-size 1G --vfs-read-chunk-size-limit 100M --buffer-size 100M --umask 000 &

6. 自动挂载(可选)

为了使系统重启后自动挂载,可以将 rclone mount 命令添加到 rc.local 或创建一个 systemd 服务。

使用 rc.local

编辑 /etc/rc.local 文件并添加以下内容:

#!/bin/bash
rclone rclone mount omyonedrive: /mnt/onedrive --allow-other --attr-timeout 5m --vfs-cache-mode full --vfs-cache-max-size 1G --vfs-read-chunk-size-limit 100M --buffer-size 100M --umask 000 &

确保文件有执行权限:

sudo chmod +x /etc/rc.local

使用 systemd 服务

创建一个 systemd 服务文件 /etc/systemd/system/rclone.service,内容如下:

[Unit]
Description=RClone Mount Service
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/rclone mount omyonedrive: /mnt/onedrive --allow-other --attr-timeout 5m --vfs-cache-mode full --vfs-cache-max-size 1G --vfs-read-chunk-size-limit 100M --buffer-size 100M
ExecStop=/usr/bin/umount /mnt/onedrive
Restart=on-failure

[Install]
WantedBy=multi-user.target

然后启用并启动该服务:

sudo systemctl enable rclone
sudo systemctl start rclone

通过上述步骤,您可以将 OneDrive 挂载到 Debian12 上,并且可以通过 /mnt/onedrive 目录访问 OneDrive 的内容。