jief666 / hdimount

Mount apple disk image (HFS, APFS, partitioned or not, compressed, encrypted) via Fuse
GNU General Public License v3.0
33 stars 2 forks source link

"No such file or directory" when mounting encrypted Timemachine-Backup - GPT and HFS #6

Open 0nelight opened 2 years ago

0nelight commented 2 years ago

Hi!

I tried to mount a encrypted backup.sparsebundle Timemachine Backup in Debian 11 but there are problems receiving the files.

As soon as I cd into the mount-folder I get this:

user@timemachine:/mnt/tm_mount_gcr$ ls -l  
ls: cannot access 'Backups.backupdb': No such file or directory  
ls: cannot access 'tmbootpicker.efi': No such file or directory  
total 0  
d????????? ? ? ? ?            ? Backups.backupdb  
-????????? ? ? ? ?            ? tmbootpicker.efi

After some meddling with the code, turning debugging on:

root@timemachine:~# ./hdimount/build_release_linux-gcc-openssl_hdimount/hdimount -f -d /mnt/timemachine/gcr/gcr.sparsebundle /mnt/tm_mount_gcr
Password:
Detected a GPT partionned disk.
Using HFS partition #1 of type Apple_HFS
umount: /mnt/tm_mount_gcr: not mounted.
Hdimount version 1.0__a7e94ff
Everything looks ok. Giving to Fuse
FUSE library version: 2.9.9
nullpath_ok: 0
nopath: 0
utime_omit_ok: 0
unique: 2, opcode: INIT (26), nodeid: 0, insize: 56, pid: 0
INIT: 7.32
flags=0x03fffffb
max_readahead=0x00020000
   INIT: 7.19
   flags=0x00000011
   max_readahead=0x00020000
   max_write=0x00020000
   max_background=0
   congestion_threshold=0
   unique: 2, success, outsize: 40
unique: 4, opcode: GETATTR (3), nodeid: 1, insize: 56, pid: 38726
getattr /
fuse_stat(/) -> stat->mode=41ed
   unique: 4, success, outsize: 120
unique: 6, opcode: GETATTR (3), nodeid: 1, insize: 56, pid: 38728
getattr /
fuse_stat(/) -> stat->mode=41ed
   unique: 6, success, outsize: 120
unique: 8, opcode: ACCESS (34), nodeid: 1, insize: 48, pid: 38059
   unique: 8, error: -38 (Function not implemented), outsize: 16
unique: 10, opcode: OPENDIR (27), nodeid: 1, insize: 48, pid: 38729
   unique: 10, success, outsize: 32
unique: 12, opcode: GETATTR (3), nodeid: 1, insize: 56, pid: 38729
getattr /
fuse_stat(/) -> stat->mode=41ed
   unique: 12, success, outsize: 120
unique: 14, opcode: READDIR (28), nodeid: 1, insize: 80, pid: 38729
readdir[0] from 0
   unique: 14, success, outsize: 520
unique: 16, opcode: LOOKUP (1), nodeid: 1, insize: 57, pid: 38729
LOOKUP /Backups.backupdb
getattr /Backups.backupdb
   unique: 16, error: -2 (No such file or directory), outsize: 16
unique: 18, opcode: LOOKUP (1), nodeid: 1, insize: 57, pid: 38729
LOOKUP /tmbootpicker.efi
getattr /tmbootpicker.efi
   unique: 18, error: -2 (No such file or directory), outsize: 16
unique: 20, opcode: READDIR (28), nodeid: 1, insize: 80, pid: 38729
   unique: 20, success, outsize: 16
unique: 22, opcode: RELEASEDIR (29), nodeid: 1, insize: 64, pid: 0
   unique: 22, success, outsize: 16

Could someone with a deeper understanding of this guide me to a solution? Thank You!

jief666 commented 2 years ago

I think TimeMachine has a slightly different file system. I never look deep into it. This is the next thing to do on that project... I personally don't use TimeMachine. I thought this project would attract more interest and I could have some help. If you need it, could be the occasion to get back to this project. As far as I know, this is the only project that can mount any images on any OS (including linux 32 bits).

0nelight commented 2 years ago

Yes I am happy to help, but at this moment I am barely able to read and understand parts of the c++ code. Writing c++ code here would be my first c++ code..

I don‘t use Timemachine anymore, but I have some old backups and a damaged mac so I cannot mount it at the moment.

How could I help you for further investigation? Are you sure that the problem above is a Time Machine issue?

Maybe according to https://github.com/abique/tmfs#internals the first level of the folders should be „normal“ folders - if I understand that correctly?

I am going to try to mount this folder with tmfs and write the result here!

Thank You, pls tell me how I can support you with this!