Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I was trying to move my "Users" folder in Windows 8 as described here and here.

But when I try to copy the folder using "xcopy" in Windows Installation Disk Repair Mode, after some files are copied, I get "insufficient memory". The files on which the error is given are like C:\Users\Bilal\Application Data\Application Data\Application Data.........Application Data\Application Data.....

What is the point in such directories within directories?

I also tried copying them using Mini Windows XP, but the problem was there too.. Also tried copying using Parted Magic Live CD... but still..

So now, how can I move them? Another Question. Is moving such/ system files using Linux a good idea? Does it do anything to permissions?

share|improve this question
    
I have seen other questions before (with a German installation) - they hard to reformat as this is not the desired behavior. –  Dave Rook Dec 13 '12 at 15:45
1  
Sounds more like there's a symbolic (or hard?) link to the parent directory...which yields !!!FUN!!!...if you get my drift. –  Bobby Dec 13 '12 at 15:57

2 Answers 2

This issue is caused by backward compatibility of Windows Vista and later. In those systems some folders that had "known" names in Windows XP are mapped to the new locations using NTFS Directory Junction Points.

An example of such mappnig is: \Documents and Settings\<username>\Application Data being mapped to \Users\<username>\AppData\Roaming.

Usually this mechanism should be transparent, but unfortunately on your volume something went wrong and created a recursive junction.

In order to copy your data you have to use a program that understands NTFS Directory Junction Points and can skip them while copying, one of such programs is Microsoft Robocopy.

The parameter you're interested in is /XJ :: eXclude Junction points. (normally included by default). or /XJD :: eXclude Junction points for Directories. if you want to be more granular and only skip directory junctions.

To answer your second question, reading NTFS under Linux is a pretty safe operation. Preserving NTFS ACLs on the other hand is not trivial.

share|improve this answer
    
thanks, I was about to try robocopy, though I didnt know the problem and whether robocopy can handle it or not. Wouldn't excluding junction points cause problems? What if windows were expecting some? –  bilal.haider Dec 13 '12 at 16:20
    
It's hard to tell whether lack of junction points will be a problem in your profile since I don't know anything about the software you use. You can inspect the current junctions by issuing dir /A:L /S in your profile directory and then recreate them in the destination location using mklink /J. –  mprill Dec 13 '12 at 16:26
    
great help.. thankyou @mprill :) –  bilal.haider Dec 13 '12 at 18:00
up vote 1 down vote accepted

The thing that actually worked was xcopy /b switch. Although robocopy /xj did exclude junctions,, but caused problems with Metro Apps.

I found robocopy /xj = EXCLUDE LINKS while xcopy /b = COPY LINK ITSELF instead of copying target

Now I don't know what caused problems with Metro Apps, issues with permissions or excluding links altogether. But xcopy /b /e /k /o /h was the final solution. :)

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.