Search code examples
windowsubuntubackupduplicityduplicity-backup

Duplicity Restore Throwing "IsADirectoryError: Is a directory" Error


My Linux machine recently failed and I am trying to restore my files onto a Windows 11 machine. The files were created using Duplicity (the external HD containing the files has hundreds of .difftar.gz and .sigtar.gz files as well as a '.manifest'). Having installed CGWin and the duplicity package, I traverse to my external HD in cgwin...

$ pwd    
/cygdrive/e

... and attempt to restore the latest snapshot of my lost directories/files to a temp folder on my Windows 11 machine by running:

 duplicity restore file:/// /cygdrive/c/Users/john/OneDrive/Documents/temp

At this juncture, the restoration fails due to a "IsADirectoryError" error.

Warning, found the following remote orphaned signature file:
duplicity-new-signatures.20211221T070230Z.to.20211224T103806Z.sigtar.gz
Warning, found signatures but no corresponding backup files
Warning, found incomplete backup sets, probably left from aborted session
Synchronizing remote metadata to local cache...
Copying duplicity-full-signatures.20211118T103831Z.sigtar to local cache.
Attempt of get Nr. 1 failed. IsADirectoryError: Is a directory
Attempt of get Nr. 2 failed. IsADirectoryError: Is a directory
Attempt of get Nr. 3 failed. IsADirectoryError: Is a directory
Attempt of get Nr. 4 failed. IsADirectoryError: Is a directory
Giving up after 5 attempts. IsADirectoryError: Is a directory

Is there an error in my duplicity command? Do I have corrupted backups? Any assistance in trouble-shooting this would be greatly appreciated!


Solution

  • let's assume that duplicity works (it's not officially supported on windows in any way). never tried it.

    say your backup data exists in the root of your external harddrive mounted as E:. you want to restore the complete last backup into a folder C:\Users\john\OneDrive\Documents\temp\ .

    two points

    1. point it to your backup location properly. absolutely that would be /cygdrive/e/ or as url file:///cygdrive/e/
    2. point to your target folder as folder ending with a slash / to signal that the backup is to be restored in there.

    taking these points into account a command like

    duplicity file:///cygdrive/e/ /cygdrive/c/Users/john/OneDrive/Documents/temp/
    

    should work as expected.

    NOTE: you don't need the action command restore as the order of arguments (url before local file system location) tells duplicity already that you want to restore.