jake3
December 21, 2022, 4:33pm
1
After a reboot with the vault open, I tried to open the vault from the plasma vault tray icon, it instead opens to the vault, but with no data in it and when I check the tray icon, it says that the vault is not open.
Trying to open the vault with
cryfs /path/to/the/encrypted/data /path/to/vault/mount/point
returns
----------------------------------------------------
Filesystem configuration:
----------------------------------------------------
- Filesystem format version: 0.10
- Created with: CryFS 0.11.0
- Last opened with: CryFS 0.11.3
- Cipher: xchacha20-poly1305
- Blocksize: 16384 bytes
- Filesystem Id: 953E35A639E869897A3E43FEBD29EBF1
----------------------------------------------------
[2022-12-21 11:24:47.285] [Log] [error] Crashed: Deserialization failed - missing nullbyte for string termination
I know that the data still exists somewhere on my drive, because I can see the .enc file and its the same size, but I don’t know how to access it. my other vault made before this happened still works normally.
Thank you for your time, it’s much appreciated
Zesko
December 21, 2022, 5:47pm
2
It would look like the encrypted data is corrupted by bad blocks of the disk or filesystem
jake3
December 21, 2022, 7:53pm
4
How can I use SiriKali to recover the data?
You build it from AUR
pamac build sirikali
Once is done, you open the UI and then open the encrypted volume/folder from your vaults and enter the password for it and you then should be able to access the files.
jake3
December 21, 2022, 8:09pm
6
It throws the same error as before
in that github issue thread they talked about making a recovery tool for bad blocks, but it doesn’t sound like they are making much progress on it
they also mentioned a tool to recognize issues, and i am trying that out now
Zesko
December 21, 2022, 8:34pm
7
Do backup of your encrypted data first.
Delete or move the broken cryfs:
$ mv ~/.local/share/cryfs ~/Desktop/cryfs_backup
opened 12:21AM - 06 Aug 19 UTC
## Expected Behavior
No crash, or if there was unavoidable FS corruption, rec… overy from a backup or even just deleting the problematic file altogether and starting anew.
## Actual Behavior
Crash with an assertion failure.
## Steps to Reproduce the Problem
Unsure. Happened after a (normal) reboot one day. It was fixed by removing `~/.local/share/cryfs` as another issue suggests.
Here is an excerpt of a gdb session with cryfs-stats, though the same issue happens in the main cryfs utility:
```
Loading config
Password:
Deriving encryption key (this can take some time)...[New Thread 0x7ffff6e0a700 (LWP 9021)]
[New Thread 0x7ffff6609700 (LWP 9022)]
[New Thread 0x7ffff5e08700 (LWP 9023)]
[New Thread 0x7ffff5607700 (LWP 9024)]
[New Thread 0x7ffff4e06700 (LWP 9025)]
[New Thread 0x7ffff4605700 (LWP 9026)]
[New Thread 0x7ffff3e04700 (LWP 9027)]
done
Loading filesystem of version 0.10
Listing all blocks...terminate called after throwing an instance of 'std::runtime_error'
what(): Deserialization failed - missing nullbyte for string termination
Thread 1 "cryfs-stats" received signal SIGABRT, Aborted.
0x00007ffff7993755 in raise () from /usr/lib/libc.so.6
(gdb) bt
#0 0x00007ffff7993755 in raise () from /usr/lib/libc.so.6
#1 0x00007ffff797e851 in abort () from /usr/lib/libc.so.6
#2 0x00007ffff7d1381f in __gnu_cxx::__verbose_terminate_handler () at /build/gcc/src/gcc/libstdc++-v3/libsupc++/vterminate.cc:95
#3 0x00007ffff7d2030a in __cxxabiv1::__terminate (handler=<optimized out>) at /build/gcc/src/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:47
#4 0x00007ffff7d20367 in std::terminate () at /build/gcc/src/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:57
#5 0x00007ffff7d205bd in __cxxabiv1::__cxa_throw (obj=obj@entry=0x5555559f9850, tinfo=0x5555559b05e0 <typeinfo for std::runtime_error@@GLIBCXX_3.4>, dest=0x7ffff7d367e0 <std::runtime_error::~runtime_error()>)
at /build/gcc/src/gcc/libstdc++-v3/libsupc++/eh_throw.cc:95
#6 0x0000555555714adc in cpputils::Deserializer::readString[abi:cxx11]() (this=0x7fffffffd0d0) at /home/score/src/cryfs/src/cpp-utils/data/Deserializer.h:135
#7 blockstore::integrity::KnownBlockVersions::_loadStateFile (this=<optimized out>) at /home/score/src/cryfs/src/blockstore/implementations/integrity/KnownBlockVersions.cpp:103
#8 0x00005555557e5fdc in blockstore::integrity::KnownBlockVersions::KnownBlockVersions (this=0x5555559f9880, stateFilePath=..., myClientId=<optimized out>)
at /home/score/src/cryfs/src/blockstore/implementations/integrity/KnownBlockVersions.cpp:28
#9 0x00005555557e321f in blockstore::integrity::IntegrityBlockStore2::IntegrityBlockStore2(cpputils::unique_ref<blockstore::BlockStore2, std::default_delete<blockstore::BlockStore2> >, boost::filesystem::path const&, unsigned int, bool, bool, std::function<void ()>) (this=0x5555559f9870, baseBlockStore=..., integrityFilePath=..., myClientId=<optimized out>, allowIntegrityViolations=<optimized out>,
missingBlockIsIntegrityViolation=<optimized out>, onIntegrityViolation=...) at /home/score/src/cryfs/src/cpp-utils/random/../data/../pointer/unique_ref.h:111
#10 0x000055555572fa78 in std::make_unique<blockstore::integrity::IntegrityBlockStore2, cpputils::unique_ref<blockstore::BlockStore2, std::default_delete<blockstore::BlockStore2> >, boost::filesystem::path&, unsigned int const&, bool, bool, makeBlockStore(const boost::filesystem::path&, const cryfs::CryConfigLoader::ConfigLoadResult&, cryfs::LocalStateDir&)::<lambda()>&> () at /usr/include/c++/9.1.0/new:174
#11 cpputils::make_unique_ref<blockstore::integrity::IntegrityBlockStore2, cpputils::unique_ref<blockstore::BlockStore2, std::default_delete<blockstore::BlockStore2> >, boost::filesystem::path&, unsigned int const&, bool, bool, makeBlockStore(const boost::filesystem::path&, const cryfs::CryConfigLoader::ConfigLoadResult&, cryfs::LocalStateDir&)::<lambda()>&> ()
at /home/score/src/cryfs/src/cpp-utils/pointer/unique_ref.h:131
#12 makeBlockStore (basedir=..., config=..., localStateDir=...) at /home/score/src/cryfs/src/stats/main.cpp:64
#13 0x000055555572fbde in _getAllBlockIds (basedir=..., config=..., localStateDir=...) at /home/score/src/cryfs/src/stats/main.cpp:136
#14 0x0000555555728545 in main (argc=<optimized out>, argv=<optimized out>) at /usr/include/boost/optional/detail/optional_aligned_storage.hpp:64
```
## Specifications
- CryFS Version: 0.10.2
- Operating System (incl. Version): Linux 5.2.6-arch1-1-ARCH
2 Likes
jake3
December 21, 2022, 8:42pm
8
Thanks you very much, this worked, im going to go make some backups now
system
Closed
December 24, 2022, 10:43am
9
This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.