Option --rpfix not working on wimapply
Posted: Tue Dec 17, 2024 12:47 pm
Here's the test I did (I also tested on a Windows machine and behavior was similar)
I had this folder:
I created two .wim files then applied them in upper directory:
Here is how the symlinks/reparse points change:
I have two observations that I couldn't make sense of from the man pages:
1. It seems like Reparse Points that point outside the directory are still captured, unlike DISM: "If /NoRpFix is not specified, reparse points that resolve to paths outside of the value specified by /ImageFile will not be captured." It's pretty cool that wimlib seems to do this even with --rpfix but is there documentation for this anywhere? I could not find mention of this.
2. It seems like wimapply --rpfix on a wimage captured with wimcapture --norpfix does NOT have any effect on the reparse points. Is this correct? I initially expected (and wanted!) it to fix the reparse point that was originally pointing inside the tree being captured to now point inside (to /Users/folder_norpfixcap_rpfixapp/school/textbooks), but instead it is unchanged and so now points outside (to /Users/test/folder/school/textbooks) to the original.
Windows observation:
wimapply --norpfix after a wimcapture --rpfix shows the drive letter "X:" prepended to the Books reparse point, is this a Windows or a wimlib thing? It confused me a bit!
My requests:
1. Would it be a good idea to document these observations/cases?
2. Would it be possible for wimapply --rpfix on non-fixed captures to fix the reparse point to be inside the tree? Or have a new flag to do so like --forcerpfix or something?
Sorry, if this post comes off strange or nitpicky, I rarely post on forums so I hope this was formatted properly and in line, my use case for this is to back up a bunch of partitions from different devices and being able to apply the the images to be properly bootable and I was confused if I should use --rpfix or --norpfix
I had this folder:
Code: Select all
/Users/test/folder
├── Books -> /Users/test/folder/school/textbooks
├── Public -> /Users/Shared/pubdir
└── school
└── textbooks
└── book1.txt
Code: Select all
$ wimcapture folder folder_rpfixcap.wim --rpfix
$ wimcapture folder folder_norpfixcap.wim --norpfix
$ wimapply folder_rpfixcap.wim 1 /Users/folder_rpfixcap_rpfixapp --rpfix
$ wimapply folder_rpfixcap.wim 1 /Users/folder_rpfixcap_norpfixapp --norpfix
$ wimapply folder_norpfixcap.wim 1 /Users/folder_norpfixcap_rpfixapp --rpfix
$ wimapply folder_norpfixcap.wim 1 /Users/folder_norpfixcap_norpfixapp --norpfix
Code: Select all
/Users/folder_rpfixcap_rpfixapp
├── Books -> /Users/folder_rpfixcap_rpfixapp/school/textbooks
├── Public -> /Users/Shared/pubdir
└── school
└── textbooks
└── book1.txt
/Users/folder_rpfixcap_norpfixapp
├── Books -> /school/textbooks
├── Public -> /Users/Shared/pubdir
└── school
└── textbooks
└── book1.txt
/Users/folder_norpfixcap_rpfixapp
├── Books -> /Users/test/folder/school/textbooks
├── Public -> /Users/Shared/pubdir
└── school
└── textbooks
└── book1.txt
/Users/folder_norpfixcap_norpfixapp
├── Books -> /Users/test/folder/school/textbooks
├── Public -> /Users/Shared/pubdir
└── school
└── textbooks
└── book1.txt
1. It seems like Reparse Points that point outside the directory are still captured, unlike DISM: "If /NoRpFix is not specified, reparse points that resolve to paths outside of the value specified by /ImageFile will not be captured." It's pretty cool that wimlib seems to do this even with --rpfix but is there documentation for this anywhere? I could not find mention of this.
2. It seems like wimapply --rpfix on a wimage captured with wimcapture --norpfix does NOT have any effect on the reparse points. Is this correct? I initially expected (and wanted!) it to fix the reparse point that was originally pointing inside the tree being captured to now point inside (to /Users/folder_norpfixcap_rpfixapp/school/textbooks), but instead it is unchanged and so now points outside (to /Users/test/folder/school/textbooks) to the original.
Windows observation:
wimapply --norpfix after a wimcapture --rpfix shows the drive letter "X:" prepended to the Books reparse point, is this a Windows or a wimlib thing? It confused me a bit!
My requests:
1. Would it be a good idea to document these observations/cases?
2. Would it be possible for wimapply --rpfix on non-fixed captures to fix the reparse point to be inside the tree? Or have a new flag to do so like --forcerpfix or something?
Sorry, if this post comes off strange or nitpicky, I rarely post on forums so I hope this was formatted properly and in line, my use case for this is to back up a bunch of partitions from different devices and being able to apply the the images to be properly bootable and I was confused if I should use --rpfix or --norpfix