Thread: Ugh, SYSTEM file corrupt. . .

  1. #1
    {Jaxom,Imriel,Liam}'s Dad Kennedy's Avatar
    Join Date
    Aug 2006
    Location
    Alabama
    Posts
    1,065

    Ugh, SYSTEM file corrupt. . .

    I wasn't at home when my Father-in-law cut through the wire from my fuse (yes fuse) box to my computer yesterday. I don't have auto shutdown from the UPS (but, will do this when I get this problem fixed) and so the computer went down hard. I now get the dreaded "Windows cannot start because the file ...system is corrupt or missing" message. I have a copy of an older system file from a few months ago when my system decided to rename C: to F:. I changed all the occurances of the F: back to C: in Linux, then replaced the file. The file size is about 8K smaller than what I have now.

    What I would like to do is to either (1) find software for Linux or Windows that will scan the SYSTEM hive and fix any problems, or (2) write my own hack for the file.

    My question(s) is(are) is there a pre-existing software utility that will repair the system hive (1) and/or is there a map of the SYSTEM hive file?

    EDIT: Guess I should have said that this is a Windows XP box. . .
    Last edited by Kennedy; 10-05-2006 at 11:34 AM.

  2. #2
    Reverse Engineer maxorator's Avatar
    Join Date
    Aug 2005
    Location
    Estonia
    Posts
    2,318
    What is actually "the system file"? Autoexec.bat, config.sys?
    "The Internet treats censorship as damage and routes around it." - John Gilmore

  3. #3
    {Jaxom,Imriel,Liam}'s Dad Kennedy's Avatar
    Join Date
    Aug 2006
    Location
    Alabama
    Posts
    1,065
    Quote Originally Posted by maxorator
    What is actually "the system file"? Autoexec.bat, config.sys?
    Not "the system file" but
    Quote Originally Posted by kennedy
    the file SYSTEM
    But to answer your question: system

  4. #4
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    What is actually "the system file"? Autoexec.bat, config.sys?
    Why would it matter since...

    EDIT: Guess I should have said that this is a Windows XP box. . .
    ...and XP doesn't use either of them?


    Reinstall XP. You had your drive on read ahead optimization which means it can and will lose/corrupt data if it is shut down amid a disk operation. Quite possible since your drive is always in use by XP.

  5. #5
    {Jaxom,Imriel,Liam}'s Dad Kennedy's Avatar
    Join Date
    Aug 2006
    Location
    Alabama
    Posts
    1,065
    Quote Originally Posted by Bubba
    Reinstall XP.
    This is what I'm trying NOT to do. If I have to I'll revert back to the 8K difference. . . but I know that I'll be asking for troubles.

    With a corrupt SYSTEM file, would I be able to bring that back into the registry via a registry import, even though it is corrupt -- assuming that the sucker is corrupt way down the line and not within the first part of it?

    BTW, I added the edit AFTER his post. . . so, we cannot be too hard on him, ie, my fault not his.

  6. #6
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    You must reinstall XP. The registry has nothing to do with the filesystem and more to do with telling the shell what has been installed and what components are available. The registry has nothing to do with system files.

    Reinstall XP.

    The only possible fix would be to find the file that is corrupt and find the CAB where that file exists. Extract the cab into a temp folder. Find the system file and then copy the file from the temp folder to the current location of the file.

    However this is a hack. Given you have a corrupt system file I would pretty much guarantee you have several corrupt files. Reinstalling XP is the only sure way to fix this issue.
    Last edited by VirtualAce; 10-06-2006 at 11:32 AM.

  7. #7
    Yes, my avatar is stolen anonytmouse's Avatar
    Join Date
    Dec 2002
    Posts
    2,544
    The SYSTEM file is where the SYSTEM registry hive is stored. This is where hardware information is stored. I had this same problem, although on Windows 2000. I used the restore method described here. However, several pages suggest that this method should not be used with an OEM install. The result of using this method was annoying (reinstallation of drivers, etc) but far less so than a complete reinstall. If you have a more recent backup, you could probably use that (it would probably also work on an OEM installed system). According to this page, you may also be able to use a more recent version from a restore point. There are more links on this page.

    I seem to remember reading that the registry files use a scheme to be always stable, so I'm not sure how these corruptions happen (maybe Windows can't control caching at the disk level?).

  8. #8
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    Oh if you are talking about system.dat then the fix is simple. Do a restore and go to your most recent restore point. This should fix all issues.

    The registry was being written to during a disk access and because you have read ahead optimization on, the buffer that contained the data was destroyed and thus never written to disk during the sudden shutdown. Somehow the registry does not match the actual file table or file index and thus it is flagged as corrupt. This happens during unforeseen power outages and other shutdowns with read ahead optimization on.

    Normally XP will detect a shutdown condition and will attempt to die as gracefully as possible. However since this was due to powerloss, Windows had no time to respond correctly.

    A system restore should fix the issue.

  9. #9
    {Jaxom,Imriel,Liam}'s Dad Kennedy's Avatar
    Join Date
    Aug 2006
    Location
    Alabama
    Posts
    1,065
    Ah what a wonderful world. . .

    Well, I'm a bit of a security Nazi therefore I _usually_ kill all the "protective" services that Windows offers, like, for example, System Restore. I just KNEW that I had done this. . . but I hadn't. So, I was able to boot off the WinXP disc, run recovery console, back-up all my registry (which cannot be done with Wild cards in the recovery console. . .), and copy the system file back from the restore point from the night before. . .

    One thing has gone right this weekend. . . at least.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. A development process
    By Noir in forum C Programming
    Replies: 37
    Last Post: 07-10-2011, 10:39 PM
  2. gcc link external library
    By spank in forum C Programming
    Replies: 6
    Last Post: 08-08-2007, 03:44 PM
  3. Basic text file encoder
    By Abda92 in forum C Programming
    Replies: 15
    Last Post: 05-22-2007, 01:19 PM
  4. Unknown Memory Leak in Init() Function
    By CodeHacker in forum Windows Programming
    Replies: 3
    Last Post: 07-09-2004, 09:54 AM
  5. Replies: 4
    Last Post: 10-21-2003, 04:28 PM