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