在我们的两台 PROXMOX 服务器版本 8.2.2 上,我们是否存在 veeam blksnap 编译问题。
dkms install -m blksnap -v 6.1.0.1498 Sign command: /lib/modules/6.8.4-2-pve/build/scripts/sign-file Signing key: /var/lib/dkms/mok.key Public certificate (MOK): /var/lib/dkms/mok.pub
Building module: Cleaning build area... make -j16 KERNELRELEASE=6.8.4-2-pve -j16 -C /lib/modules/6.8.4-2-pve/build M=/var/lib/dkms/blksnap/6.1.0.1498/build modules...(bad exit status: 2) Error! Bad return status for module build on kernel: 6.8.4-2-pve (x86_64) Consult /var/lib/dkms/blksnap/6.1.0.1498/build/make.log for more information.
我试图理解日志 /var/lib/dkms/blksnap/6.1.0.1498/build/make.log,但到目前为止我找不到解决方案。
DKMS make.log for blksnap-6.1.0.1498 for kernel 6.8.4-2-pve (x86_64)
Fri Apr 26 02:49:00 PM CEST 2024
make: Entering directory '/usr/src/linux-headers-6.8.4-2-pve'
CC [M] /var/lib/dkms/blksnap/6.1.0.1498/build/bdevfilter.o
CC [M] /var/lib/dkms/blksnap/6.1.0.1498/build/log.o
CC [M] /var/lib/dkms/blksnap/6.1.0.1498/build/big_buffer.o
CC [M] /var/lib/dkms/blksnap/6.1.0.1498/build/cbt_map.o
CC [M] /var/lib/dkms/blksnap/6.1.0.1498/build/chunk.o
CC [M] /var/lib/dkms/blksnap/6.1.0.1498/build/ctrl.o
CC [M] /var/lib/dkms/blksnap/6.1.0.1498/build/diff_io.o
CC [M] /var/lib/dkms/blksnap/6.1.0.1498/build/diff_area.o
CC [M] /var/lib/dkms/blksnap/6.1.0.1498/build/diff_buffer.o
CC [M] /var/lib/dkms/blksnap/6.1.0.1498/build/diff_storage.o
CC [M] /var/lib/dkms/blksnap/6.1.0.1498/build/event_queue.o
CC [M] /var/lib/dkms/blksnap/6.1.0.1498/build/main.o
CC [M] /var/lib/dkms/blksnap/6.1.0.1498/build/snapimage.o
CC [M] /var/lib/dkms/blksnap/6.1.0.1498/build/snapshot.o
CC [M] /var/lib/dkms/blksnap/6.1.0.1498/build/sysfs.o
CC [M] /var/lib/dkms/blksnap/6.1.0.1498/build/tracker.o
CC [M] /var/lib/dkms/blksnap/6.1.0.1498/build/memory_checker.o
/var/lib/dkms/blksnap/6.1.0.1498/build/log.c:246:5: warning: no previous prototype for ‘log_processor’ [-Wmissing-prototypes]
246 | int log_processor(void *data)
| ^~~~~~~~~~~~~
/var/lib/dkms/blksnap/6.1.0.1498/build/diff_io.c:45:6: warning: no previous prototype for ‘diff_io_endio’ [-Wmissing-prototypes]
45 | void diff_io_endio(struct bio *bio)
| ^~~~~~~~~~~~~
/var/lib/dkms/blksnap/6.1.0.1498/build/diff_area.c: In function ‘diff_area_free’:
/var/lib/dkms/blksnap/6.1.0.1498/build/diff_area.c:123:17: error: implicit declaration of function ‘blkdev_put’ [-Werror=implicit-function-declaration]
123 | blkdev_put(diff_area->orig_bdev, NULL);
| ^~~~~~~~~~
/var/lib/dkms/blksnap/6.1.0.1498/build/diff_storage.c: In function ‘diff_storage_free’:
/var/lib/dkms/blksnap/6.1.0.1498/build/diff_storage.c:123:17: error: implicit declaration of function ‘blkdev_put’ [-Werror=implicit-function-declaration]
123 | blkdev_put(storage_bdev->bdev, NULL);
| ^~~~~~~~~~
/var/lib/dkms/blksnap/6.1.0.1498/build/ctrl.c:444:5: warning: no previous prototype for ‘ioctl_mod’ [-Wmissing-prototypes]
444 | int ioctl_mod(unsigned long arg)
| ^~~~~~~~~
/var/lib/dkms/blksnap/6.1.0.1498/build/ctrl.c:454:5: warning: no previous prototype for ‘ioctl_setlog’ [-Wmissing-prototypes]
454 | int ioctl_setlog(unsigned long arg)
| ^~~~~~~~~~~~
/var/lib/dkms/blksnap/6.1.0.1498/build/main.c:23:9: note: ‘#pragma message: Standalone bdevfilter’
23 | #pragma message("Standalone bdevfilter")
| ^~~~~~~
/var/lib/dkms/blksnap/6.1.0.1498/build/main.c:29:9: note: ‘#pragma message: The void submit_bio_noacct(struct bio *) function was found.’
29 | #pragma message("The void submit_bio_noacct(struct bio *) function was found.")
| ^~~~~~~
/var/lib/dkms/blksnap/6.1.0.1498/build/main.c:35:9: note: ‘#pragma message: The struct bio have pointer to struct block_device.’
35 | #pragma message("The struct bio have pointer to struct block_device.")
| ^~~~~~~
/var/lib/dkms/blksnap/6.1.0.1498/build/main.c:41:9: note: ‘#pragma message: The bdev_nr_sectors() function was found.’
41 | #pragma message("The bdev_nr_sectors() function was found.")
| ^~~~~~~
/var/lib/dkms/blksnap/6.1.0.1498/build/main.c:44:9: note: ‘#pragma message: The blk_mq_alloc_disk() function was found.’
44 | #pragma message("The blk_mq_alloc_disk() function was found.")
| ^~~~~~~
/var/lib/dkms/blksnap/6.1.0.1498/build/main.c:50:9: note: ‘#pragma message: The function add_disk() has a return code.’
50 | #pragma message("The function add_disk() has a return code.")
| ^~~~~~~
/var/lib/dkms/blksnap/6.1.0.1498/build/main.c:56:9: note: ‘#pragma message: The function bio_alloc_bioset() has a parameter bdev.’
56 | #pragma message("The function bio_alloc_bioset() has a parameter bdev.")
| ^~~~~~~
/var/lib/dkms/blksnap/6.1.0.1498/build/diff_area.c: In function ‘diff_area_new’:
/var/lib/dkms/blksnap/6.1.0.1498/build/diff_area.c:296:16: error: implicit declaration of function ‘blkdev_get_by_dev’; did you mean ‘blkdev_get_no_open’? [-Werror=implicit-function-declaration]
296 | bdev = blkdev_get_by_dev(dev_id, FMODE_READ | FMODE_WRITE, NULL, NULL);
| ^~~~~~~~~~~~~~~~~
| blkdev_get_no_open
/var/lib/dkms/blksnap/6.1.0.1498/build/diff_area.c:296:14: warning: assignment to ‘struct block_device *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
296 | bdev = blkdev_get_by_dev(dev_id, FMODE_READ | FMODE_WRITE, NULL, NULL);
| ^
/var/lib/dkms/blksnap/6.1.0.1498/build/diff_storage.c: In function ‘diff_storage_add_storage_bdev’:
/var/lib/dkms/blksnap/6.1.0.1498/build/diff_storage.c:162:16: error: implicit declaration of function ‘blkdev_get_by_dev’; did you mean ‘blkdev_get_no_open’? [-Werror=implicit-function-declaration]
162 | bdev = blkdev_get_by_dev(dev_id, FMODE_READ | FMODE_WRITE, NULL, NULL);
| ^~~~~~~~~~~~~~~~~
| blkdev_get_no_open
/var/lib/dkms/blksnap/6.1.0.1498/build/diff_storage.c:162:14: warning: assignment to ‘struct block_device *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
162 | bdev = blkdev_get_by_dev(dev_id, FMODE_READ | FMODE_WRITE, NULL, NULL);
| ^
/var/lib/dkms/blksnap/6.1.0.1498/build/diff_area.c: At top level:
/var/lib/dkms/blksnap/6.1.0.1498/build/diff_area.c:395:15: warning: no previous prototype for ‘diff_area_chunk_take’ [-Wmissing-prototypes]
395 | struct chunk *diff_area_chunk_take(struct diff_area *diff_area,
| ^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/blksnap/6.1.0.1498/build/snapshot.c: In function ‘snapshot_release_trackers’:
/var/lib/dkms/blksnap/6.1.0.1498/build/snapshot.c:58:21: error: implicit declaration of function ‘freeze_bdev’; did you mean ‘freeze_super’? [-Werror=implicit-function-declaration]
58 | if (freeze_bdev(tracker->diff_area->orig_bdev))
| ^~~~~~~~~~~
| freeze_super
/var/lib/dkms/blksnap/6.1.0.1498/build/tracker.c: In function ‘tracker_filter_attach’:
/var/lib/dkms/blksnap/6.1.0.1498/build/tracker.c:242:13: error: implicit declaration of function ‘freeze_bdev’; did you mean ‘freeze_super’? [-Werror=implicit-function-declaration]
242 | if (freeze_bdev(bdev))
| ^~~~~~~~~~~
| freeze_super
/var/lib/dkms/blksnap/6.1.0.1498/build/snapshot.c:79:21: error: implicit declaration of function ‘thaw_bdev’ [-Werror=implicit-function-declaration]
79 | if (thaw_bdev(tracker->diff_area->orig_bdev))
| ^~~~~~~~~
/var/lib/dkms/blksnap/6.1.0.1498/build/tracker.c:259:21: error: implicit declaration of function ‘thaw_bdev’ [-Werror=implicit-function-declaration]
259 | if (thaw_bdev(bdev))
| ^~~~~~~~~
/var/lib/dkms/blksnap/6.1.0.1498/build/tracker.c: In function ‘tracker_create_or_get’:
/var/lib/dkms/blksnap/6.1.0.1498/build/tracker.c:476:16: error: implicit declaration of function ‘blkdev_get_by_dev’; did you mean ‘blkdev_get_no_open’? [-Werror=implicit-function-declaration]
476 | bdev = blkdev_get_by_dev(dev_id, 0, NULL, NULL);
| ^~~~~~~~~~~~~~~~~
| blkdev_get_no_open
/var/lib/dkms/blksnap/6.1.0.1498/build/tracker.c:476:14: warning: assignment to ‘struct block_device *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
476 | bdev = blkdev_get_by_dev(dev_id, 0, NULL, NULL);
| ^
/var/lib/dkms/blksnap/6.1.0.1498/build/snapimage.c: In function ‘snapimage_create’:
/var/lib/dkms/blksnap/6.1.0.1498/build/snapimage.c:292:47: error: ‘BLK_DEF_MAX_SECTORS’ undeclared (first use in this function); did you mean ‘BLK_SAFE_MAX_SECTORS’?
292 | blk_queue_max_hw_sectors(disk->queue, BLK_DEF_MAX_SECTORS);
| ^~~~~~~~~~~~~~~~~~~
| BLK_SAFE_MAX_SECTORS
/var/lib/dkms/blksnap/6.1.0.1498/build/snapimage.c:292:47: note: each undeclared identifier is reported only once for each function it appears in
/var/lib/dkms/blksnap/6.1.0.1498/build/tracker.c:531:9: error: implicit declaration of function ‘blkdev_put’ [-Werror=implicit-function-declaration]
531 | blkdev_put(bdev, NULL);
| ^~~~~~~~~~
/var/lib/dkms/blksnap/6.1.0.1498/build/tracker.c: In function ‘tracker_remove’:
/var/lib/dkms/blksnap/6.1.0.1498/build/tracker.c:548:14: warning: assignment to ‘struct block_device *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
548 | bdev = blkdev_get_by_dev(dev_id, 0, NULL, NULL);
| ^
/var/lib/dkms/blksnap/6.1.0.1498/build/tracker.c: In function ‘tracker_read_cbt_bitmap’:
/var/lib/dkms/blksnap/6.1.0.1498/build/tracker.c:626:14: warning: assignment to ‘struct block_device *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
626 | bdev = blkdev_get_by_dev(dev_id, 0, NULL, NULL);
| ^
/var/lib/dkms/blksnap/6.1.0.1498/build/tracker.c: In function ‘collect_cbt_info’:
/var/lib/dkms/blksnap/6.1.0.1498/build/tracker.c:678:14: warning: assignment to ‘struct block_device *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
678 | bdev = blkdev_get_by_dev(dev_id, 0, NULL, NULL);
| ^
/var/lib/dkms/blksnap/6.1.0.1498/build/tracker.c: In function ‘tracker_mark_dirty_blocks’:
/var/lib/dkms/blksnap/6.1.0.1498/build/tracker.c:765:14: warning: assignment to ‘struct block_device *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
765 | bdev = blkdev_get_by_dev(dev_id, 0, NULL, NULL);
| ^
make[2]: *** [scripts/Makefile.build:243: /var/lib/dkms/blksnap/6.1.0.1498/build/snapimage.o] Error 1
make[2]: *** Waiting for unfinished jobs....
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:243: /var/lib/dkms/blksnap/6.1.0.1498/build/diff_storage.o] Error 1
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:243: /var/lib/dkms/blksnap/6.1.0.1498/build/diff_area.o] Error 1
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:243: /var/lib/dkms/blksnap/6.1.0.1498/build/snapshot.o] Error 1
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:243: /var/lib/dkms/blksnap/6.1.0.1498/build/tracker.o] Error 1
make[1]: *** [/usr/src/linux-headers-6.8.4-2-pve/Makefile:1926: /var/lib/dkms/blksnap/6.1.0.1498/build] Error 2
make: *** [Makefile:240: __sub-make] Error 2
make: Leaving directory '/usr/src/linux-headers-6.8.4-2-pve'
也许有人比我更擅长这一点?谢谢你的帮助!
答案1
当 blksnap 6.1.0 发布时,6.8 内核不存在,后来在 6.1.2 中添加了它的支持
尝试从 blksnap 存储库构建它:https://github.com/veeam/blksnap
如果您遇到问题,请尝试查看https://github.com/veeam/blksnap/issues/88