diff --git a/src/extfsclone.c b/src/extfsclone.c index cf4a149b..7951d617 100644 --- a/src/extfsclone.c +++ b/src/extfsclone.c @@ -181,9 +181,9 @@ void read_bitmap(char* device, file_system_info fs_info, unsigned long* bitmap, /// check all free blocks in partition if (free != fs->super->s_free_blocks_count) { if ((fs->super->s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_GDT_CSUM) && (ext4_gfree_mismatch)) - log_mesg(1, 0, 0, fs_opt.debug, "%s: EXT4 bitmap metadata mismatch\n", __FILE__); + log_mesg(1, 0, 0, fs_opt.debug, "%s: EXT4 bitmap metadata mismatch (%llu vs %lu)\n", __FILE__, free, fs->super->s_free_blocks_count); else - log_mesg(0, 1, 1, fs_opt.debug, "%s: bitmap free count err, free:%llu\n", __FILE__, free); + log_mesg(0, 1, 1, fs_opt.debug, "%s: bitmap free count err, free:%llu, expected:%lu\n", __FILE__, free, fs->super->s_free_blocks_count); } fs_close(); diff --git a/src/main.c b/src/main.c index 903309d3..fc92a68e 100644 --- a/src/main.c +++ b/src/main.c @@ -508,7 +508,7 @@ int main(int argc, char **argv) { } else if (opt.chkimg && img_opt.checksum_mode == CSM_NONE && strcmp(opt.source, "-") != 0) { - unsigned long long total_offset = (fs_info.usedblocks - 1) * fs_info.block_size; + unsigned long long total_offset = (fs_info.used_bitmap - 1) * fs_info.block_size; char last_block[fs_info.block_size]; off_t partial_offset = INT32_MAX; diff --git a/src/partclone.c b/src/partclone.c index ca5f9886..a7ac173d 100644 --- a/src/partclone.c +++ b/src/partclone.c @@ -1603,6 +1603,7 @@ void print_file_system_info(file_system_info fs_info, cmd_opt opt) { unsigned int block_s = fs_info.block_size; unsigned long long total = fs_info.totalblock; unsigned long long used = fs_info.usedblocks; + unsigned long long mapped = fs_info.used_bitmap; int debug = opt.debug; char size_str[11]; @@ -1617,6 +1618,9 @@ void print_file_system_info(file_system_info fs_info, cmd_opt opt) { print_readable_size_str(used*block_s, size_str); log_mesg(0, 0, 1, debug, _("Space in use: %s = %llu Blocks\n"), size_str, used); + print_readable_size_str(mapped*block_s, size_str); + log_mesg(1, 0, 1, debug, _("Mapped space: %s = %llu Blocks\n"), size_str, mapped); + print_readable_size_str((total-used)*block_s, size_str); log_mesg(0, 0, 1, debug, _("Free Space: %s = %llu Blocks\n"), size_str, (total-used));