-d list -reset-passwords says
Repository has not been initialized
Both machines are Windows. I’d like to try to recover password if possible. Can you provide instructions, please?
-d list -reset-passwords says
Repository has not been initialized
Both machines are Windows. I’d like to try to recover password if possible. Can you provide instructions, please?
Could it be that the config file got corrupted?
If you login to OneDrive’s web interface and right-click on the config
file in the storage folder you might be able to see the OneDrive’s maintained versions of the file and restore it to a previous version.
So, I have init the same repo from the windows machine and it all worked just fine.
then I went to OneDrive and damaged the config file. Just modified a bunch of numbers there (it’s a text file).
And then tried to access the storage again:
mymbp:test02 me$ duplicacy backup
Storage set to one://test-bucket
Failed to download the configuration file from the storage: Failed to retrieve the config file: cipher: message authentication failed
So, this message is not only result of a wrong password, but also config file corruption. Which makes sense totally – in both cases decryption will fail and there is no way to distinguish bad password from bad data.
How could the file get corrupted? Easy. OneDrive is very flaky. When I said it did not work from work earlier ? Well, I eventually SSHed home and it did not work from there either. It started working after several attempts with intermittent dropped connections. In the evening it started working reliably every time.
Perhaps indeed in one of the backup runs the config file upload got interrupted. What is the size of your config file? (mine is always around 830 bytes)
@gchen – are there any safeguards in place when uploading the config file to ensure atomicity? ie. rename the existing one and if upload of a new config file fails/gets interrupted/ to restore the previous one?
Also, would it be possible to sign the config file in addition to encrypting it to validate its integrity before attempting to decrypt it? Config file is the only file that get re-written and is the Achilles heel here.
You probably know this but just in case: you need to execute duplicacy in the root folder of the repository.
Could you try initializing some other storage than onedrive, just to see if this has anything to do with onedrive.
Open brackets
This is an interesting idea…
Now I’m worried about my config files …
Close brackets, back to topic.
My config has single version and has not been modified
Killed .duplicacy folder under E:\TheBatMailExport and initialized new repository for Google Drive storage. (Created folder z-duplicacy-backups first on Drive). Success. Backup is up and running.
HOWEVER, GUI never asked me about password for the new storage! How come? Not supported on Google Drive?
10:50:26.000 Command: duplicacy -background -log -d info -repository "E:\TheBatMailExport" -storage-name gui1 "gcd://z-duplicacy-backups"
10:50:28.617 Reading the environment variable DUPLICACY_GUI1_GCD_TOKEN
10:50:28.657 Reading gcd_token from keychain/keyring
10:51:51.000 Command: duplicacy -background -log -d init -storage-name gui1 "AAPLUS-Administrator-TheBatMailExport" "gcd://z-duplicacy-backups"
10:51:51.243 Reading the environment variable DUPLICACY_GUI1_GCD_TOKEN
10:51:51.248 Reading gcd_token from keychain/keyring
10:51:55.379 Compression level: 100
10:51:55.380 Average chunk size: 4194304
10:51:55.380 Maximum chunk size: 16777216
10:51:55.380 Minimum chunk size: 1048576
10:51:55.380 Chunk seed: 6475706c6963616379
10:51:55.381 E:\TheBatMailExport will be backed up to gcd://z-duplicacy-backups with id AAPLUS-Administrator-TheBatMailExport
10:52:07.000 Command: duplicacy -background -log -d info -repository "E:\TheBatMailExport" -storage-name gui1 "gcd://z-duplicacy-backups"
10:52:07.844 Reading the environment variable DUPLICACY_GUI1_GCD_TOKEN
10:52:07.850 Reading gcd_token from keychain/keyring
10:52:09.699 Chunk read levels: [1], write level: 1
10:52:09.699 Compression level: 100
10:52:09.699 Average chunk size: 4194304
10:52:09.699 Maximum chunk size: 16777216
10:52:09.699 Minimum chunk size: 1048576
10:52:09.699 Chunk seed: 6475706c6963616379
That is because either your Google Drive storage was initialized without encryption or you selected to initialize it without encryption.
You need to insert the line to print out the password here:
For example:
password := keyringGet(passwordID)
if password != "" {
LOG_DEBUG("PASSWORD_KEYCHAIN", "Reading %s from keychain/keyring", passwordType)
LOG_INFO("PASSWORD", "Password: %s", password) // insert this line
return password
}
And then compile it to get the executable.
I’m using GUI and I didn’t see any encryption options during Google Drive storage init.
I can clone the repository, but I have zero experience with Go. Is there a batch file/script for building Windows version or just installing plain vanilla Go dev environment and typing “go build” should do the job? Thanks in advance.
The explanations are here: Build Duplicacy from source.
As a hint/bonus take a look in Duplicacy User Guide. There may be other helpful tips.
On a Windows, yes, go build duplicacy/duplicacy_main.go
should do it.
It is also fairly easy to cross-build on a macOS/linux machine:
env GOOS=windows GOARCH=amd64 go build duplicacy/duplicacy_main.go
It took me some time to realize that the build works with go\src\github.com\gilbertchen\duplicacy\src, not \src folder I downloaded as a part of zip
Thanks, problem solved, password recovered. For some reason it was completely different from the one I put in password manager. Copy-Paste issue perhaps.
For anyone: Feel free to use the button on the posts that you found useful.
For the OP of any support topic: you can mark the post that solved your issue by ticking the box under the post. That of course may include your own post