XP NTFS versus Windows 7 NTFS?

rcgldr

Distinguished
Oct 26, 2009
65
1
18,635
I have a triple boot system: XP 32 bit, XP 64 bit, Win7 Pro 64 bit, each on a separate partition on separate hard drives. I can backup each of the XP OS partitions with a program I wrote that basically does a file and folder copy to a folder in a spare partition on one of the hard drives. The copy program I wrote tries to preserve time stamp and short file name info, otherwise, it's just a file and folder copy program. I use windiff to verify after a backup (or restore). For a restore, I can quick format a partition and copy the files back (using the program I wrote).

I tried doing the same with the Win 7 OS partition, backup, quick format, restore, but some of the information (metadata?) is lost. All of the actual data is there, and windiff doesn't show any differences, and Win 7 boots up, but then there are issues. ATI video driver catalyst control center fails to run (don't recall error message). The publisher information for many (or most or all) of the programs is lost, causing User Acess Control dialog box to appear anytime I tried to run a program, which should be Microsoft, but shows up as unknown. Internet Explorer 8 will state that a program has corrupted the default search provider repeatedly (even after selecting one).

So something is different between Win 7 NTFS and Win XP NTFS, or I need to enhance my copy program to copy addtional file information when doing the copies. If I get the time, I'll try a drag and drop from windows explorer in XP to see if that makes any difference.

So currently I'm stuck using Win 7 system image backup for the Win 7 OS partition (it also images the C partition which contains the boot files like bootmgr).




 

rcgldr

Distinguished
Oct 26, 2009
65
1
18,635
My copy program uses FindFirstFile() and FindNextFile() to find files and directories; shouldn't this pick up alternate streams, or do I have to manually try :stream suffix on all file names? This has never been an issue for XP. I'd be suprised if Win 7 did this but I don't know. Also I can control what gets skipped on the backup, currently I skip recycler, $recycler.bin (Win 7), and system... folders.

The current version of the program is using standard character set, not unicode. This hasn't been an issue for XP, but that could be the problem for Win 7. I'll convert the program to unicode to see if that helps with the Win 7 issue. (NTFS folders and file names are stored as unicode).

Not yet. Since I just got Win 7 Pro a couple of days ago, XP has been good enough, and there doesn't seem to be any advantage of Win 7 other than a few games that need direct x 10 or later (I don't own or plan to buy any of these games). I use XP 64 bit mostly to backup XP 32 bit partition, and also for some 64 bit assembly and C/C++ programming (visual studio). I bought Win 7 because it was on sale and eventually I'll probably migrate over to it, bur for now, it's just for testing. Putting this in comparason, one of my neighbors is still using Windows 98 and AOL over dialup.

There are a lot of backup programs, but it's never quite clear how they work. My program simply copies files and folders from a partition into a folder I create on a large partition used for backup (or vice versa for restore), making it easy to restore selected files and to verify the backup or restore using windiff. It also tries to preserve short file names (8.3), but there's diminishing need for this (some old programs use shortnames in paths stored in the registry). It's also fairly quick since the source partitions and backup folders are on separate hard drives.

I'm wondering if using a second instance of Win 7 (or Vista) would solve the backup issue, but I don't plan to buy another copy of Win 7. I'll probably wait for Windows 8 before I decide to get another instance of something compatabile with NTFS v6.1. I can use the system image to backup the Win 7 OS partition, but restore seems to go very slow.

Still I'm not sure what was missing when I tried doing a backup / format / restore of the Win 7 OS partition from XP 64 bit. After the restore, Win 7 booted OK, and some apps, like calculator, ran just fine, but as mentioned above, IE8 reported that a program corrupted the selected search provider, although it seemed to run fine otherwise. So the end result was a partially messed up Win 7.

My copy program is fairly straight forward, other than it has to use GetTokenInformation(), LookupPrivilegeName(), and AdjustTokenPrivileges() to enable "restore" privilges in order to do the file copy and creation of all files (hidden, system, ...)
 
The stream name can be anything, so you could do something like:

echo hello > textfile.txt:mystream

The stream name will not appear in a directory listing. I know some older 3rd party backups didn't take streams into account. I would assume findfirst and findnext should pick these up as they are part of the windows API, but I'm not 100% sure of this.

http://en.wikipedia.org/wiki/NTFS#Alternate_data_streams_.28ADS.29
 

rcgldr

Distinguished
Oct 26, 2009
65
1
18,635
Apparently one issue is related to digital certificates or signatures. My guess is that additional directory entries are used to hold this information as opposed to being data stored in file(s), which is why the backup / format / restore fails since it only copies files and folders. I'm not sure how to backup (copy) the digital certificate / signatures or any other similarly stored information.

I made a unicode version of my copy program, but unicode wasn't the issue. There were some failures to create short file names (conflict with existing short file names during copy, since I don't copy folders in the same order, just the order they appear on the hard drive), but that's unlikely to have caused the Win 7 issue.