Keepass Backup Plugin kann keine temporären Dateien mehr auf die RAMDisk schreiben

CoMo

Commodore
Registriert
Dez. 2015
Beiträge
4.648
Hallo,

seit kurzem weigert sich das KPSimpleBackup Plugin, Backups zu schreiben. Aus irgendeinem Grund kann es nicht mehr auf meine RAMDisk schreiben.

Code:
[20.05.2026 16:53:59] [KPSimpleBackup] [Info] START BackupManager: LongTermBackup for database: main
[20.05.2026 16:53:59] [KPSimpleBackup] [Info] Backup to next path: S:/keepass/
[20.05.2026 16:53:59] [KPSimpleBackup] [Info] Save database to: file:///Z:\TEMP\umkuovw3.3wr.kdbx
[20.05.2026 16:54:00] [KPSimpleBackup] [AdditionalInfo] BackupManager (LongTermBackup) finished with warnings!
[20.05.2026 16:54:00] [KPSimpleBackup] [AdditionalInfo] Exception: KeePassLib.Utility.ExtendedException: file:///Z:\TEMP\umkuovw3.3wr.kdbx

Die Datei "Z:\TEMP\umkuovw3.3wr.kdbx" konnte nicht gefunden werden. ---> System.Net.WebException: Die Datei "Z:\TEMP\umkuovw3.3wr.kdbx" konnte nicht gefunden werden. ---> System.Net.WebException: Die Datei "Z:\TEMP\umkuovw3.3wr.kdbx" konnte nicht gefunden werden. ---> System.IO.FileNotFoundException: Die Datei "Z:\TEMP\umkuovw3.3wr.kdbx" konnte nicht gefunden werden.
   bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   bei System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   bei System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
   bei System.Net.FileWebStream..ctor(FileWebRequest request, String path, FileMode mode, FileAccess access, FileShare sharing, Int32 length, Boolean async)
   bei System.Net.FileWebResponse..ctor(FileWebRequest request, Uri uri, FileAccess access, Boolean asyncHint)
   --- Ende der internen Ausnahmestapelüberwachung ---
   bei System.Net.FileWebResponse..ctor(FileWebRequest request, Uri uri, FileAccess access, Boolean asyncHint)
   bei System.Net.FileWebRequest.GetResponseCallback(Object state)
   --- Ende der internen Ausnahmestapelüberwachung ---
   bei System.Net.WebClient.OpenRead(Uri address)
   bei KeePassLib.Serialization.IOConnection.OpenRead(IOConnectionInfo ioc)
   bei KeePassLib.Serialization.IOConnection.FileExists(IOConnectionInfo ioc, Boolean bThrowErrors)
   bei KeePassLib.Serialization.FileTransactionEx.CommitWriteTransaction()
   --- Ende der internen Ausnahmestapelüberwachung ---
   bei KeePassLib.Serialization.FileTransactionEx.CommitWriteTransaction()
   bei KeePassLib.Serialization.FileTransactionEx.CommitWrite()
   bei KeePassLib.PwDatabase.Save(IStatusLogger slLogger)
   bei KeePassLib.PwDatabase.SaveAs(IOConnectionInfo ioConnection, Boolean bIsPrimaryNow, IStatusLogger slLogger)
   bei KPSimpleBackup.BackupManager.SavePwDatabaseToPath(IOConnectionInfo fileInfo)
   bei KPSimpleBackup.BackupManager.GenerateTemporaryDatabaseFileCopy()
   bei KPSimpleBackup.BackupManager.CopyPwDatabaseFileToPath(String toPath, Boolean overwrite)
   bei KPSimpleBackup.LongTermBackupManager.Backup()
   bei KPSimpleBackup.BackupManager.Run()

Hat sich da mit einem Windows Update irgendwas geändert?

Die RAMDisk lege ich seit Jahren so beim Start an:

Code:
@ECHO OFF
SET RAMDISK_DRIVE=Z:
SET RAMDISK_SIZE=96G
SET RAMDISK_FORMAT=ntfs
SET RAMDISK_LABEL=RAMDisk
IF NOT EXIST "%RAMDISK_DRIVE%" (
  "%PROGRAMFILES%\OSFMount\OSFMount.com" -a -t vm -s %RAMDISK_SIZE% -o format:%RAMDISK_FORMAT%:"%RAMDISK_LABEL%", -m %RAMDISK_DRIVE%
  MKDIR "%RAMDISK_DRIVE%\TEMP"
)
Ergänzung ()

Scheint, als konnte ich das Problem lösen, indem ich file transactions deaktiviert habe.

Tools -> Options -> Advanced -> File Input/Output Connections
[ ] Use File Transactions for writing databases
[ ] Use File transactions for writing configuration settings

Ideen, warum das plötzlich nötig ist?
 
Zuletzt bearbeitet:
Ich kenn das Plugin jetzt nicht... aber in der ersten Code-Ausgabe Zeile 7 steht das hier "Die Datei "Z:\TEMP\umkuovw3.3wr.kdbx" konnte nicht gefunden werden. ---> System.Net.WebException: Die..."

Ansonsten nutz ich selber für Backups kein eigenes Plugin. Gehe mal davon aus, du nutzt KeePass 2. Dann kannste Trigger erstellen für automatisierte Backups an beliebige Orte. Also lokal erreichbare Orte sind kein Problem. Aber wenn du deine Datenbank in die Cloud hochlädst, dann gibts spezielle Plugins für KeePass 2, damit du Zugriff direkt von KeePass drauf hast. Kann man dann wunderbar verbinden mit dem erwähnten Trigger.
 
Ja, es geht um das Lesen ("OpenRead"), nicht das Schreiben, bei dem Fehler.
DIe Frage ist also: Wie kam die Datei bislang dort hin?

Oder gab es ein Update des KPSimpleBackups? Weil grundsätzlich möchte das ja auch "SavePwDatabaseToPath" machen...
 
Zurück
Oben