What is /norpfix switch, and what does it do?

I have been asked several times on what /norpfix does in imagex.exe. It has to do reparse points that may exist within the drive or directory that you are capturing. Here is the explanation.

First, there are only these types of reparse points supported by the RTM version of imagex.exe:

Directory junctions

            File symbolic links, and

            Directory symbolic links

Secondly, there are 2 kinds of reparse points, in terms of the location of the target which a link (being one of above 3) may point to:

                Inside of a the capture root, where imagex is trying to capture, and

                Outside of the capture root

For example, if you are capturing d:\temp\, and d:\temp\link1 is a junction pointing to d:\temp\dir1, then we call d:\temp\link1 an inside junction. If d:\temp\link2\ points to d:\foobar\, then it is an outside junction. It is similar with symlinks.

Third, with or without the /norpfix switch will make a difference when capturing inside and outside links. The behavior is like this:

Ramifications

Inside

Outside

Without /norpfix (, which is default)

Inside links will be captured. When applied, the link will be fixed to point to the new root. In the above example, d:\temp\ is captured and applied to e:\dest\. E:\dest\link1\ will point to E:\dest\dir1\

Outside links will NOT be captured.

With /norpfix

Inside links will still be captured. However, when applied, link path will not be fixed. In the above example, d:\temp\ is captured and applied to e:\dest\. E:\dest\link1\ will still point to D:\temp\dir1\. In the case where the image is applied to another machine, and thus d:\temp is no longer available, then the link is broken. Therefore, /norpfix is not recommended in such a case.

Outside links will still be captured, and since when applied, the destination may not have the link target, the link may be broken.

Outside links are not recommended for being captured, unless users really know what they are trying to accomplish.

Now if you are deploying Vista in a bitlocker-compatible/capable disk configuration (ie, having separate partitions for boot files and OS files), then /norpfix switch becomes necessary for capture). Please refer to the bitlocker deployment documentations for details.