Windows 子系统 (WSL) 中的 Rsync - 防止 Windows 文件的权限被拒绝

Windows 子系统 (WSL) 中的 Rsync - 防止 Windows 文件的权限被拒绝

我想在 WSL 中运行 rsync 并备份我的 Windows 副本。(因为 Windows 工具不起作用。如果您使用它,请检查您的备份!无论如何,所以......)我正在使用 安装我的备份驱动器,sudo mount -t drvfs P: /mnt/p然后我使用 rsync 备份/mnt/c/Users/username/。虽然某些目录是读保护的,但我得到了permission denied。有没有办法让 rsync(或 WSL)有权读取 Windows 系统上的这些文件和目录?

#!/bin/bash

NAME='Automated-Backup'
LOGSTDERR=/tmp/${NAME}.err
LOGSTDOUT=/tmp/${NAME}.log

sudo mount -t drvfs V: /mnt/v
sudo mount -t drvfs B: /mnt/b

source='/mnt/v/'
target='/mnt/b/Backup'

sudo rsync --delete \
      --exclude='*Trash*' \
      --exclude='$RECYCLE.BIN' \
      --exclude='System Volume Information' \
      -aAXzv \
      --progress \
      $source \
      $target 2>${LOGSTDERR} | tee $LOGSTDLOG

cat $LOGSTDERR

答案1

这是我的建议,但目前尚未测试。

WSL 的运行权限与任何其他应用相同,因此要获得完整的操作系统文件系统权限,您需要以管理员身份运行它。找到您使用的 WSL 的 exe 或应用程序(或以管理员身份打开 cmd 提示符)并尝试从那里运行 bash。

请注意,阻止这些访问可能有充分的理由,例如这些文件正在使用中 - 因此我还建议创建不同的用户并从那里运行它。

相关内容