Other Third-Party ToolsMany companies provide specialist software for rescuing data or hard disk. Here are details of packages I recommend.
O&O Disk Recovery
www.oo-software.com
O&O Disk Recovery is a comprehensive package that performs several useful functions. The most commonly used function of the software is an unerase program to help recover files and folders that have been accidentally deleted. There are also other functions within the software that can provide recovery in scenarios such as the accidental formatting of a hard disk. This can be extremely useful, as in Windows 7 it can be annoyingly simple to accidentally format disks.
This software can be useful for rescuing data or a faulty disk in your PC, and you can also remove the hard disk from your PC and plug it into another computer to run these rescue tools on it.
Ashampoo WinOptimizer
www.ashampoo.com
Although Ashampoo WinOptimizer traditionally has not been used as a tool for rescuing a hard disk or data, it now contains a small utility that can help you do just that. This tool analyses your hard disk(s) to try to find defective areas or problems with the disk(s). It contains tools that can then be used to apply automatic repairs and fix some of the more common problems that you can encounter.
Other Third-Party Services
At some point, you might reach the stage where there’s nothing more you can do with your disk. If the disk includes critical data that you must recover, you will need to go to a professional data recovery specialist.
These companies offer extremely comprehensive services, and they can be hugely successful at recovering data from damaged hard disks, but they will not be inexpensive.
You can find data recovery specialists in your area by searching in your local telephone directory online or through a search engine.
Source of Information : Microsoft Press - Troubleshooting Windows 7 Inside Out
Showing posts with label Windows. Show all posts
Showing posts with label Windows. Show all posts
Zinstall and zPOD
www.zinstall.com
Zinstall and zPOD aren’t marketed or sold as Windows rescue tools, but you’d be surprised just how effective both can be when it comes to getting a damaged PC working again. Even if your PC has failed completely, as long as your hard disk or your copy of Windows 7 isn’t damaged, you can use Zinstall or zPOD to rescue the system, complete with all of your software, and be back up and running again quickly.
They’re slightly different types of software, but both get a copy of Windows running in a virtual machine (VM). Here’s a brief description of their primary functions.
Zinstall
Zinstall was designed primarily to ease the upgrade from Windows XP to Windows 7 by creating a VM of your copy of Windows XP to run in the new Windows 7 environment, complete with all of your programs. This means that when upgrading to Windows 7 from Windows XP, you can keep downtime to an absolute minimum and perform a clean install of all of your software and files into Windows 7 in your own time.
zPOD
zPOD works in the same way as Zinstall, but it allows you to copy the VM it creates to an external USB hard disk or even to a pen drive and run Windows from that device on any other computer. Both programs operate in an incredibly simple way by allowing you to create a VM with a single click. They automatically search for your installed operating systems and then enable you to quickly and easily choose a destination. Both software packages will work with any version of Windows, including Windows 7, and can even rescue a copy of Windows from a dead PC.
To rescue a copy of Windows 7 from a dead PC, follow these instructions.
1. Plug the hard disk from the dead PC into another computer. Remember to make sure both computers are turned off and disconnected from the electrical outlet before working inside the case.
2. Boot the working computer into the copy of Windows that’s installed on it.
3. Install the Zinstall or zPOD software on the working PC, and run it.
4. By default, Zinstall or zPOD will find the main, running copy of Windows. To point the software toward the copy of Windows on the imported hard disk, press Advanced.
5. You can choose to omit certain file types. By default, Zinstall and zPOD exclude any files in the Users folder. Indicate whether to include or omit other files in the Copy Filters panel of the Advanced settings window.
6. zPOD uses 256-bit encryption to secure the VM so you can carry it around with you, safe in the knowledge that only you can access this copy of Windows and your programs. Activate this option by setting up a password in the Security Settings panel of the Advanced settings window.
7. It could take several hours for Zinstall or zPOD to create the VM. When the process is complete, a utility for running the VM appears.
The single biggest advantage of zPOD and Zinstall is continuity of productivity. Simply put, this means that, as long as there is a spare computer available that you can use, you will always be able to keep working.
Although you can’t use Complete PC Backup, you can use other disk imaging utilities, such as Norton Ghost or Acronis True Image to create an image of the rescued copy of Windows 7. You might also be able to use a third-party tool to rescue programs from the damaged Windows 7 installation that you do not have the original installers for.
Either way, you now have a rescued copy of Windows 7 and your programs that you can continue using.
Zinstall or zPOD: Which is right for you?
If you intend to use the VM only on the PC that you create it on, then Zinstall will do, since it creates the VM to run on the computer where it is created. Use zPOD if you want to use your virtual copy of Windows 7 on other computers, too.
Source of Information : Microsoft Press - Troubleshooting Windows 7 Inside Out
Zinstall and zPOD aren’t marketed or sold as Windows rescue tools, but you’d be surprised just how effective both can be when it comes to getting a damaged PC working again. Even if your PC has failed completely, as long as your hard disk or your copy of Windows 7 isn’t damaged, you can use Zinstall or zPOD to rescue the system, complete with all of your software, and be back up and running again quickly.
They’re slightly different types of software, but both get a copy of Windows running in a virtual machine (VM). Here’s a brief description of their primary functions.
Zinstall
Zinstall was designed primarily to ease the upgrade from Windows XP to Windows 7 by creating a VM of your copy of Windows XP to run in the new Windows 7 environment, complete with all of your programs. This means that when upgrading to Windows 7 from Windows XP, you can keep downtime to an absolute minimum and perform a clean install of all of your software and files into Windows 7 in your own time.
zPOD
zPOD works in the same way as Zinstall, but it allows you to copy the VM it creates to an external USB hard disk or even to a pen drive and run Windows from that device on any other computer. Both programs operate in an incredibly simple way by allowing you to create a VM with a single click. They automatically search for your installed operating systems and then enable you to quickly and easily choose a destination. Both software packages will work with any version of Windows, including Windows 7, and can even rescue a copy of Windows from a dead PC.
To rescue a copy of Windows 7 from a dead PC, follow these instructions.
1. Plug the hard disk from the dead PC into another computer. Remember to make sure both computers are turned off and disconnected from the electrical outlet before working inside the case.
2. Boot the working computer into the copy of Windows that’s installed on it.
3. Install the Zinstall or zPOD software on the working PC, and run it.
4. By default, Zinstall or zPOD will find the main, running copy of Windows. To point the software toward the copy of Windows on the imported hard disk, press Advanced.
5. You can choose to omit certain file types. By default, Zinstall and zPOD exclude any files in the Users folder. Indicate whether to include or omit other files in the Copy Filters panel of the Advanced settings window.
6. zPOD uses 256-bit encryption to secure the VM so you can carry it around with you, safe in the knowledge that only you can access this copy of Windows and your programs. Activate this option by setting up a password in the Security Settings panel of the Advanced settings window.
7. It could take several hours for Zinstall or zPOD to create the VM. When the process is complete, a utility for running the VM appears.
The single biggest advantage of zPOD and Zinstall is continuity of productivity. Simply put, this means that, as long as there is a spare computer available that you can use, you will always be able to keep working.
Although you can’t use Complete PC Backup, you can use other disk imaging utilities, such as Norton Ghost or Acronis True Image to create an image of the rescued copy of Windows 7. You might also be able to use a third-party tool to rescue programs from the damaged Windows 7 installation that you do not have the original installers for.
Either way, you now have a rescued copy of Windows 7 and your programs that you can continue using.
Zinstall or zPOD: Which is right for you?
If you intend to use the VM only on the PC that you create it on, then Zinstall will do, since it creates the VM to run on the computer where it is created. Use zPOD if you want to use your virtual copy of Windows 7 on other computers, too.
Source of Information : Microsoft Press - Troubleshooting Windows 7 Inside Out
Windows 7 Third-Party Websites
There are hundreds of PC help websites, some of which require a subscription (although I wouldn’t recommend these). You should decide for yourself about the value of specific websites, but I recommend the following sites.
Tom’s Hardware
www.tomshardware.com
Tom’s Hardware is a long-standing website devoted to hardware and hardware problems. This site includes extensive forums containing a huge wealth of information, and experts are always available to help diagnose and fix difficult problems.
Tech PC Forums
www.tech-pc.com
Tech PC Forums is a forum website that contains a wealth of valuable information. Experts are available to answer your questions and help solve your computer-related problems.
Computing.net
www.computing.net
Run by the people behind Tom’s Hardware, Computing.net is an excellent resource for help with complex and difficult PC problems.
How-To Geek
www.howtogeek.com
How-To Geek helps you perform a wide variety of tasks in Windows 7 and other operating systems and software packages. Many tasks help resolve PC issues and problems.
Annoyances.org
www.annoyances.org
This is the accompanying website to the book Windows 7 Annoyances: Tips, Secrets, and Solutions by David A. Karp (O’Reilly Media, 2010). It’s an excellent archive of problems that you can search through to find solutions to common Windows 7 problems.'
Gibson Research
www.grc.com
Steve Gibson is a well-respected IT security expert. On the Gibson Research website, he provides many tools to help diagnose and repair security flaws in your installation of Windows.
ATI Support
support.amd.com
Graphics card problems are common with Windows. Fortunately, there are only two major manufacturers providing the core hardware for graphics card technology, so help is centralized. You can find support for an ATI-based graphics card at the ATI support website.
nVidia Support
www.nvidia.com/page/support.html
Similar to the ATI support page, the nVidia support website is the place to visit if you have an nVidia-based graphics card in your PC.
MSDN Diagnostics
msdn.microsoft.com/en-us/library/ee663269(v=VS.85).aspx
The Microsoft MSDN site offers an extensive section for diagnosing and troubleshooting Windows 7. This includes the Windows Troubleshooting Platform (WTP) that enables system administrators to write custom troubleshooting packs.
Within Windows
www.withinwindows.com
Software author Rafael Rivera has years of experience delving deep into Windows, producing fixes to undocumented features and providing software to enhance the functionality of Microsoft products.
The Long Climb
www.thelongclimb.com
The Long Climb is my own website. I offer PC support and updates on security and other issues with PCs and Windows. I can also be contacted through this website with any questions you may have.
Source of Information : Microsoft Press - Troubleshooting Windows 7 Inside Out
Tom’s Hardware
www.tomshardware.com
Tom’s Hardware is a long-standing website devoted to hardware and hardware problems. This site includes extensive forums containing a huge wealth of information, and experts are always available to help diagnose and fix difficult problems.
Tech PC Forums
www.tech-pc.com
Tech PC Forums is a forum website that contains a wealth of valuable information. Experts are available to answer your questions and help solve your computer-related problems.
Computing.net
www.computing.net
Run by the people behind Tom’s Hardware, Computing.net is an excellent resource for help with complex and difficult PC problems.
How-To Geek
www.howtogeek.com
How-To Geek helps you perform a wide variety of tasks in Windows 7 and other operating systems and software packages. Many tasks help resolve PC issues and problems.
Annoyances.org
www.annoyances.org
This is the accompanying website to the book Windows 7 Annoyances: Tips, Secrets, and Solutions by David A. Karp (O’Reilly Media, 2010). It’s an excellent archive of problems that you can search through to find solutions to common Windows 7 problems.'
Gibson Research
www.grc.com
Steve Gibson is a well-respected IT security expert. On the Gibson Research website, he provides many tools to help diagnose and repair security flaws in your installation of Windows.
ATI Support
support.amd.com
Graphics card problems are common with Windows. Fortunately, there are only two major manufacturers providing the core hardware for graphics card technology, so help is centralized. You can find support for an ATI-based graphics card at the ATI support website.
nVidia Support
www.nvidia.com/page/support.html
Similar to the ATI support page, the nVidia support website is the place to visit if you have an nVidia-based graphics card in your PC.
MSDN Diagnostics
msdn.microsoft.com/en-us/library/ee663269(v=VS.85).aspx
The Microsoft MSDN site offers an extensive section for diagnosing and troubleshooting Windows 7. This includes the Windows Troubleshooting Platform (WTP) that enables system administrators to write custom troubleshooting packs.
Within Windows
www.withinwindows.com
Software author Rafael Rivera has years of experience delving deep into Windows, producing fixes to undocumented features and providing software to enhance the functionality of Microsoft products.
The Long Climb
www.thelongclimb.com
The Long Climb is my own website. I offer PC support and updates on security and other issues with PCs and Windows. I can also be contacted through this website with any questions you may have.
Source of Information : Microsoft Press - Troubleshooting Windows 7 Inside Out
Windows Third-Party Software
You can download many different utilities, some for free and others for a fee, that will help solve problems on your PC. Some of these are more helpful than others. You should decide for yourself about the value of individual software packages, but I recommend the following packages.
Sisoftware Sandra Utilities
www.sisoftware.net
Sisoftware Sandra is an excellent information and diagnostic utility. This package’s extremely detailed reports about every aspect of your PC, including hardware, drivers, and installed software, can help enormously when diagnosing computer-related problems.
Create Report on the Tools tab in Sandra utilities is a useful tool that generates a complete report about your computer. This tool does everything the Windows 7 System Information panel and System Health Report do, but it provides even more detail about your PC.
Windows Sysinternals
www.sysinternals.com
Windows Sysinternals is a suite of tools and applications from Microsoft that help you manage, troubleshoot, and diagnose your Windows systems and applications. These extensive tools provide huge amounts of detail about your PC when troubleshooting problems. However, some of these tools are quite complex and are designed for experienced computer users.
Zinstall zPOD
www.zinstall.com
Zinstall zPOD is an excellent software package that enables you to turn your copy of Windows and all of your software into a virtual machine that can be stored on a removable hard disk or even a USB pen drive. You can then use this virtual machine on any PC. This means you can always have your copy of Windows and your programs (perhaps even your files) with you whenever you need them.
GoToAssist
www.gotoassist.com
GoToAssist is software that performs the same functions as Windows Remote Desktop and Windows Remote Assistance but offers a few additional functions for serious technical support. Most notably, it allows you to restart the remote computer (which can be essential when performing some support functions), and it runs on and from Apple Mac computers.
SpinRite
www.grc.com
Another software package held in extremely high regard by many computer professionals is SpinRite from computer security specialist Steve Gibson. This utility runs from a disk or USB flash drive and checks your hard disk for errors, physical or otherwise, that are causing malfunctions and/or data loss, then helps repair problems. It is an extremely useful piece of software.
Windows Memory Diagnostic
oca.microsoft.com/en/windiag.asp
The Windows 7 installation DVD contains a memory diagnostic tool, but Microsoft also provides this other memory diagnostic tool if your Windows 7 install DVD is lost or damaged and you can’t boot into the computer repair console in Windows 7.
Norton Ghost
www.symantec.com/ghost
Norton Ghost from Symantec is one of two packages on this list that create system images of Windows. Although this functionality is already built into Windows 7, these packages offer additional backup and restore functionality for people who work in a corporate environment.
Acronis True Image
www.acronis.com
Acronis True Image is another system image backup and restore application. This package is useful in business scenarios where you need more control over Windows 7 system images than is available through the Microsoft Windows Image Backup that ships as part of Windows 7.
Paragon Partition Manager
www.paragon-software.com
Sometimes you need a utility to manage the partitions on your hard disks. Windows 7 includes a partitioning tool, but it’s not especially powerful. Paragon Partition Manager can make working with partitions much simpler.
Acronis Disk Director Suite
www.acronis.com
Acronis Disk Director is another partitioning management package that will make working with and managing partitions on your hard disks much simpler.
Source of Information : Microsoft Press - Troubleshooting Windows 7 Inside Out
Sisoftware Sandra Utilities
www.sisoftware.net
Sisoftware Sandra is an excellent information and diagnostic utility. This package’s extremely detailed reports about every aspect of your PC, including hardware, drivers, and installed software, can help enormously when diagnosing computer-related problems.
Create Report on the Tools tab in Sandra utilities is a useful tool that generates a complete report about your computer. This tool does everything the Windows 7 System Information panel and System Health Report do, but it provides even more detail about your PC.
Windows Sysinternals
www.sysinternals.com
Windows Sysinternals is a suite of tools and applications from Microsoft that help you manage, troubleshoot, and diagnose your Windows systems and applications. These extensive tools provide huge amounts of detail about your PC when troubleshooting problems. However, some of these tools are quite complex and are designed for experienced computer users.
Zinstall zPOD
www.zinstall.com
Zinstall zPOD is an excellent software package that enables you to turn your copy of Windows and all of your software into a virtual machine that can be stored on a removable hard disk or even a USB pen drive. You can then use this virtual machine on any PC. This means you can always have your copy of Windows and your programs (perhaps even your files) with you whenever you need them.
GoToAssist
www.gotoassist.com
GoToAssist is software that performs the same functions as Windows Remote Desktop and Windows Remote Assistance but offers a few additional functions for serious technical support. Most notably, it allows you to restart the remote computer (which can be essential when performing some support functions), and it runs on and from Apple Mac computers.
SpinRite
www.grc.com
Another software package held in extremely high regard by many computer professionals is SpinRite from computer security specialist Steve Gibson. This utility runs from a disk or USB flash drive and checks your hard disk for errors, physical or otherwise, that are causing malfunctions and/or data loss, then helps repair problems. It is an extremely useful piece of software.
Windows Memory Diagnostic
oca.microsoft.com/en/windiag.asp
The Windows 7 installation DVD contains a memory diagnostic tool, but Microsoft also provides this other memory diagnostic tool if your Windows 7 install DVD is lost or damaged and you can’t boot into the computer repair console in Windows 7.
Norton Ghost
www.symantec.com/ghost
Norton Ghost from Symantec is one of two packages on this list that create system images of Windows. Although this functionality is already built into Windows 7, these packages offer additional backup and restore functionality for people who work in a corporate environment.
Acronis True Image
www.acronis.com
Acronis True Image is another system image backup and restore application. This package is useful in business scenarios where you need more control over Windows 7 system images than is available through the Microsoft Windows Image Backup that ships as part of Windows 7.
Paragon Partition Manager
www.paragon-software.com
Sometimes you need a utility to manage the partitions on your hard disks. Windows 7 includes a partitioning tool, but it’s not especially powerful. Paragon Partition Manager can make working with partitions much simpler.
Acronis Disk Director Suite
www.acronis.com
Acronis Disk Director is another partitioning management package that will make working with and managing partitions on your hard disks much simpler.
Source of Information : Microsoft Press - Troubleshooting Windows 7 Inside Out
Why Problems Occur with Windows
So many things can go wrong with Windows because every single PC is unique. It is highly unlikely, especially outside of a business space, that another PC exists with exactly the same hardware, installed software specification, and updates as yours. Your PC will contain a unique mix of software and hardware components, and there would be no way for any person or any company to ever test all of the possible combinations for stability. There are logo certification programs for Windows hardware and software, and a great many vendors do indeed put their products forward for testing by Microsoft. All that these tests prove, however, is that on a basic Windows system, they will be stable and not cause the system to crash. What can’t be tested is how a certain piece of software or hardware will interact with other software or hardware on your machine, some of which might not have been submitted for certification.
Keep Things Simple
The sheer number of software packages you have installed or the number of hardware devices you have plugged in can also cause problems on your computer. I always keep my Windows systems simple and uncomplicated. When it comes to hardware, I like multifunctional devices such as printer/scanner combinations, and I avoid unnecessary USB devices, such as USB attached speakers. Your PC already comes with audio out jacks that are perfectly good.
I also try to avoid installing all the software that comes with a new device. Wi-Fi adapters and printers are common culprits for loading your PC with bloatware. You may also find, if you have a new PC, that it came preloaded with lots of software that you don’t need and will never use. The software packages that come bundled with hardware devices broadly fall into the following categories.
• Trialware. Software that will expire after a period, normally 30 days. If you do not intend to buy the software after this time, you should uninstall it because it might, especially in the case of trial anti-virus software, leave programs and services running that can slow down Windows 7 or cause other problems.
• Dupliware. Programs that duplicate Windows features, such as Wi-Fi connection software, media players, or CD/DVD burners.
• Craplets. ‘Useful’ utilities that your PC supplier might have preloaded onto your computer. They are intended to simplify certain tasks, such as writing notes or accessing media files. They will always run when Windows launches at startup, although you will probably never use them.
Don’t Install Programs that Duplicate Features in Windows
Why would you want to install a software package that simply duplicates Windows functionality? By default, the operating system can burn CDs and DVDs (including audio discs and ISO image files), play media (video, TV, and audio), display photos and images, and much more.
Although a few Windows functionalities available in Windows Vista have been removed from Windows 7, such as the Calendar and Email software, a great many functions still exist. (Note that these programs have been moved to the excellent Microsoft Live Essentials Suite, which you can get from http://download.live.com.)
The more software you install on your PC, the more problems you invite. If at all possible, avoid having software packages installed that duplicate functionality that’s already in Windows. CD/DVD burning software is a good example. You should need these only if you have a Blu-Ray burner in your machine.
Source of Information : Microsoft Press - Troubleshooting Windows 7 Inside Out
Keep Things Simple
The sheer number of software packages you have installed or the number of hardware devices you have plugged in can also cause problems on your computer. I always keep my Windows systems simple and uncomplicated. When it comes to hardware, I like multifunctional devices such as printer/scanner combinations, and I avoid unnecessary USB devices, such as USB attached speakers. Your PC already comes with audio out jacks that are perfectly good.
I also try to avoid installing all the software that comes with a new device. Wi-Fi adapters and printers are common culprits for loading your PC with bloatware. You may also find, if you have a new PC, that it came preloaded with lots of software that you don’t need and will never use. The software packages that come bundled with hardware devices broadly fall into the following categories.
• Trialware. Software that will expire after a period, normally 30 days. If you do not intend to buy the software after this time, you should uninstall it because it might, especially in the case of trial anti-virus software, leave programs and services running that can slow down Windows 7 or cause other problems.
• Dupliware. Programs that duplicate Windows features, such as Wi-Fi connection software, media players, or CD/DVD burners.
• Craplets. ‘Useful’ utilities that your PC supplier might have preloaded onto your computer. They are intended to simplify certain tasks, such as writing notes or accessing media files. They will always run when Windows launches at startup, although you will probably never use them.
Don’t Install Programs that Duplicate Features in Windows
Why would you want to install a software package that simply duplicates Windows functionality? By default, the operating system can burn CDs and DVDs (including audio discs and ISO image files), play media (video, TV, and audio), display photos and images, and much more.
Although a few Windows functionalities available in Windows Vista have been removed from Windows 7, such as the Calendar and Email software, a great many functions still exist. (Note that these programs have been moved to the excellent Microsoft Live Essentials Suite, which you can get from http://download.live.com.)
The more software you install on your PC, the more problems you invite. If at all possible, avoid having software packages installed that duplicate functionality that’s already in Windows. CD/DVD burning software is a good example. You should need these only if you have a Blu-Ray burner in your machine.
Source of Information : Microsoft Press - Troubleshooting Windows 7 Inside Out
How Does Windows Compare to Other Operating Systems?
Windows was built over the foundation of the DOS disk operating system that shipped with the very first PCs from IBM in the early 1980s. This brought with it several problems, many of which still exist today. The biggest issue is the need to maintain compatibility with legacy hardware and software. DOS did not support or need to support multiple users or multitasking. Support for these has been added with later versions of Windows.
As computers have changed in the last 30 years, and with the introduction of new technologies such as the Internet, the need for extra security has come to the forefront of operating system design. Unfortunately, this has meant having to build security over the top of the existing Windows system. This has inevitably led to some compromises and security flaws, which have been exploited by the authors of malicious software. With Windows 8, it is rumored that the legacy support will be moved into a virtual machine. This means that the security subsystem in Windows 8 will be able to be treated differently, making it much more secure.
Most other desktop and server operating systems, including Linux, Apple OS X, and Google Chrome OS, are all built on top of an operating system called UNIX. This operating system was developed in 1969 and was initially designed to accommodate multitasking and multiusers on mainframe computers.
This means that user permissions and overall operating system security have always been handled differently in UNIX, with users never being given default administrator access to the operating system files. UNIX has slowly made its way from mainframe and minicomputers over the years to the desktop market, during which time this security system has remained unchanged.
None of this means that Windows 7 is an insecure and unstable operating system, quite the opposite. It is the most secure and stable operating system that Microsoft has ever released, and many experts believe it to be every bit as secure as a UNIX-based operating system. It is the vast popularity of Windows that has made it such a security target in the past.
Source of Information : Microsoft Press - Troubleshooting Windows 7 Inside Out
As computers have changed in the last 30 years, and with the introduction of new technologies such as the Internet, the need for extra security has come to the forefront of operating system design. Unfortunately, this has meant having to build security over the top of the existing Windows system. This has inevitably led to some compromises and security flaws, which have been exploited by the authors of malicious software. With Windows 8, it is rumored that the legacy support will be moved into a virtual machine. This means that the security subsystem in Windows 8 will be able to be treated differently, making it much more secure.
Most other desktop and server operating systems, including Linux, Apple OS X, and Google Chrome OS, are all built on top of an operating system called UNIX. This operating system was developed in 1969 and was initially designed to accommodate multitasking and multiusers on mainframe computers.
This means that user permissions and overall operating system security have always been handled differently in UNIX, with users never being given default administrator access to the operating system files. UNIX has slowly made its way from mainframe and minicomputers over the years to the desktop market, during which time this security system has remained unchanged.
None of this means that Windows 7 is an insecure and unstable operating system, quite the opposite. It is the most secure and stable operating system that Microsoft has ever released, and many experts believe it to be every bit as secure as a UNIX-based operating system. It is the vast popularity of Windows that has made it such a security target in the past.
Source of Information : Microsoft Press - Troubleshooting Windows 7 Inside Out
Single, Centralized System Cache and The Memory Manager
Single, Centralized System Cache
Some operating systems rely on each individual file system to cache data, a practice that results either in duplicated caching and memory management code in the operating system or in limitations on the kinds of data that can be cached. In contrast, Windows offers a centralized caching facility that caches all externally stored data, whether on local hard disks, floppy disks, network file servers, or CD-ROMs. Any data can be cached, whether it’s user data streams (the contents of a file and the ongoing read and write activity to that file) or file system metadata (such as directory and file headers).
The Memory Manager
One unusual aspect of the cache manager is that it never knows how much cached data is actually in physical memory. This statement might sound strange because the purpose of a cache is to keep a subset of frequently accessed data in physical memory as a way to improve I/O performance. The reason the cache manager doesn’t know how much data is in physical memory is that it accesses data by mapping views of files into system virtual address spaces, using standard section objects (file mapping objects in Windows API terminology). As addresses in these mapped views are accessed, the memory manager pages in blocks that aren’t in physical memory. And when memory demands dictate, the memory manager pages data out of the cache and back to the files that are open in (mapped into) the cache.
By caching on the basis of a virtual address space using mapped files, the cache manager avoids generating read or write I/O request packets (IRPs) to access the data for files it’s caching. Instead, it simply copies data to or from the virtual addresses where the portion of the cached file is mapped and relies on the memory manager to fault in (or out) the data into (or out of) memory as needed. This process allows the memory manager to make global tradeoffs on how much memory to give to the system cache versus how much to give to user processes.
Source of Information : Microsoft Press Windows Internals 5th Edition
Some operating systems rely on each individual file system to cache data, a practice that results either in duplicated caching and memory management code in the operating system or in limitations on the kinds of data that can be cached. In contrast, Windows offers a centralized caching facility that caches all externally stored data, whether on local hard disks, floppy disks, network file servers, or CD-ROMs. Any data can be cached, whether it’s user data streams (the contents of a file and the ongoing read and write activity to that file) or file system metadata (such as directory and file headers).
The Memory Manager
One unusual aspect of the cache manager is that it never knows how much cached data is actually in physical memory. This statement might sound strange because the purpose of a cache is to keep a subset of frequently accessed data in physical memory as a way to improve I/O performance. The reason the cache manager doesn’t know how much data is in physical memory is that it accesses data by mapping views of files into system virtual address spaces, using standard section objects (file mapping objects in Windows API terminology). As addresses in these mapped views are accessed, the memory manager pages in blocks that aren’t in physical memory. And when memory demands dictate, the memory manager pages data out of the cache and back to the files that are open in (mapped into) the cache.
By caching on the basis of a virtual address space using mapped files, the cache manager avoids generating read or write I/O request packets (IRPs) to access the data for files it’s caching. Instead, it simply copies data to or from the virtual addresses where the portion of the cached file is mapped and relies on the memory manager to fault in (or out) the data into (or out of) memory as needed. This process allows the memory manager to make global tradeoffs on how much memory to give to the system cache versus how much to give to user processes.
Source of Information : Microsoft Press Windows Internals 5th Edition
Cache Manager
The cache manager is a set of kernel-mode functions and system threads that cooperate with the memory manager to provide data caching for all Windows file system drivers (both local and network).
Key Features of the Cache Manager
The cache manager has several key features:
• Supports all file system types (both local and network), thus removing the need for each file system to implement its own cache management code
• Uses the memory manager to control which parts of which files are in physical memory (trading off demands for physical memory between user processes and the operating system)
• Caches data on a virtual block basis (offsets within a file)—in contrast to many caching systems, which cache on a logical block basis (offsets within a disk volume)—allowing
for intelligent read-ahead and high-speed access to the cache without involving file system drivers.
• Supports “hints” passed by applications at file open time (such as random versus sequential access, temporary file creation, and so on)
• Supports recoverable file systems (for example, those that use transaction logging) to recover data after a system failure
None of the cache manager’s internal functions are outlined in this chapter beyond the depth required to explain how the cache manager works. The programming interfaces to the cache manager are documented in the Windows Driver Kit (WDK). For more information about the WDK, see www.microsoft.com/whdc/devtools/wdk/default.mspx.
Source of Information : Microsoft Press Windows Internals 5th Edition
Key Features of the Cache Manager
The cache manager has several key features:
• Supports all file system types (both local and network), thus removing the need for each file system to implement its own cache management code
• Uses the memory manager to control which parts of which files are in physical memory (trading off demands for physical memory between user processes and the operating system)
• Caches data on a virtual block basis (offsets within a file)—in contrast to many caching systems, which cache on a logical block basis (offsets within a disk volume)—allowing
for intelligent read-ahead and high-speed access to the cache without involving file system drivers.
• Supports “hints” passed by applications at file open time (such as random versus sequential access, temporary file creation, and so on)
• Supports recoverable file systems (for example, those that use transaction logging) to recover data after a system failure
None of the cache manager’s internal functions are outlined in this chapter beyond the depth required to explain how the cache manager works. The programming interfaces to the cache manager are documented in the Windows Driver Kit (WDK). For more information about the WDK, see www.microsoft.com/whdc/devtools/wdk/default.mspx.
Source of Information : Microsoft Press Windows Internals 5th Edition
Shutdown
If someone is logged on and a process initiates a shutdown by calling the Windows Exit WindowsEx function, a message is sent to that session’s Csrss instructing it to perform the shutdown. Csrss in turn impersonates the caller and sends an RPC message to Winlogon, telling it to perform a system shutdown. Winlogon then impersonates the currently logged-on user (who might or might not have the same security context as the user who initiated the system shutdown) and calls ExitWindowsEx with some special internal flags. Again, this call causes a message to be sent to the Csrss process inside that session, requesting a system shutdown.
This time, Csrss sees that the request is from Winlogon and loops through all the processes in the logon session of the interactive user (again, not the user who requested a shutdown) in reverse order of their shutdown level. A process can specify a shutdown level, which indicates to the system when they want to exit with respect to other processes, by calling SetProcessShutdownParameters. Valid shutdown levels are in the range 0 through 1023, and the default level is 640. Explorer, for example, sets its shutdown level to 2 and Task Manager specifies 1. For each process that owns a top-level window, Csrss sends the WM_QUERYENDSESSION message to each thread in the process that has a Windows message loop. If the thread returns TRUE, the system shutdown can proceed. Csrss then sends the WM_ENDSESSION Windows message to the thread to request it to exit. Csrss waits the number of seconds defined in HKCU\Control Panel\Desktop\HungAppTimeout for the thread to exit. (The default is 5000 milliseconds.)
If the thread doesn’t exit before the timeout, Csrss fades out the screen and displays the hung-program screen. (You can disable this screen by changing the registry value HKCU\Control Panel\Desktop\AutoEndTasks to 1.) This screen indicates which programs are currently running and, if available, their current state. Windows indicates which program isn’t shutting down in a timely manner and gives the user a choice of either killing the process or aborting the shutdown. (There is no timeout on this screen, which means that a shutdown request could wait forever at this point.) Additionally, third-party applications can add their own specific information regarding state—for example, a virtualization product could display the number of actively running virtual machines.
If the thread does exit before the timeout, Csrss continues sending the WM_QUERYENDSESSION/ WM_ENDSESSION message pairs to the other threads in the process that own windows. Once all the threads that own windows in the process have exited, Csrss terminates the process and goes on to the next process in the interactive session.
If Csrss finds a console application, it invokes the console control handler by sending the CTRL_LOGOFF_EVENT event. (Only service processes receive the CTRL_SHUTDOWN_EVENT event on shutdown.) If the handler returns FALSE, Csrss kills the process. If the handler returns TRUE or doesn’t respond by the number of seconds defined by HKCU\Control Panel\Desktop\WaitToKillAppTimeout (the default is 20,000 milliseconds), Csrss displays the hung-program.
Next, Winlogon calls ExitWindowsEx to have Csrss terminate any COM processes that are part of the interactive user’s session.
At this point, all the processes in the interactive user’s session have been terminated. Wininit next calls ExitWindowsEx, which this time executes within the system process context. This causes Wininit to send a message to the Csrss part of session 0, where the services live. Csrss then looks at all the processes belonging to the system context and performs and sends the WM_QUERYENDSESSION/WM_ENDSESSION messages to GUI threads (as before). Instead of sending CTRL_LOGOFF_EVENT, however, it sends CTRL_ SHUTDOWN_EVENT to console applications that have registered control handlers. Note that the SCM is a console program that does register a control handler. When it receives the shutdown request, it in turn sends the service shutdown control message to all services that registered for shutdown notification.
Although Csrss performs the same timeouts as when it was terminating the user processes, it doesn’t display any dialog boxes and doesn’t kill any processes. (The registry values for the system process timeouts are taken from the default user profile.) These timeouts simply allow system processes a chance to clean up and exit before the system shuts down. Therefore, many system processes are in fact still running when the system shuts down, such as Smss, Wininit, Services, and Lsass.
Once Csrss has finished its pass notifying system processes that the system is shutting down, Winlogon finishes the shutdown process by calling the executive subsystem function NtShutdownSystem. This function calls the function PoSetSystemPowerState to orchestrate the shutdown of drivers and the rest of the executive subsystems (Plug and Play manager, power manager, executive, I/O manager, configuration manager, and memory manager).
For example, PoSetSystemPowerState calls the I/O manager to send shutdown I/O packets to all device drivers that have requested shutdown notification. This action gives device drivers a chance to perform any special processing their device might require before Windows exits. The stacks of worker threads are swapped in, the configuration manager flushes any modified registry data to disk, and the memory manager writes all modified pages containing file data back to their respective files. If the option to clear the paging file at shutdown is enabled, the memory manager clears the paging file at this time. The I/O manager is called a second time to inform the file system drivers that the system is shutting down. System shutdown ends in the power manager. The action the power manager takes depends on whether the user specified a shutdown, a reboot, or a power down.
Source of Information : Microsoft Press Windows Internals 5th Edition
This time, Csrss sees that the request is from Winlogon and loops through all the processes in the logon session of the interactive user (again, not the user who requested a shutdown) in reverse order of their shutdown level. A process can specify a shutdown level, which indicates to the system when they want to exit with respect to other processes, by calling SetProcessShutdownParameters. Valid shutdown levels are in the range 0 through 1023, and the default level is 640. Explorer, for example, sets its shutdown level to 2 and Task Manager specifies 1. For each process that owns a top-level window, Csrss sends the WM_QUERYENDSESSION message to each thread in the process that has a Windows message loop. If the thread returns TRUE, the system shutdown can proceed. Csrss then sends the WM_ENDSESSION Windows message to the thread to request it to exit. Csrss waits the number of seconds defined in HKCU\Control Panel\Desktop\HungAppTimeout for the thread to exit. (The default is 5000 milliseconds.)
If the thread doesn’t exit before the timeout, Csrss fades out the screen and displays the hung-program screen. (You can disable this screen by changing the registry value HKCU\Control Panel\Desktop\AutoEndTasks to 1.) This screen indicates which programs are currently running and, if available, their current state. Windows indicates which program isn’t shutting down in a timely manner and gives the user a choice of either killing the process or aborting the shutdown. (There is no timeout on this screen, which means that a shutdown request could wait forever at this point.) Additionally, third-party applications can add their own specific information regarding state—for example, a virtualization product could display the number of actively running virtual machines.
If the thread does exit before the timeout, Csrss continues sending the WM_QUERYENDSESSION/ WM_ENDSESSION message pairs to the other threads in the process that own windows. Once all the threads that own windows in the process have exited, Csrss terminates the process and goes on to the next process in the interactive session.
If Csrss finds a console application, it invokes the console control handler by sending the CTRL_LOGOFF_EVENT event. (Only service processes receive the CTRL_SHUTDOWN_EVENT event on shutdown.) If the handler returns FALSE, Csrss kills the process. If the handler returns TRUE or doesn’t respond by the number of seconds defined by HKCU\Control Panel\Desktop\WaitToKillAppTimeout (the default is 20,000 milliseconds), Csrss displays the hung-program.
Next, Winlogon calls ExitWindowsEx to have Csrss terminate any COM processes that are part of the interactive user’s session.
At this point, all the processes in the interactive user’s session have been terminated. Wininit next calls ExitWindowsEx, which this time executes within the system process context. This causes Wininit to send a message to the Csrss part of session 0, where the services live. Csrss then looks at all the processes belonging to the system context and performs and sends the WM_QUERYENDSESSION/WM_ENDSESSION messages to GUI threads (as before). Instead of sending CTRL_LOGOFF_EVENT, however, it sends CTRL_ SHUTDOWN_EVENT to console applications that have registered control handlers. Note that the SCM is a console program that does register a control handler. When it receives the shutdown request, it in turn sends the service shutdown control message to all services that registered for shutdown notification.
Although Csrss performs the same timeouts as when it was terminating the user processes, it doesn’t display any dialog boxes and doesn’t kill any processes. (The registry values for the system process timeouts are taken from the default user profile.) These timeouts simply allow system processes a chance to clean up and exit before the system shuts down. Therefore, many system processes are in fact still running when the system shuts down, such as Smss, Wininit, Services, and Lsass.
Once Csrss has finished its pass notifying system processes that the system is shutting down, Winlogon finishes the shutdown process by calling the executive subsystem function NtShutdownSystem. This function calls the function PoSetSystemPowerState to orchestrate the shutdown of drivers and the rest of the executive subsystems (Plug and Play manager, power manager, executive, I/O manager, configuration manager, and memory manager).
For example, PoSetSystemPowerState calls the I/O manager to send shutdown I/O packets to all device drivers that have requested shutdown notification. This action gives device drivers a chance to perform any special processing their device might require before Windows exits. The stacks of worker threads are swapped in, the configuration manager flushes any modified registry data to disk, and the memory manager writes all modified pages containing file data back to their respective files. If the option to clear the paging file at shutdown is enabled, the memory manager clears the paging file at this time. The I/O manager is called a second time to inform the file system drivers that the system is shutting down. System shutdown ends in the power manager. The action the power manager takes depends on whether the user specified a shutdown, a reboot, or a power down.
Source of Information : Microsoft Press Windows Internals 5th Edition
Windows Resource Protection
To preserve the integrity of the many components involved in the boot process, as well as other critical Windows files, libraries, and applications, Windows implements a technology called Windows Resource Protection (WRP). WRP is implemented through access control lists (ACLs) that protect critical system files on the machine. It is also exposed through an API (located in \Windows\System32\Sfc.dll and \Windows\System32\Sfc_os.dll) that can be accessed by the Sfc.exe utility to manually check a file for corruption and restore it.
WRP will also protect entire critical folders if required, even locking down the folder so that it is inaccessible by administrators (without modifying the access control list on the folder). The only supported way to modify WRP-protected files is through the Windows Modules Installer service, which can run under the TrustedInstaller account. This service is used for the installation of patches, service packs, hotfixes, and Windows Update. This account has access to the various protected files and is trusted by the system (as its name implies) to modify critical files and replace them. WRP also protects critical registry keys, and it may even lock entire registry trees if all the values and subkeys are considered to be critical.
Unlike the previous incarnation of WRP, called WFP (Windows File Protection), this implementation does not make use of file and directory change notifications to prevent replacement of critical files. Instead, the ACL on protected files, directories, or registry keys is set so that only the TrustedInstaller account is able to modify or delete these files. Application developers can use the SfcIsFileProtected or SfcIsKeyProtected APIs to check whether a file or registry key is locked down.
For backward compatibility, certain installers are considered well-known—an application compatibility shim exists that will suppress the “access denied” error that certain installers would receive while attempting to modify WRP-protected resources. Instead, the installer receives a fake “success” code, but the modification isn’t made. This virtualization is similar to the User Access Control (UAC) virtualization technology, but it applies to write operations as well. It applies if the following are true:
• The application is a legacy application, meaning that it does not contain a manifest file compatible with Windows Vista or Windows Server 2008 with the requestedExecutionLevel value set.
• The application is trying to modify a WRP-protected resource (the file or registry key contains the TrustedInstaller SID).
• The application is being run under an administrator account (always true on systems with UAC enabled because of automatic installer program detection).
WRP copies files that are needed to restart Windows to the cache directory located at
\Windows\winsxs\Backup. Critical files that are not needed to restart Windows are not copied to the cache directory. The size of the cache directory and the list of files copied to the cache cannot be modified. To recover a file from the cache directory, you can use the System File Checker (Sfc.exe) tool, which can scan your system for modified protected files and restore them from a good copy.
Source of Information : Microsoft Press Windows Internals 5th Edition
WRP will also protect entire critical folders if required, even locking down the folder so that it is inaccessible by administrators (without modifying the access control list on the folder). The only supported way to modify WRP-protected files is through the Windows Modules Installer service, which can run under the TrustedInstaller account. This service is used for the installation of patches, service packs, hotfixes, and Windows Update. This account has access to the various protected files and is trusted by the system (as its name implies) to modify critical files and replace them. WRP also protects critical registry keys, and it may even lock entire registry trees if all the values and subkeys are considered to be critical.
Unlike the previous incarnation of WRP, called WFP (Windows File Protection), this implementation does not make use of file and directory change notifications to prevent replacement of critical files. Instead, the ACL on protected files, directories, or registry keys is set so that only the TrustedInstaller account is able to modify or delete these files. Application developers can use the SfcIsFileProtected or SfcIsKeyProtected APIs to check whether a file or registry key is locked down.
For backward compatibility, certain installers are considered well-known—an application compatibility shim exists that will suppress the “access denied” error that certain installers would receive while attempting to modify WRP-protected resources. Instead, the installer receives a fake “success” code, but the modification isn’t made. This virtualization is similar to the User Access Control (UAC) virtualization technology, but it applies to write operations as well. It applies if the following are true:
• The application is a legacy application, meaning that it does not contain a manifest file compatible with Windows Vista or Windows Server 2008 with the requestedExecutionLevel value set.
• The application is trying to modify a WRP-protected resource (the file or registry key contains the TrustedInstaller SID).
• The application is being run under an administrator account (always true on systems with UAC enabled because of automatic installer program detection).
WRP copies files that are needed to restart Windows to the cache directory located at
\Windows\winsxs\Backup. Critical files that are not needed to restart Windows are not copied to the cache directory. The size of the cache directory and the list of files copied to the cache cannot be modified. To recover a file from the cache directory, you can use the System File Checker (Sfc.exe) tool, which can scan your system for modified protected files and restore them from a good copy.
Source of Information : Microsoft Press Windows Internals 5th Edition
Solving Common Boot Problems “Part II”
In some cases, multiple system files are deleted or become corrupt, so the repair process can involve multiple reboots and boot failures as you repair the files one by one. If you believe the system file corruption to be extensive, you should consider restoring the system from a backup image, such as one generated by Windows Vista CompletePC Backup or from a system restore point.
When you run Windows Backup (located in the System folder under Accessories on the Start menu), you can generate a CompletePC backup image, which includes all the files on the system and boot volumes, plus a floppy disk on which it stores information about the system’s disks and volumes. To restore a system from an ASR backup image, back up boot from the Windows setup media and press F2 when prompted. If you do not have a backup from which to restore, a last resort is to execute a Windows repair install: boot from the Windows setup media, and follow the wizard as if you were going to perform a new installation. The wizard will ask you whether you want to perform a repair or fresh install. When you tell it that you want to repair, Setup reinstalls all system files, leaving your application data and registry settings intact.
System Hive Corruption
• Symptoms If the System registry hive is missing or corrupted, Winload will display the
message “Windows could not start because the following file is missing or corrupt:
\WINDOWS\SYSTEM32\CONFIG\SYSTEM,” on a black screen after the BIOS POST.
• Causes The System registry hive, which contains configuration information necessary for the system to boot, has become corrupt or has been deleted.
• Resolution Boot into the Windows Recovery Environment, choose the Command Prompt option, and then execute the chkdsk command. If the problem is not corrected, obtain a backup of the System registry hive. Windows makes copies of the registry hives every 12 hours (keeping the immediately previous copy with a .OLD extension) in a folder called \Windows\System32\Config\RegBack, so copy the file named System to
\Windows\System32\Config.
If System Restore is enabled, you can often obtain a more recent backup of the registry hives, including the System hive; from the most recent restore point. You can choose System Restore from the Windows Recovery Environment to restore your registry from the last restore point.
Post–Splash Screen Crash or Hang
• Symptoms Problems that occur after the Windows splash screen displays, the desktop appears, or you log on fall into this category and can appear as a blue screen crash or a hang, where the entire system is frozen or the mouse cursor tracks the mouse but the system is otherwise unresponsive.
• Causes These problems are almost always a result of a bug in a device driver, but they can sometimes be the result of corruption of a registry hive other than the System hive.
• Resolution You can take several steps to try and correct the problem. The first thing you should try is the last known good configuration. Last known good (LKG), consists of the registry control set that was last used to boot the system successfully. Because a control set includes core system configuration and the device driver and services registration database, using a version that does not reflect changes or newly installed drivers or services might avoid the source of the problem. You access last known good by pressing the F8 key early in the boot process to access the same menu from which you can boot into safe mode.
When you boot into LKG, the system saves the control set that you are avoiding and labels it as the failed control set. You can leverage the failed control set in cases where LKG makes a system bootable to determine what was causing the system to fail to boot by exporting the contents of the current control set of the successful boot and the failed control set to .reg files. You do this by using the Regedit’s export functionality, which you access under the File menu:
1. Run Regedit, and select HKLM\SYSTEM\CurrentControlSet.
2. Select Export from the File menu, and save to a file named good.reg.
3. Open HKLM\SYSTEM\Select, read the value of Failed, and select the subkey named HKLM\SYSTEM\ControlXXX, where XXX is the value of Failed.
4. Export the contents of the control set to bad.reg.
5. Use WordPad (which is found under Accessories on the Start menu) to globally replace all instances of CurrentControlSet in good.reg with ControlSet.
6. Use WordPad to change all instances of ControlXXX (replacing XXX with the value of the Failed control set) in bad.reg with ControlSet.
7. Run Windiff from the Support Tools, and compare the two files.
The differences between a failed control set and a good one can be numerous, so you should focus your examination on changes beneath the Control subkey as well as under the Parameters subkeys of drivers and services registered in the Services subkey. Ignore changes made to Enum subkeys of driver registry keys in the Services branch of the control set.
If the problem you’re experiencing is caused by a driver or service that was present on the system since before the last successful boot, LKG will not make the system bootable. Similarly, if a problematic configuration setting changed outside the control set or was made before the last successful boot, LKG will not help. In those cases, the next option to try is safe mode (described earlier in this section). If the system boots successfully in safe mode and you know that particular driver was causing the normal boot to fail, you can disable the driver by using the Device Manager (accessible from the Hardware tab of the System Control Panel item). To do so, select the driver in question and choose Disable from the Action menu. If you recently updated the driver, and believe that the update introduced a bug, you can choose to roll back the driver to its previous version instead, also with the Device Manager. To restore a driver to its previous version, double-click on the device to open its Properties dialog box and click Roll Back Driver on the Driver tab.
On systems with System Restore enabled, an option when LKG fails is to roll back all system state (as defined by System Restore) to a previous point in time. Safe mode detects the existence of restore points, and when they are present it will ask you whether you want to log on to the installation to perform a manual diagnosis and repair or launch the System Restore Wizard. Using System Restore to make a system bootable again is attractive when you know the cause of a problem and want the repair to be automatic or when you don’t know the cause but do not want to invest time to determine the cause.
If System Restore is not an option or you want to determine the cause of a crash during the normal boot and the system boots successfully in safe mode, attempt to obtain a boot log from the unsuccessful boot by pressing F8 to access the special boot menu and choosing the boot logging option. Session Manager (\Windows\System32\Smss.exe) saves a log of the boot that includes a record of device drivers that the system loaded and chose not to load to \Windows\ntbtlog.txt, so you’ll obtain a boot log if the crash or hang occurs after Session Manager initializes. When you reboot into safe mode, the system appends new entries to the existing boot log. Extract the portions of the log file that refer to the failed attempt and safe-mode boots into separate files. Strip out lines that contain the text “Did not load driver”, and then compare them with a text comparison tool such as Windiff. One by one, disable the drivers that loaded during the normal boot but not in the safe-mode boot until the system boots successfully again. (Then reenable the drivers that were not responsible for the problem.)
If you cannot obtain a boot log from the normal boot (for instance, because the system is crashing before Session Manager initializes), if the system also crashes during the safe mode boot, or if a comparison of boot logs from the normal and safe-mode boots do not reveal any significant differences (for example, when the driver that’s crashing the normal boot starts after Session Manager initializes), the next tool to try is the Driver Verifier combined with crash dump analysis.
Source of Information : Microsoft Press Windows Internals 5th Edition
When you run Windows Backup (located in the System folder under Accessories on the Start menu), you can generate a CompletePC backup image, which includes all the files on the system and boot volumes, plus a floppy disk on which it stores information about the system’s disks and volumes. To restore a system from an ASR backup image, back up boot from the Windows setup media and press F2 when prompted. If you do not have a backup from which to restore, a last resort is to execute a Windows repair install: boot from the Windows setup media, and follow the wizard as if you were going to perform a new installation. The wizard will ask you whether you want to perform a repair or fresh install. When you tell it that you want to repair, Setup reinstalls all system files, leaving your application data and registry settings intact.
System Hive Corruption
• Symptoms If the System registry hive is missing or corrupted, Winload will display the
message “Windows could not start because the following file is missing or corrupt:
\WINDOWS\SYSTEM32\CONFIG\SYSTEM,” on a black screen after the BIOS POST.
• Causes The System registry hive, which contains configuration information necessary for the system to boot, has become corrupt or has been deleted.
• Resolution Boot into the Windows Recovery Environment, choose the Command Prompt option, and then execute the chkdsk command. If the problem is not corrected, obtain a backup of the System registry hive. Windows makes copies of the registry hives every 12 hours (keeping the immediately previous copy with a .OLD extension) in a folder called \Windows\System32\Config\RegBack, so copy the file named System to
\Windows\System32\Config.
If System Restore is enabled, you can often obtain a more recent backup of the registry hives, including the System hive; from the most recent restore point. You can choose System Restore from the Windows Recovery Environment to restore your registry from the last restore point.
Post–Splash Screen Crash or Hang
• Symptoms Problems that occur after the Windows splash screen displays, the desktop appears, or you log on fall into this category and can appear as a blue screen crash or a hang, where the entire system is frozen or the mouse cursor tracks the mouse but the system is otherwise unresponsive.
• Causes These problems are almost always a result of a bug in a device driver, but they can sometimes be the result of corruption of a registry hive other than the System hive.
• Resolution You can take several steps to try and correct the problem. The first thing you should try is the last known good configuration. Last known good (LKG), consists of the registry control set that was last used to boot the system successfully. Because a control set includes core system configuration and the device driver and services registration database, using a version that does not reflect changes or newly installed drivers or services might avoid the source of the problem. You access last known good by pressing the F8 key early in the boot process to access the same menu from which you can boot into safe mode.
When you boot into LKG, the system saves the control set that you are avoiding and labels it as the failed control set. You can leverage the failed control set in cases where LKG makes a system bootable to determine what was causing the system to fail to boot by exporting the contents of the current control set of the successful boot and the failed control set to .reg files. You do this by using the Regedit’s export functionality, which you access under the File menu:
1. Run Regedit, and select HKLM\SYSTEM\CurrentControlSet.
2. Select Export from the File menu, and save to a file named good.reg.
3. Open HKLM\SYSTEM\Select, read the value of Failed, and select the subkey named HKLM\SYSTEM\ControlXXX, where XXX is the value of Failed.
4. Export the contents of the control set to bad.reg.
5. Use WordPad (which is found under Accessories on the Start menu) to globally replace all instances of CurrentControlSet in good.reg with ControlSet.
6. Use WordPad to change all instances of ControlXXX (replacing XXX with the value of the Failed control set) in bad.reg with ControlSet.
7. Run Windiff from the Support Tools, and compare the two files.
The differences between a failed control set and a good one can be numerous, so you should focus your examination on changes beneath the Control subkey as well as under the Parameters subkeys of drivers and services registered in the Services subkey. Ignore changes made to Enum subkeys of driver registry keys in the Services branch of the control set.
If the problem you’re experiencing is caused by a driver or service that was present on the system since before the last successful boot, LKG will not make the system bootable. Similarly, if a problematic configuration setting changed outside the control set or was made before the last successful boot, LKG will not help. In those cases, the next option to try is safe mode (described earlier in this section). If the system boots successfully in safe mode and you know that particular driver was causing the normal boot to fail, you can disable the driver by using the Device Manager (accessible from the Hardware tab of the System Control Panel item). To do so, select the driver in question and choose Disable from the Action menu. If you recently updated the driver, and believe that the update introduced a bug, you can choose to roll back the driver to its previous version instead, also with the Device Manager. To restore a driver to its previous version, double-click on the device to open its Properties dialog box and click Roll Back Driver on the Driver tab.
On systems with System Restore enabled, an option when LKG fails is to roll back all system state (as defined by System Restore) to a previous point in time. Safe mode detects the existence of restore points, and when they are present it will ask you whether you want to log on to the installation to perform a manual diagnosis and repair or launch the System Restore Wizard. Using System Restore to make a system bootable again is attractive when you know the cause of a problem and want the repair to be automatic or when you don’t know the cause but do not want to invest time to determine the cause.
If System Restore is not an option or you want to determine the cause of a crash during the normal boot and the system boots successfully in safe mode, attempt to obtain a boot log from the unsuccessful boot by pressing F8 to access the special boot menu and choosing the boot logging option. Session Manager (\Windows\System32\Smss.exe) saves a log of the boot that includes a record of device drivers that the system loaded and chose not to load to \Windows\ntbtlog.txt, so you’ll obtain a boot log if the crash or hang occurs after Session Manager initializes. When you reboot into safe mode, the system appends new entries to the existing boot log. Extract the portions of the log file that refer to the failed attempt and safe-mode boots into separate files. Strip out lines that contain the text “Did not load driver”, and then compare them with a text comparison tool such as Windiff. One by one, disable the drivers that loaded during the normal boot but not in the safe-mode boot until the system boots successfully again. (Then reenable the drivers that were not responsible for the problem.)
If you cannot obtain a boot log from the normal boot (for instance, because the system is crashing before Session Manager initializes), if the system also crashes during the safe mode boot, or if a comparison of boot logs from the normal and safe-mode boots do not reveal any significant differences (for example, when the driver that’s crashing the normal boot starts after Session Manager initializes), the next tool to try is the Driver Verifier combined with crash dump analysis.
Source of Information : Microsoft Press Windows Internals 5th Edition
Solving Common Boot Problems “Part I”
This section describes problems that can occur during the boot process, describing their symptoms, causes, and approaches to solving them. To help you locate a problem that you might encounter, they are organized according to the place in the boot at which they occur. Note that for most of these problems, you should be able to simply boot into the Windows Recovery Environment and allow the Startup Repair tool to scan your system and perform any automated repair tasks.
MBR Corruption
• Symptoms A system that has Master Boot Record (MBR) corruption will execute the BIOS power-on self test (POST), display BIOS version information or OEM branding, switch to a black screen, and then hang. Depending on the type of corruption the MBR has experienced, you might see one of the following messages: “Invalid partition table,” “Error loading operating system,” or “Missing operating system.”
• Cause The MBR can become corrupt because of hard-disk errors, disk corruption as a result of a driver bug while Windows is running, or intentional scrambling as a result of a virus.
• Resolution Boot into the Windows Recovery Environment, choose the Command Prompt option, and then execute the bootrec /fixmbr command. This command replaces the executable code in the MBR.
Boot Sector Corruption
• Symptoms Boot sector corruption can look like MBR corruption, where the system hangs after BIOS POST at a black screen, or you might see the messages “A disk read error occurred,” “BOOTMGR is missing,” or “ BOOTMGR is compressed” displayed on a black screen.
• Cause The boot sector can become corrupt because of hard-disk errors, disk corruption as a result of a driver bug while Windows is running, or intentional scrambling as a result of a virus.
• Resolution Boot into the Windows Recovery Environment, choose the Command Prompt option, and then execute the bootrec /fixboot command. This command rewrites the boot sector of the volume that you specify. You should execute the command on both the system and boot volumes if they are different.
BCD Misconfiguration
• Symptom After BIOS POST, you’ll see a message that begins “Windows could not start because of a computer disk hardware configuration problem,” “Could not read from selected boot disk,” or “Check boot path and disk hardware.”
• Cause The BCD has been deleted, become corrupt, or no longer references the boot volume because the addition of a partition has changed the name of the volume.
• Resolution Boot into the Windows Recovery Environment, choose the Command Prompt option, and then execute the bootrec /scanos and bootrec /rebuildbcd commands.
These commands will scan each volume looking for Windows installations. When they discover an installation, they will ask you whether they should add it to the BCD as a boot option and what name should be displayed for the installation in the boot menu. For other kinds of BCD-related damage, you can also use Bcdedit.exe to perform tasks such as building a new BCD from scratch or cloning an existing good copy.
System File Corruption
• Symptoms There are several ways the corruption of system files—which include executables, drivers, or DLLs—can manifest. One way is with a message on a black screen after BIOS POST that says, “Windows could not start because the following file is missing or corrupt,” followed by the name of a file and a request to reinstall the file. Another way is with a blue screen crash during the boot with the text, “STOP: 0xC0000135 {Unable to Locate Component}.”
• Causes The volume on which a system file is located is corrupt or one or more system files have been deleted or become corrupt.
• Resolution Boot into the Windows Recovery Environment, choose the Command
Prompt option, and then execute the chkdsk command. Chkdsk will attempt to repair volume corruption. If Chkdsk does not report any problems, obtain a backup copy\ of the system file in question. One place to check is in the \Windows\winsxs\Backup directory, in which Windows places copies of many system files for access by Windows Resource Protection. (See the “Windows Resource Protection” sidebar.) If you cannot find a copy of the file there, see if you can locate a copy from another system in the network. Note that the backup file must be from the same service pack or hotfix as the file that you are replacing.
Source of Information : Microsoft Press Windows Internals 5th Edition
MBR Corruption
• Symptoms A system that has Master Boot Record (MBR) corruption will execute the BIOS power-on self test (POST), display BIOS version information or OEM branding, switch to a black screen, and then hang. Depending on the type of corruption the MBR has experienced, you might see one of the following messages: “Invalid partition table,” “Error loading operating system,” or “Missing operating system.”
• Cause The MBR can become corrupt because of hard-disk errors, disk corruption as a result of a driver bug while Windows is running, or intentional scrambling as a result of a virus.
• Resolution Boot into the Windows Recovery Environment, choose the Command Prompt option, and then execute the bootrec /fixmbr command. This command replaces the executable code in the MBR.
Boot Sector Corruption
• Symptoms Boot sector corruption can look like MBR corruption, where the system hangs after BIOS POST at a black screen, or you might see the messages “A disk read error occurred,” “BOOTMGR is missing,” or “ BOOTMGR is compressed” displayed on a black screen.
• Cause The boot sector can become corrupt because of hard-disk errors, disk corruption as a result of a driver bug while Windows is running, or intentional scrambling as a result of a virus.
• Resolution Boot into the Windows Recovery Environment, choose the Command Prompt option, and then execute the bootrec /fixboot command. This command rewrites the boot sector of the volume that you specify. You should execute the command on both the system and boot volumes if they are different.
BCD Misconfiguration
• Symptom After BIOS POST, you’ll see a message that begins “Windows could not start because of a computer disk hardware configuration problem,” “Could not read from selected boot disk,” or “Check boot path and disk hardware.”
• Cause The BCD has been deleted, become corrupt, or no longer references the boot volume because the addition of a partition has changed the name of the volume.
• Resolution Boot into the Windows Recovery Environment, choose the Command Prompt option, and then execute the bootrec /scanos and bootrec /rebuildbcd commands.
These commands will scan each volume looking for Windows installations. When they discover an installation, they will ask you whether they should add it to the BCD as a boot option and what name should be displayed for the installation in the boot menu. For other kinds of BCD-related damage, you can also use Bcdedit.exe to perform tasks such as building a new BCD from scratch or cloning an existing good copy.
System File Corruption
• Symptoms There are several ways the corruption of system files—which include executables, drivers, or DLLs—can manifest. One way is with a message on a black screen after BIOS POST that says, “Windows could not start because the following file is missing or corrupt,” followed by the name of a file and a request to reinstall the file. Another way is with a blue screen crash during the boot with the text, “STOP: 0xC0000135 {Unable to Locate Component}.”
• Causes The volume on which a system file is located is corrupt or one or more system files have been deleted or become corrupt.
• Resolution Boot into the Windows Recovery Environment, choose the Command
Prompt option, and then execute the chkdsk command. Chkdsk will attempt to repair volume corruption. If Chkdsk does not report any problems, obtain a backup copy\ of the system file in question. One place to check is in the \Windows\winsxs\Backup directory, in which Windows places copies of many system files for access by Windows Resource Protection. (See the “Windows Resource Protection” sidebar.) If you cannot find a copy of the file there, see if you can locate a copy from another system in the network. Note that the backup file must be from the same service pack or hotfix as the file that you are replacing.
Source of Information : Microsoft Press Windows Internals 5th Edition
Boot Status File
Windows uses a boot status file (%SystemRoot%\Bootstat.dat) to record the fact that it has progressed through various stages of the system life cycle, including boot and shutdown. This allows the Boot Manager, Windows loader, and the Startup Repair tool to detect abnormal shutdown or a failure to shut down cleanly and offer the user recovery and diagnostic boot options, like Last Known Good and Safe Mode. This binary file contains information through which the system reports the success of the following phases of the system life cycle:
• Boot (the definition of a successful boot is the same as the one used for determining Last Known Good status, which was described earlier)
• Shutdown
• Resume from hibernate or suspend
The boot status file also indicates whether a problem was last detected and the recovery options shown, indicating that the user has been made aware of the problem and taken action. Runtime Library APIs (Rtl) in Ntdll.dll contain the private interfaces that Windows uses to read from and write to the file. Like the BCD, it cannot be edited by users.
Source of Information : Microsoft Press Windows Internals 5th Edition
• Boot (the definition of a successful boot is the same as the one used for determining Last Known Good status, which was described earlier)
• Shutdown
• Resume from hibernate or suspend
The boot status file also indicates whether a problem was last detected and the recovery options shown, indicating that the user has been made aware of the problem and taken action. Runtime Library APIs (Rtl) in Ntdll.dll contain the private interfaces that Windows uses to read from and write to the file. Like the BCD, it cannot be edited by users.
Source of Information : Microsoft Press Windows Internals 5th Edition
Troubleshooting Boot and Startup Problems – Windows Recovery Environment (WinRE)
Safe mode is a satisfactory fallback for systems that become unbootable because a device driver crashes during the boot sequence, but in some situations a safe-mode boot won’t help the system boot. For example, if a driver that prevents the system from booting is a member of a Safe group, safe-mode boots will fail. Another example of a situation in which safe mode won’t help the system boot is when a third-party driver, such as a virus scanner driver, that loads at the boot prevents the system from booting. (Boot-start drivers load whether or not the system is in safe mode.) Other situations in which safe-mode boots will fail are when a system module or critical device driver file that is part of a safe-mode configuration becomes corrupt or when the system drive’s Master Boot Record (MBR) is damaged.
You can get around these problems by using the Windows Recovery Environment. The Windows Recovery Environment provides an assortment of tools and automated repair technologies to automatically fix the most common startup problems. It includes five main tools:
• Startup Repair An automated tool that detects the most common Windows startup problems and automatically attempts to repair them.
• System Restore Allows restoring to a previous restore point in cases in which you cannot boot the Windows installation to do so, even in safe mode.
• Complete PC Restore Called ASR (Automated System Recovery) in previous versions of Windows, this restores a Windows installation from a complete backup, not just a system restore point, which may not contain all damaged files and lost data.
• Windows Memory Diagnostic Tool Performs memory diagnostic tests that check for signs of faulty RAM. Faulty RAM can be the reason for random kernel and application crashes and erratic system behavior.
• Command Prompt For cases where troubleshooting or repair requires manual intervention (such as copying files from another drive or manipulating the BCD), you can use the command prompt to have a full Windows shell that can launch any Windows program—unlike the Recovery Console on earlier versions of Windows, which only supported a limited set of specialized commands.
When you boot a system from the Windows CD or boot disks, Windows Setup gives you the choice of installing Windows or repairing an existing installation. If you choose to repair an installation, the system displays a dialog box called System Recovery Options.
Some OEMs install WinRE to a recovery partition on their systems. On these systems, you can access WinRE by using the F8 option to access advanced boot options during Bootmgr execution. If you see an option Repair Your Computer, your machine has a local hard disk copy. By following the instructions at the Microsoft WinRE blog (http://blogs.msdn.com/winre) you can also install WinRE on the hard disk yourself from your Windows installation media and Windows Automated Installation Kit (AIK). Additionally, if your system failed to boot as the result of damaged files or any other reason that Winload can understand, it instructs Bootmgr to automatically start WinRE at the next reboot cycle. Instead of the dialog box, the recovery environment will automatically launch the Startup Repair tool. At the end of the scan and repair cycle, the tool will automatically attempt to fix any damage found, including replacing system files from the installation media. You can click the details link to see information about the damage that was fixed. For example, the Startup Repair tool fixed a damaged boot sector. If the Startup Repair tool cannot automatically fix the damage, or if you cancel the operation, you’ll get a chance to try other methods and the System Recovery Options dialog box will be displayed.
Source of Information : Microsoft Press Windows Internals 5th Edition
You can get around these problems by using the Windows Recovery Environment. The Windows Recovery Environment provides an assortment of tools and automated repair technologies to automatically fix the most common startup problems. It includes five main tools:
• Startup Repair An automated tool that detects the most common Windows startup problems and automatically attempts to repair them.
• System Restore Allows restoring to a previous restore point in cases in which you cannot boot the Windows installation to do so, even in safe mode.
• Complete PC Restore Called ASR (Automated System Recovery) in previous versions of Windows, this restores a Windows installation from a complete backup, not just a system restore point, which may not contain all damaged files and lost data.
• Windows Memory Diagnostic Tool Performs memory diagnostic tests that check for signs of faulty RAM. Faulty RAM can be the reason for random kernel and application crashes and erratic system behavior.
• Command Prompt For cases where troubleshooting or repair requires manual intervention (such as copying files from another drive or manipulating the BCD), you can use the command prompt to have a full Windows shell that can launch any Windows program—unlike the Recovery Console on earlier versions of Windows, which only supported a limited set of specialized commands.
When you boot a system from the Windows CD or boot disks, Windows Setup gives you the choice of installing Windows or repairing an existing installation. If you choose to repair an installation, the system displays a dialog box called System Recovery Options.
Some OEMs install WinRE to a recovery partition on their systems. On these systems, you can access WinRE by using the F8 option to access advanced boot options during Bootmgr execution. If you see an option Repair Your Computer, your machine has a local hard disk copy. By following the instructions at the Microsoft WinRE blog (http://blogs.msdn.com/winre) you can also install WinRE on the hard disk yourself from your Windows installation media and Windows Automated Installation Kit (AIK). Additionally, if your system failed to boot as the result of damaged files or any other reason that Winload can understand, it instructs Bootmgr to automatically start WinRE at the next reboot cycle. Instead of the dialog box, the recovery environment will automatically launch the Startup Repair tool. At the end of the scan and repair cycle, the tool will automatically attempt to fix any damage found, including replacing system files from the installation media. You can click the details link to see information about the damage that was fixed. For example, the Startup Repair tool fixed a damaged boot sector. If the Startup Repair tool cannot automatically fix the damage, or if you cancel the operation, you’ll get a chance to try other methods and the System Recovery Options dialog box will be displayed.
Source of Information : Microsoft Press Windows Internals 5th Edition
Troubleshooting Boot and Startup Problems – Boot Logging in Safe Mode
When you direct the system to boot into safe mode, Winload hands the string specified by the bootlog option to the Windows kernel as a parameter, together with the parameter that requests safe mode. When the kernel initializes, it checks for the presence of the boot log parameter whether or not any safe-mode parameter is present. If the kernel detects a boot log string, the kernel records the action the kernel takes on every device driver it considers for loading. For example, if IopSafebootDriverLoad tells the I/O manager not to load a driver, the I/O manager calls IopBootLog to record that the driver wasn’t loaded. Likewise, after IopLoadDriver successfully loads a driver that is part of the safe-mode configuration, IopLoadDriver calls IopBootLog to record that the driver loaded. You can examine boot logs to see which device drivers are part of a boot configuration.Because the kernel wants to avoid modifying the disk until Chkdsk executes, late in the boot process, IopBootLog can’t simply dump messages into a log file. Instead, IopBootLog records messages in the HKLM\SYSTEM\CurrentControlSet\BootLog registry value. As the first user-mode component to load during a boot, the Session Manager (\Windows\System32\Smss.exe) executes Chkdsk to ensure the system drives’ consistency and then completes registry initialization by executing the NtInitializeRegistry system call. The kernel takes this action as a cue that it can safely open a log file on the disk, which it does, invoking the function IopCopyBootLogRegistryToFile. This function creates the file Ntbtlog.txt in the Windows system directory (\Windows by default) and copies the contents of the BootLog registry value to the file. IopCopyBootLogRegistryToFile also sets a flag for IopBootLog that lets IopBootLog know that writing directly to the log file, rather than recording messages in the registry, is now OK. The following output shows the partial contents of a sample boot log:
Source of Information : Microsoft Press Windows Internals 5th Edition
Microsoft (R) Windows (R) Version 6.0 (Build 6000)
10 4 2007 09:04:53.375
Loaded driver \SystemRoot\system32\ntkrnlpa.exe
Loaded driver \SystemRoot\system32\hal.dll
Loaded driver \SystemRoot\system32\kdcom.dll
Loaded driver \SystemRoot\system32\mcupdate_GenuineIntel.dll
Loaded driver \SystemRoot\system32\PSHED.dll
Loaded driver \SystemRoot\system32\BOOTVID.dll
Loaded driver \SystemRoot\system32\CLFS.SYS
Loaded driver \SystemRoot\system32\CI.dll
Loaded driver \SystemRoot\system32\drivers\Wdf01000.sys
Loaded driver \SystemRoot\system32\drivers\WDFLDR.SYS
Loaded driver \SystemRoot\system32\drivers\acpi.sys
Loaded driver \SystemRoot\system32\drivers\WMILIB.SYS
Loaded driver \SystemRoot\system32\drivers\msisadrv.sys
Loaded driver \SystemRoot\system32\drivers\pci.sys
Loaded driver \SystemRoot\system32\drivers\volmgr.sys
Loaded driver \SystemRoot\system32\DRIVERS\compbatt.sys
Loaded driver \SystemRoot\system32\DRIVERS\BATTC.SYS
Loaded driver \SystemRoot\System32\drivers\mountmgr.sys
Loaded driver \SystemRoot\system32\drivers\intelide.sys
Loaded driver \SystemRoot\system32\drivers\PCIIDEX.SYS
Loaded driver \SystemRoot\system32\DRIVERS\pciide.sys
Loaded driver \SystemRoot\System32\drivers\volmgrx.sys
Loaded driver \SystemRoot\system32\drivers\atapi.sys
Loaded driver \SystemRoot\system32\drivers\ataport.SYS
Loaded driver \SystemRoot\system32\drivers\fltmgr.sys
Loaded driver \SystemRoot\system32\drivers\fileinfo.sys
§
Did not load driver @battery.inf,%acpi\acpi0003.devicedesc%;Microsoft AC Adapter
Did not load driver @battery.inf,%acpi\pnp0c0a.devicedesc%;Microsoft ACPI-Compliant Control
Method Battery
Did not load driver @oem46.inf,%nvidia_g71.dev_0297.1%;NVIDIA GeForce Go 7950 GTX
Did not load driver @oem5.inf,%nic_mpciex%;Intel(R) PRO/Wireless 3945ABG Network Connection
Did not load driver @netb57vx.inf,%bcm5750a1clnahkd%;Broadcom NetXtreme 57xx Gigabit
Controller
Did not load driver @sdbus.inf,%pci\cc_080501.devicedesc%;SDA Standard Compliant SD Host
Controller
§
Source of Information : Microsoft Press Windows Internals 5th Edition
Troubleshooting Boot and Startup Problems - Safe-Mode-Aware User Programs
When the service control manager (SCM) user-mode component (which Services.exe implements) initializes during the boot process, the SCM checks the value of HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Option\OptionValue to determine whether the system is performing a safe-mode boot. If so, the SCM mirrors the actions of IopSafebootDriverLoad. Although the SCM processes the services listed under HKLM\SYSTEM\CurrentControlSet\Services, it loads only services that the appropriate safe-mode subkey specifies by name.
Userinit, the component that initializes a user’s environment when the user logs on (\Windows\System32\Userinit.exe), is another user-mode component that needs to know whether the system is booting in safe mode. It checks the value of HKLM\SYSTEM\Current-ControlSet\Control\SafeBoot\Option\UseAlternateShell. If this value is set, Userinit runs the program specified as the user’s shell in the value HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\AlternateShell rather than executing Explorer.exe. Windows writes the program name Cmd.exe to the AlternateShell value during installation, making the Windows command prompt the default shell for safe mode with command prompt. Even though the command prompt is the shell, you can type Explorer.exe at the command prompt to start Windows Explorer, and you can run any other GUI program from the command prompt as well.
How does an application determine whether the system is booting in safe mode? By calling the Windows GetSystemMetrics(SM_CLEANBOOT) function. Batch scripts that need to perform certain operations when the system boots in safe mode look for the SAFEBOOT_OPTION environment variable because the system defines this environment variable only when booting in safe mode.
Source of Information : Microsoft Press Windows Internals 5th Edition
Userinit, the component that initializes a user’s environment when the user logs on (\Windows\System32\Userinit.exe), is another user-mode component that needs to know whether the system is booting in safe mode. It checks the value of HKLM\SYSTEM\Current-ControlSet\Control\SafeBoot\Option\UseAlternateShell. If this value is set, Userinit runs the program specified as the user’s shell in the value HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\AlternateShell rather than executing Explorer.exe. Windows writes the program name Cmd.exe to the AlternateShell value during installation, making the Windows command prompt the default shell for safe mode with command prompt. Even though the command prompt is the shell, you can type Explorer.exe at the command prompt to start Windows Explorer, and you can run any other GUI program from the command prompt as well.
How does an application determine whether the system is booting in safe mode? By calling the Windows GetSystemMetrics(SM_CLEANBOOT) function. Batch scripts that need to perform certain operations when the system boots in safe mode look for the SAFEBOOT_OPTION environment variable because the system defines this environment variable only when booting in safe mode.
Source of Information : Microsoft Press Windows Internals 5th Edition
Troubleshooting Boot and Startup Problems - Driver Loading in Safe Mode
How does Windows know which device drivers and services are part of standard and networking-enabled safe mode? The answer lies in the HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot registry key. This key contains the Minimal and Network subkeys. Each subkey contains more subkeys that specify the names of device drivers or services or of groups of drivers. For example, the vga.sys subkey identifies the VGA display device driver that the startup configuration includes. The VGA display driver provides basic graphics services for any PC-compatible display adapter. The system uses this driver as the safe-mode display driver in lieu of a driver that might take advantage of an adapter’s advanced hardware features but that might also prevent the system from booting. Each subkey under the SafeBoot key has a default value that describes what the subkey identifies; the vga.sys subkey’s default value is “Driver”.
The Boot file system subkey has as its default value “Driver Group”. When developers design a device driver’s installation script, they can specify that the device driver belongs to a driver group. The driver groups that a system defines are listed in the List value of the HKLM\ SYSTEM\CurrentControlSet\Control\ServiceGroupOrder key. A developer specifies a driver as a member of a group to indicate to Windows at what point during the boot process the driver should start. The ServiceGroupOrder key’s primary purpose is to define the order in which driver groups load; some driver types must load either before or after other driver types. The Group value beneath a driver’s configuration registry key associates the driver with a group.
Driver and service configuration keys reside beneath HKLM\SYSTEM\CurrentControlSet\Services. If you look under this key, you’ll find the VgaSave key for the VGA display device driver, which you can see in the registry is a member of the Video Save group. Any file system drivers that Windows requires for access to the Windows system drive are automatically loaded as if part of the Boot file system group. Other file system drivers are part of the File system group, which the standard and networking-enabled safe-mode configurations also include.
When you boot into a safe-mode configuration, the boot loader (Winload) passes an associated switch to the kernel (Ntoskrnl.exe) as a command-line parameter, along with any switches you’ve specified in the BCD for the installation you’re booting. If you boot into any safe mode, Winload sets the safeboot BCD option with a value describing the type of safe mode you select. For standard safe mode, Winload sets minimal, and for networking-enabled safe mode, it adds network. Winload adds minimal and sets safebootalternateshell for safe mode with command prompt and dsrepair for Directory Services Restore mode.
The Windows kernel scans boot parameters in search of the safe-mode switches early during the boot, during the InitSafeBoot function, and sets the internal variable InitSafeBootMode to a value that reflects the switches the kernel finds. The kernel writes the InitSafeBootMode value to the registry value HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Option\OptionValue so that user-mode components, such as the SCM, can determine what boot mode the system is in. In addition, if the system is booting in safe mode with command prompt, the kernel sets the HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Option\UseAlternateShell value to 1. The kernel records the parameters that Winload passes to it in the value HKLM\SYSTEM\CurrentControlSet\Control\SystemStartOptions.
When the I/O manager kernel subsystem loads device drivers that HKLM\SYSTEM\CurrentControlSet\Services specifies, the I/O manager executes the function IopLoadDriver. When the Plug and Play manager detects a new device and wants to dynamically load the device driver for the detected device, the Plug and Play manager executes the function PipCallDriverAddDevice. Both these functions call the function IopSafebootDriverLoad before they load the driver in question. IopSafebootDriverLoad checks the value of InitSafeBootMode and determines whether the driver should load. For example, if the system boots in standard safe mode, IopSafebootDriverLoad looks for the driver’s group, if the driver has one, under the Minimal subkey. If IopSafebootDriverLoad finds the driver’s group listed, IopSafebootDriverLoad indicates to its caller that the driver can load. Otherwise, IopSafebootDriverLoad looks for the driver’s name under the Minimal subkey. If the driver’s name is listed as a subkey, the driver can load. If IopSafebootDriverLoad can’t find the driver group or driver name subkeys, the driver can’t load. If the system boots in networkingenabled safe mode, IopSafebootDriverLoad performs the searches on the Network subkey. If the system doesn’t boot in safe mode, IopSafebootDriverLoad lets all drivers load.
An exception exists regarding the drivers that safe mode excludes from a boot: Winload, rather than the kernel, loads any drivers with a Start value of 0 in their registry key, which specifies loading the drivers at boot time. Winload doesn’t check the SafeBoot registry key because it assumes that any driver with a Start value of 0 is required for the system to boot successfully. Because Winload doesn’t check the SafeBoot registry key to identify which drivers to load, Winload loads all boot-start drivers (and later Ntoskrnl starts them).
Source of Information : Microsoft Press Windows Internals 5th Edition
The Boot file system subkey has as its default value “Driver Group”. When developers design a device driver’s installation script, they can specify that the device driver belongs to a driver group. The driver groups that a system defines are listed in the List value of the HKLM\ SYSTEM\CurrentControlSet\Control\ServiceGroupOrder key. A developer specifies a driver as a member of a group to indicate to Windows at what point during the boot process the driver should start. The ServiceGroupOrder key’s primary purpose is to define the order in which driver groups load; some driver types must load either before or after other driver types. The Group value beneath a driver’s configuration registry key associates the driver with a group.
Driver and service configuration keys reside beneath HKLM\SYSTEM\CurrentControlSet\Services. If you look under this key, you’ll find the VgaSave key for the VGA display device driver, which you can see in the registry is a member of the Video Save group. Any file system drivers that Windows requires for access to the Windows system drive are automatically loaded as if part of the Boot file system group. Other file system drivers are part of the File system group, which the standard and networking-enabled safe-mode configurations also include.
When you boot into a safe-mode configuration, the boot loader (Winload) passes an associated switch to the kernel (Ntoskrnl.exe) as a command-line parameter, along with any switches you’ve specified in the BCD for the installation you’re booting. If you boot into any safe mode, Winload sets the safeboot BCD option with a value describing the type of safe mode you select. For standard safe mode, Winload sets minimal, and for networking-enabled safe mode, it adds network. Winload adds minimal and sets safebootalternateshell for safe mode with command prompt and dsrepair for Directory Services Restore mode.
The Windows kernel scans boot parameters in search of the safe-mode switches early during the boot, during the InitSafeBoot function, and sets the internal variable InitSafeBootMode to a value that reflects the switches the kernel finds. The kernel writes the InitSafeBootMode value to the registry value HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Option\OptionValue so that user-mode components, such as the SCM, can determine what boot mode the system is in. In addition, if the system is booting in safe mode with command prompt, the kernel sets the HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Option\UseAlternateShell value to 1. The kernel records the parameters that Winload passes to it in the value HKLM\SYSTEM\CurrentControlSet\Control\SystemStartOptions.
When the I/O manager kernel subsystem loads device drivers that HKLM\SYSTEM\CurrentControlSet\Services specifies, the I/O manager executes the function IopLoadDriver. When the Plug and Play manager detects a new device and wants to dynamically load the device driver for the detected device, the Plug and Play manager executes the function PipCallDriverAddDevice. Both these functions call the function IopSafebootDriverLoad before they load the driver in question. IopSafebootDriverLoad checks the value of InitSafeBootMode and determines whether the driver should load. For example, if the system boots in standard safe mode, IopSafebootDriverLoad looks for the driver’s group, if the driver has one, under the Minimal subkey. If IopSafebootDriverLoad finds the driver’s group listed, IopSafebootDriverLoad indicates to its caller that the driver can load. Otherwise, IopSafebootDriverLoad looks for the driver’s name under the Minimal subkey. If the driver’s name is listed as a subkey, the driver can load. If IopSafebootDriverLoad can’t find the driver group or driver name subkeys, the driver can’t load. If the system boots in networkingenabled safe mode, IopSafebootDriverLoad performs the searches on the Network subkey. If the system doesn’t boot in safe mode, IopSafebootDriverLoad lets all drivers load.
An exception exists regarding the drivers that safe mode excludes from a boot: Winload, rather than the kernel, loads any drivers with a Start value of 0 in their registry key, which specifies loading the drivers at boot time. Winload doesn’t check the SafeBoot registry key because it assumes that any driver with a Start value of 0 is required for the system to boot successfully. Because Winload doesn’t check the SafeBoot registry key to identify which drivers to load, Winload loads all boot-start drivers (and later Ntoskrnl starts them).
Source of Information : Microsoft Press Windows Internals 5th Edition
Troubleshooting Boot and Startup Problems - Safe Mode
Perhaps the most common reason Windows systems become unbootable is that a device driver crashes the machine during the boot sequence. Because software or hardware configurations can change over time, latent bugs can surface in drivers at any time. Windows offers a way for an administrator to attack the problem: booting in safe mode. Safe mode is a boot configuration that consists of the minimal set of device drivers and services. By relying on only the drivers and services that are necessary for booting, Windows avoids loading thirdparty and other nonessential drivers that might crash.
When Windows boots, you press the F8 key to enter a special boot menu that contains the safe-mode boot options. You typically choose from three safe-mode variations: Safe Mode, Safe Mode With Networking, and Safe Mode With Command Prompt. Standard safe mode includes the minimum number of device drivers and services necessary to boot successfully. Networking-enabled safe mode adds network drivers and services to the drivers and services that standard safe mode includes. Finally, safe mode with command prompt is identical to standard safe mode except that Windows runs the command prompt application (Cmd.exe) instead of Windows Explorer as the shell when the system enables GUI mode.
Windows includes a fourth safe mode—Directory Services Restore mode—which is different from the standard and networking-enabled safe modes. You use Directory Services Restore mode to boot the system into a mode where the Active Directory service of a domain controller is offline and unopened. This allows you to perform repair operations on the database or restore it from backup media. All drivers and services, with the exception of the Active Directory service, load during a Directory Services Restore mode boot. In cases where you can’t log on to a system because of Active Directory database corruption, this mode enables you to repair the corruption.
Source of Information : Microsoft Press Windows Internals 5th Edition
When Windows boots, you press the F8 key to enter a special boot menu that contains the safe-mode boot options. You typically choose from three safe-mode variations: Safe Mode, Safe Mode With Networking, and Safe Mode With Command Prompt. Standard safe mode includes the minimum number of device drivers and services necessary to boot successfully. Networking-enabled safe mode adds network drivers and services to the drivers and services that standard safe mode includes. Finally, safe mode with command prompt is identical to standard safe mode except that Windows runs the command prompt application (Cmd.exe) instead of Windows Explorer as the shell when the system enables GUI mode.
Windows includes a fourth safe mode—Directory Services Restore mode—which is different from the standard and networking-enabled safe modes. You use Directory Services Restore mode to boot the system into a mode where the Active Directory service of a domain controller is offline and unopened. This allows you to perform repair operations on the database or restore it from backup media. All drivers and services, with the exception of the Active Directory service, load during a Directory Services Restore mode boot. In cases where you can’t log on to a system because of Active Directory database corruption, this mode enables you to repair the corruption.
Source of Information : Microsoft Press Windows Internals 5th Edition
Troubleshooting Boot and Startup Problems - Last Known Good
Last known good (LKG) is a useful mechanism for getting a system that crashes during the boot process back to a bootable state. Because the system’s configuration settings are stored in HKLM\SYSTEM\CurrentControlSet\Control and driver and service configuration is stored in HKLM\SYSTEM\CurrentControlSet\Services, changes to these parts of the registry can render a system unbootable. For example, if you install a device driver that has a bug that crashes the system during the boot, you can press the F8 key during the boot and select last known good from the resulting menu. The system marks the control set that it was using to boot the system as failed by setting the Failed value of HKLM\SYSTEM\Select and then changes HKLM\SYSTEM\Select\Current to the value stored in HKLM\SYSTEM\Select\LastKnownGood. It also updates the symbolic link HKLM\SYSTEM\CurrentControlSet to point at the LastKnownGood control set. Because the new driver’s key is not present in the Services subkey of the LastKnownGood control set, the system will boot successfully.
Source of Information : Microsoft Press Windows Internals 5th Edition
Source of Information : Microsoft Press Windows Internals 5th Edition
Images That Start Automatically
In addition to the Userinit and Shell registry values in Winlogon’s key, there are many other registry locations and directories that default system components check and process for automatic process startup during the boot and logon processes. The Msconfig utility (Windows\System32\Msconfig.exe) displays the images configured by several of the locations. The Autoruns tool, which you can download from Sysinternals, examines more locations than Msconfig and displays more information about the images configured to automatically run. By default, Autoruns shows only the locations that are configured to automatically execute at least one image, but selecting the Include Empty Locations entry on the Options menu causes Autoruns to show all the locations it inspects. The Options menu also has selections to direct Autoruns to hide Microsoft entries, but you should always combine this option with Verify Image Signatures; otherwise, you risk hiding malicious programs that include false information about their company name information.
EXPERIMENT: Autoruns
Many users are unaware of how many programs execute as part of their logon. Original equipment manufacturers (OEMs) often configure their systems with add-on utilities that execute in the background using registry values or file system directories processed for automatic execution and so are not normally visible. See what programs are configured to start automatically on your computer by running the Autoruns utility from Sysinternals. Compare the list shown in Autoruns with that shown in Msconfig and identify any differences. Then ensure that you understand the purpose of each program.
Source of Information : Microsoft Press Windows Internals 5th Edition
EXPERIMENT: Autoruns
Many users are unaware of how many programs execute as part of their logon. Original equipment manufacturers (OEMs) often configure their systems with add-on utilities that execute in the background using registry values or file system directories processed for automatic execution and so are not normally visible. See what programs are configured to start automatically on your computer by running the Autoruns utility from Sysinternals. Compare the list shown in Autoruns with that shown in Msconfig and identify any differences. Then ensure that you understand the purpose of each program.
Source of Information : Microsoft Press Windows Internals 5th Edition
Subscribe to:
Posts (Atom)
Cloud storage is for blocks too, not just files
One of the misconceptions about cloud storage is that it is only useful for storing files. This assumption comes from the popularity of file...
-
Smss is like any other user-mode process except for two differences: First, Windows considers Smss a trusted part of the operating system. S...
-
A breakthrough in virtual tape technology came when dedupe technology was integrated with VTLs. Like previous-generation VTLs, dedupe VTLs r...
-
Many of the virus, adware, security, and crash problems with Windows occu when someone installs a driver of dubious origin. The driver suppo...