Re: Issue w wimlib 1.8.1 and later (deploying Win7)
Posted: Wed Aug 12, 2015 12:11 am
Hi,
First, I'm still confused about whether we are dealing with one problem or two
(one with capture, one with apply). The metadata you most recently posted only
shows the difference after a *capture* directly from a sysprepped filesystem, so
an *apply* isn't in the picture at all, correct?
Second, I did manage to identify a case in which a data stream might "go
missing" in a capture with wimlib v1.8.1 compared to a capture with wimlib
v1.8.0. If an NTFS file has more than one unnamed data stream (this is supposed
to be impossible but I won't make any guesses), then v1.8.0 and v1.8.1 may
choose a different one to save in the WIM image. I advise that you re-test
(specifically, the capture scenario) v1.8.1 with and without the following patch
applied:
Alternatively, check out commit a8215b2ff934d1fd0c3f74522deed28c69e36c5d from
the git repository.
For this isn't not necessary to post the full metadata resource --- running 'wimdir
--detailed' on each WIM image and taking the diff of the output should be
sufficient.
First, I'm still confused about whether we are dealing with one problem or two
(one with capture, one with apply). The metadata you most recently posted only
shows the difference after a *capture* directly from a sysprepped filesystem, so
an *apply* isn't in the picture at all, correct?
Second, I did manage to identify a case in which a data stream might "go
missing" in a capture with wimlib v1.8.1 compared to a capture with wimlib
v1.8.0. If an NTFS file has more than one unnamed data stream (this is supposed
to be impossible but I won't make any guesses), then v1.8.0 and v1.8.1 may
choose a different one to save in the WIM image. I advise that you re-test
(specifically, the capture scenario) v1.8.1 with and without the following patch
applied:
Code: Select all
diff --git a/src/dentry.c b/src/dentry.c
index 6a75938..17c90aa 100644
--- a/src/dentry.c
+++ b/src/dentry.c
@@ -1842,7 +1842,7 @@ write_dentry(const struct wim_dentry * restrict dentry, u8 * restrict p)
if (strm->stream_type == STREAM_TYPE_DATA) {
if (stream_is_named(strm))
have_named_data_stream = true;
- else
+ else if (is_zero_hash(unnamed_data_stream_hash))
unnamed_data_stream_hash = stream_hash(strm);
} else if (strm->stream_type == STREAM_TYPE_REPARSE_POINT) {
have_reparse_point_stream = true;
Alternatively, check out commit a8215b2ff934d1fd0c3f74522deed28c69e36c5d from
the git repository.
For this isn't not necessary to post the full metadata resource --- running 'wimdir
--detailed' on each WIM image and taking the diff of the output should be
sufficient.