%20%E4%B8%AD%E7%9A%84%20Rsync%20-%20%E9%98%B2%E6%AD%A2%20Windows%20%E6%AA%94%E6%A1%88%E7%9A%84%E6%AC%8A%E9%99%90%E8%A2%AB%E6%8B%92%E7%B5%95.png)
我想從 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。
請注意,可能有充分的理由阻止這些訪問,例如那些正在使用的文件 - 因此我還建議創建一個不同的用戶並從那裡運行它。