datto / dattobd

kernel module for taking block-level snapshots and incremental backups of Linux block devices
GNU General Public License v2.0
576 stars 122 forks source link

datto: failed to locate system call table, persistence disabled #246

Open pskaurav opened 3 years ago

pskaurav commented 3 years ago

Hi,

On Centos 8 and Rhel 8, driver is failing with error "datto: failed to locate system call table, persistence disabled". I have seen this error for both ext4 and xfs root file system. Due to this bug, reload-incremental is not working after reboot.

Please help us on this issue?

Thanks Pushpraj Kaurav

nickchen-cpu commented 3 years ago

Hi Pushpraj Kaurav, Do you have correct /lib/modules/${KERNEL_VERSION}/System.map ?? (${KERNEL_VERSION} is $(uname -r)) Dattobd will find system call table on that path. installing it will fix this problem. (or /boot/System.map-${KERNEL_VERSION} if previous one not found)

Further more, check if configure-tests/symbol-tests matches with kernel-config.h, If it matches you will find the correct system call table.

Once you setup well, make clean && make again. Nick

pskaurav commented 3 years ago

Hi Nick,

Thanks for reply.

Kernel version is 4.18.0-193.19.1.el8_2.x86_64 and Os version is Centos 8. System.map file is present at /lib/modules/4.18.0-193.19.1.el8_2.x86_64 and also /boot/System.map-4.18.0-193.19.1.el8_2.x86_64 is present.

Contents of the symbol-tests are following:

[pskaurav@pcentos8 configure-tests]$ cat symbol-tests sys_mount sys_umount sys_oldumount sys_call_table printk

Could not find out kernel-config.h, where is this file?

Thanks Pushpraj

nickchen-cpu commented 3 years ago

Hi pskaurav, kernel-config.h records what kernel functions you can use without redefinition and the system call tables address. kernel-config.h is in the src directory, I think that's why datto: failed to locate system call table, persistence disabled, on the other hand, kernel-config.h was produced during "make" by genconfig.sh Try to make again correctly.

Nick

dakotarwilliams commented 3 years ago

Duplicate of https://github.com/datto/dattobd/issues/144. Mount hooks can't be found because the kernel restructured how the mount/umount syscalls are organized. Kernel mount and userspace mount don't follow the same trace. It would require a whole new mechanism to bring this functionality into 4.18+

pskaurav commented 3 years ago

Hi,

Thanks Williams.

Any idea when fix will be available?

Thanks Pushpraj

dakotarwilliams commented 3 years ago

I really don't have a good estimate for you at this time.

pskaurav commented 3 years ago

Thanks. Pushpraj