X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fntfs-3g_capture.c;fp=src%2Fntfs-3g_capture.c;h=b496e02a723a51db0a2dd127b60a9ce70d6c169c;hb=f1460c1d7df10acd410aea0496147c1abe9ef24c;hp=33f8365702ecff945d14b050894f8fcc4fbfe7c8;hpb=4ac75788ad43f81b811e9c1b676e89a6a6c17387;p=wimlib diff --git a/src/ntfs-3g_capture.c b/src/ntfs-3g_capture.c index 33f83657..b496e02a 100644 --- a/src/ntfs-3g_capture.c +++ b/src/ntfs-3g_capture.c @@ -65,6 +65,7 @@ struct ntfs_volume_wrapper { ntfs_volume *vol; size_t refcnt; + bool dedup_warned; }; /* Description of where data is located in an NTFS volume */ @@ -231,6 +232,27 @@ read_reparse_header(ntfs_inode *ni, struct wim_inode *inode) return 0; } + +static void +warn_special_reparse_points(const struct wim_inode *inode, + const struct scan_params *params, + struct ntfs_volume_wrapper *volume) +{ + if (inode->i_reparse_tag == WIM_IO_REPARSE_TAG_DEDUP && + (params->add_flags & WIMLIB_ADD_FLAG_WINCONFIG) && + !volume->dedup_warned) + { + WARNING( + "Filesystem includes files deduplicated with Windows'\n" +" Data Deduplication feature, which to properly restore\n" +" would require that the chunk store in \"System Volume Information\"\n" +" be included in the WIM image. By default \"System Volume Information\"\n" +" is excluded, so you may want to use a custom capture configuration\n" +" file which includes it."); + volume->dedup_warned = true; + } +} + static int attr_type_to_wimlib_stream_type(ATTR_TYPES type) { @@ -793,6 +815,8 @@ ntfs_3g_build_dentry_tree_recursive(struct wim_dentry **root_ret, volume, AT_REPARSE_POINT); if (ret) goto out; + + warn_special_reparse_points(inode, params, volume); } /* Load the object ID. */ @@ -863,7 +887,7 @@ ntfs_3g_build_dentry_tree(struct wim_dentry **root_ret, char *path; int ret; - volume = MALLOC(sizeof(struct ntfs_volume_wrapper)); + volume = CALLOC(1, sizeof(struct ntfs_volume_wrapper)); if (!volume) return WIMLIB_ERR_NOMEM;