none
Unable to get past second boot when preparing system or otherwise obtaining traces with Xbootmgr.exe

    Question

  • I'm currently running Windows Performance Analyzer v 4.6 from the Windows 7 SDK on Windows 7 Ultimate (x64).

    I'm currently attempting to optimize this system's boot process. Unfortunately, the command "xbootmgr.exe –trace boot –prepSystem" generates the following error on the second restart:

    "Gave up waiting for Win7RTM physical prefetcher after 300 seconds.
    Could not wait for prefetcher.
    Couldn't find kenrel logger in active logger list.
    Couldn't find user-mode logger in active logger list."

    It manages one restart, but consistently fails with this error on the second restart.

    Does anyone have any ideas or a possible solution?
    Much appreciated.
    Thursday, October 22, 2009 4:04 AM

All replies

  • Hi,

    I got the same problem with a new HP TouchSmart 300 box running Win 7 x64 Home Premium Edition (stock registry settings).
    I tried the following command:"xbootmgr -trace rebootcycle -noprepreboot -verbosereadyboot"
    After automatic reboot I got the same message as you did (also reproduced in xbootmgr.log)

    Add to this the constant BSOD when using the DRIVERS flag with the command  xbootmgr -trace boot, I got the feeling that xbootmgr (from the 4.6 edition of the Windows Performance Kit) is not fully compliant with a stock version of Win 7 x64 (Home Premium edition at least).

    EDIT_1:

    OK, I found a solution to get rid of these errors messages and have" xbootmgr -trace rebootcycle -noprepreboot" working:
    I went into the registry, opened the key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SysMain
    and changed the Start data from the original 3 (manual start) to 0 (boot start). Notice that setting it to 2 (automatic start) wouldn't work.
    (I advise to create a restoration point before modifying the registry).

    EDIT_2:

    The boot defrag optimization, suggested by MS here , with" xbootmgr -trace rebootcycle -prepsystem" still has problems with the following messages in xbootmgr.log at the end of the 6th reboot:
    [2010/02/20-11:34:33.473] Launching attempt #1 to defragment disk...
    [2010/02/20-11:34:39.525] ProcessIdleTasks returned.
    [2010/02/20-11:34:39.525] Failed to defrag - status key is 'No', error description is 'Missing Registry Entries'. Retrying.
    [2010/02/20-11:34:39.525] Launching attempt #2 to defragment disk...
    [2010/02/20-11:34:45.126] ProcessIdleTasks returned.
    [2010/02/20-11:34:45.126] Failed to defrag - status key is 'No', error description is 'Missing Registry Entries'. Retrying.
    [2010/02/20-11:34:45.126] Launching attempt #3 to defragment disk...
    [2010/02/20-11:34:50.664] ProcessIdleTasks returned.
    [2010/02/20-11:34:50.664] Failed to defrag - status key is 'No', error description is 'Missing Registry Entries'. Retrying.
    [2010/02/20-11:34:50.664] Launching attempt #4 to defragment disk...
    [2010/02/20-11:34:56.951] ProcessIdleTasks returned.
    [2010/02/20-11:34:56.951] Failed to defrag - status key is 'No', error description is 'Missing Registry Entries'. Retrying.
    [2010/02/20-11:34:56.951] Launching attempt #5 to defragment disk...
    [2010/02/20-11:35:03.081] ProcessIdleTasks returned.
    [2010/02/20-11:35:03.081] Failed to defrag - status key is 'No', error description is 'Missing Registry Entries'. Retrying.
    [2010/02/20-11:35:03.081] Failed to defragment disk after 5 attempts.
    [2010/02/20-11:35:03.081] PrepareSystem failed.
    [2010/02/20-11:35:03.081] Stopping trace...
    [2010/02/20-11:35:03.737] Couldn't find kernel logger in active logger list.
    [2010/02/20-11:35:03.737] Couldn't find user-mode logger in active logger list.
    [2010/02/20-11:35:03.737] Unregistering auto-run...
    [2010/02/20-11:35:03.737] Completed auto-run change.
     
    EDIT_3

    OK, I may have found a solution to have the full 6 rebootcycles completed and boot defrag optimised:

    Under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction
    I had originally just 2 string values:
    • "OptimizeComplete" with a string data of "No"
    • "OptimizeError" with a string data of "Missing Registry Entries"
    I added the 3 following values:
    • "Enable" with a string  data of "Y"
    • "LcnStartLocation" with a string data of 0
    • "LcnEndLocation" with a string data of 0

    Under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Prefetcher
    I had originally no values
    I added this one:
    • "BootFilesOptimized" with a Double-Word data of 1

    With these added registry values, the "xbootmgr -trace rebootcycle -prepsystem" cycle performs without errors.

    The xbootmgr.log file has this information.

    [2010/02/20-14:28:25.786] Detected inactive Win7 physical (ReadyBoot) prefetcher (the SysMain service start type is 0).
    [2010/02/20-14:28:25.786] Registering for auto-run with a 120000 msec delay...
    [2010/02/20-14:28:25.786] Completed auto-run change.
    [2010/02/20-14:34:46.961] Detected inactive Win7 physical (ReadyBoot) prefetcher (the SysMain service start type is 0).
    [2010/02/20-14:34:46.977] Waiting for prefetcher...
    [2010/02/20-14:34:46.992] Saving prefetcher data...
    [2010/02/20-14:38:23.642] Detected inactive Win7 physical (ReadyBoot) prefetcher (the SysMain service start type is 0).
    [2010/02/20-14:38:23.673] Waiting for prefetcher...
    [2010/02/20-14:38:23.673] Saving prefetcher data...
    [2010/02/20-14:44:15.285] Detected inactive Win7 physical (ReadyBoot) prefetcher (the SysMain service start type is 0).
    [2010/02/20-14:44:15.300] Waiting for prefetcher...
    [2010/02/20-14:44:15.300] Saving prefetcher data...
    [2010/02/20-14:47:51.686] Detected inactive Win7 physical (ReadyBoot) prefetcher (the SysMain service start type is 0).
    [2010/02/20-14:47:51.701] Waiting for prefetcher...
    [2010/02/20-14:47:51.701] Saving prefetcher data...
    [2010/02/20-14:51:22.417] Detected inactive Win7 physical (ReadyBoot) prefetcher (the SysMain service start type is 0).
    [2010/02/20-14:51:22.448] Waiting for prefetcher...
    [2010/02/20-14:51:22.448] Saving prefetcher data...
    [2010/02/20-14:55:35.918] Detected inactive Win7 physical (ReadyBoot) prefetcher (the SysMain service start type is 0).
    [2010/02/20-14:55:35.934] Waiting for prefetcher...
    [2010/02/20-14:55:35.934] Saving prefetcher data...
    [2010/02/20-14:55:35.934] Preparing system...
    [2010/02/20-14:55:35.934] Launching attempt #1 to defragment disk...
    [2010/02/20-14:55:42.018] ProcessIdleTasks returned.
    [2010/02/20-14:55:42.018] Defrag was successful.
    [2010/02/20-14:55:42.018] Finished preparing disk for system preparation.
    [2010/02/20-14:55:42.018] Registering for auto-run with a 120000 msec delay...
    [2010/02/20-14:55:42.018] Completed auto-run change.

    The warnings about SysMain service start type do not seem to be a problem since the prefetcher data are found..
    • Proposed as answer by kernelist Saturday, February 20, 2010 9:34 AM
    Saturday, February 20, 2010 8:58 AM
  • Setting SysMain start type to 0 actually disables it! It can't be loaded by kernel because it is not a driver. 

    You just optimized nothing (it took 0 ms)

    • Detected inactive Win7 physical (ReadyBoot) prefetcher (the SysMain service start type is 0).
    • 2010/02/20-14:55:35.934] Waiting for prefetcher...
    • 2010/02/20-14:55:35.934] Saving prefetcher data...

    To solve problem, you need to:

    • Drop "c:\Windows\Prefetch" and create it
    • Reboot
    • Run "Rundll32.exe advapi32.dll,ProcessIdleTasks" to create layout.ini
    • Run xbootmgr -trace boot -prepSystem and it should work
    Tuesday, March 25, 2014 2:13 PM