Jeffrey J. Kosowsky
2009-11-03 06:49:39 UTC
I know that there have been multiple threads about the pros/cons of
being able to access XP/Vista style \\?\GLOBALROOT paths.
However, not being able to access them limits one's abilities to use
things like shadow copies since they create shadow devices that are only
accessible by such a path. For example
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1
The only hack that I have found to get around this is to use an *old*,
*unsupported* Microsoft routine called 'dosdev' which allows you to
assign drive letters to devices, including using the GLOBALROOT
format.
However, it has several disadvantages:
- It is old and not available
- It is unsupported
- It is mostly undocumented with different versions and command lines
for different Windows OS's -- so it is not portable across Windows
implementations (neither is vshadow.exe but that is another issue)
- It is not cygwin (and requires DOS type '/' parameters)
- It requires login access so it won't work with ssh login with
username=SYSTEM
If the cygwin developers are worried about performance or bug issues
with adding the GLOBALROOT syntax to *all* file operations, how about
implementing one of the two below compromises:
1. Just allow the GLOBALROOT implementation for mount.
This would allow you to mount the device using a drive letter and
then access it that way (similar to dosdev.exe itself).
2. If you don't want to touch mount itself, then how about writing an
alternative restrictive version of mount called something else that
just handles the special case of assigning/mounting a drive letter
to the GLOBALROOT device -- i.e. basically implementing the dosdev
functionality in a cygwin way.
Alternatively, is there any other way (other than dosdev.exe to access
global root partitions)
being able to access XP/Vista style \\?\GLOBALROOT paths.
However, not being able to access them limits one's abilities to use
things like shadow copies since they create shadow devices that are only
accessible by such a path. For example
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1
The only hack that I have found to get around this is to use an *old*,
*unsupported* Microsoft routine called 'dosdev' which allows you to
assign drive letters to devices, including using the GLOBALROOT
format.
However, it has several disadvantages:
- It is old and not available
- It is unsupported
- It is mostly undocumented with different versions and command lines
for different Windows OS's -- so it is not portable across Windows
implementations (neither is vshadow.exe but that is another issue)
- It is not cygwin (and requires DOS type '/' parameters)
- It requires login access so it won't work with ssh login with
username=SYSTEM
If the cygwin developers are worried about performance or bug issues
with adding the GLOBALROOT syntax to *all* file operations, how about
implementing one of the two below compromises:
1. Just allow the GLOBALROOT implementation for mount.
This would allow you to mount the device using a drive letter and
then access it that way (similar to dosdev.exe itself).
2. If you don't want to touch mount itself, then how about writing an
alternative restrictive version of mount called something else that
just handles the special case of assigning/mounting a drive letter
to the GLOBALROOT device -- i.e. basically implementing the dosdev
functionality in a cygwin way.
Alternatively, is there any other way (other than dosdev.exe to access
global root partitions)