Showing posts with label bios. Show all posts
Showing posts with label bios. Show all posts

Friday, August 14, 2009

Make a USB drive a key to boot into XP

For our task, a USB drive of a capacity ofat least 256 MB is required. If we need to include extra utilities, hotfixes, and sevicepacks, then we need at least a 512 MB drive.

Format the drive using "FAT" filesystem.

After having selected “Show hidden files and folders” and deactivating “Hide protected operating system files”, navigate to the root directory on which Windows is located, usually C:\. Copy the boot.ini, ntdlr,and NTDETECT.COM files from that directory to the USB Flash drive. Rename the “boot.ini” in C:\ to “boot.bak”.Windows will not now be able to boot from the hard drive,and the USB drive will be the key to unlocking the computer.Now to check whether your USB drive works or not! Restart your PC and select the USB drive as the First Boot Device in the BIOS.For this test, deactivate the “Quick Boot” and “Show Full Screen Logo” options in order to be able to monitor any BIOS-reported activities. Also, the “USB Legacy Support” and“USB 2.0 Controller” options need to be activated if available. Save your changes and exit the BIOS, and restart.If you encounter a problem booting, look for an option in the BIOS that extends the
response time of the USB drive, for example, the “USB Mass Storage Reset Delay” option found in the AMI-BIOS. Choose the highestvalue and gradually decrease the value until the problem pops up again. This should work, but if the problem persists, check your motherboard manual or visit the Web site of your motherboard’s manufacturer for a BIOS update.

Thursday, July 16, 2009

"STOP” Error Message at Shutdown

Some users have gotten an error message similar to the following when attempting either to shutdown or restart Win XP:

STOP 0000009F, DRIVER_POWER_STATE_FAILURE
STOP 0x0000001E: KMODE_EXCEPTION_NOT_HANDLED
STOP 0x000000D1: DRIVER_IRQL_NOT_LESS_OR_EQUAL

TechNet and the Microsoft Knowledge Base have numerous articles discussing this type of error condition; for example, these. As a review of these articles will show, these are commonly device driver problems, but may also be caused by troublesome software (such as the notorious CrashGuard), or a problem in a system service. MSKB article Q262575 discusses a shutdown problem of this type, known to exist in Windows 2000 due to a resource (IRQ) conflict, if you have PACE Interlok anti-piracy software installed. This problem may occur in Windows XP as well.
Microsoft advises the following as one approach to these problems: Restart the computer. Press F8 during the restart and select “Last Known Good Configuration.” If you catch the problem when it first occurs (meaning you likely have installed only one or two drivers or new service), this will return you to a previous working condition. (Would System Restore accomplish the same thing? I don’t know, and don’t have a broken system to test it on.)

Microsoft reported similarly that these STOP code error message occur when Windows XP is trying to shut down devices. He says that he has seen this twice: once with Logitech Quickcam installed (with an unsupported driver), and once with a USB DSL modem that would hang if it wasn’t disconnected before shutdown.

SHUTDOWN WORKS, BUT IT’S REAL SLOW.

If it appears that Win XP is not shutting down, give it some time. Some users have reported a minute or longer for shutdown to visibly start. Thus far, it appears that this is a consequence of software that is running when shutdown is attempted, and it also may have something to do with particular hardware. If you are experiencing this problem, be sure to close all running programs before attempting shutdown and see if this solves your problem. If so, then you can determine, by trial and error, which program(s) are involved.
One specific solution for this was provided by Microsoft support. ” In Control Panel | Administrative Tools | Services. (You can also get this by launching SERVICES.MSC from a Run box. This utility is also built into the Computer Management console.) Stop the Nvidia Driver Helper service. Many other friends quickly confirmed that this solved this “extremely slow shutdown” problem for them.

POWERDOWN ISSUES.

“Powerdown issues” are quite distinctive from “shutdown issues.” I define a shutdown problem as one wherein Windows doesn’t make it at least to the “OK to shut off your computer” screen. If Windows gets that far, or farther, then it has shut down correctly. However, the computer may not powerdown correctly after that. This is a different problem, and I encourage that people reporting these issues to make a very clear distinction in their labeling.

When Windows XP won’t powerdown automatically, the APM/NT Legacy Power Node may not be enabled. To enable this, right-click on the My Computer icon, click Properties | Hardware | Device Manager | View. Check the box labeled “Show Hidden Devices.” If it’s available on your computer, there will be a red X on the APM/NT Legacy Node. Try enabling it and see if this resolves the powerdown problem.

This should resolve the powerdown issue in most cases. However, other factors can sometimes interfere with correct powerdown functioning. In that case, consider the following tips:
If you are changing the default power settings in the BIOS, it can lead to a powerdown problem. Restoring all BIOS power settings to default will likely fix it.

OTHER KNOWN ISSUES & HINTS.

BIOS UPGRADE.
As with every new operating system that comes along - especially one that is as much of a “step up” as Windows XP is from Windows 9x - the recommendation is made to be sure your BIOS is updated. Many people have reported that this has solved their shutdown problems (and had other advantages) with Win XP, just as it has in earlier versions of Windows.

Monday, June 29, 2009

How To Make A Bootable Windows USB Flash Disk

Usually, if its an option in your BIOS boot sequence menu, the answer to this is yes. If its not there, look for BIOS updates. If you are not sure, proceed and see what happens

2. Sorting out the "Bootability" of your USB-Drive

Connect your USB drive to your computer, directly, without a Hub. Then, shut down your computer, disconnect any other hard disk drives from it, and insert your original Windows XP CD into the drive. Start the installation, and proceed to the section where you are allowed to pick a hard drive. If it goes beyond the partition selection, your drive is already fine for booting Windows XP. If not (seems to be the cases with many of the Freecom USB HDDs for example), you will get an error like "Windows is unable to find your drive, partition, data etc bla". This is usually not a big problem.


All you need to do is "properly" format the drive. Reboot into your normal Windows, and get this HP tool , and use it to format your HDD completely. I chose NTFS format, worked fine everytime i tried. After this, my drives are recognized as valid installation devices by the Windows XP installer.
(In fact, i did not manage to create a USB primary partition with FAT32 that was recognized as being installable)

3. Dumping the original Windows CD into an ISO File

Pretty easy one. Simply open WinISO, and select Actions -> Make ISO from
CDROM, and save your CD image.

4. Extracting the files we need to work on

After the CD dump is done, close and reopen WinISO. Then, open the ISO file you just created using File -> Open.
Now, click the I386 folder, and select the following files (Ctrl key to multi-select)

TXTSETUP.SIF
DOSNET.INF
USB.IN_
USBPORT.IN_
USBSTOR.IN_

Select Actions -> Extract and put the resulting
files into some folder to work on them.

5. Unpacking IN_ files

Use the Cab SDK (from the command line) for extracting the contents of the .IN_ files. Each of them contains exactly one .inf file. If you are unsure how to use the Cab SDK, here is an example command line:

cabarc x USBSTOR.IN_

You should end up with three new files in the folder, called:

usb.inf
usbport.inf
usbstor.inf

You can now delete the .IN_ files.

6. Editing the files

This is the main job. i ll also try to explain a bit whats happening. Use a simple Texteditor like
Notepad.

TXTSETUP.SIF

This file is loaded on the initial install step by the Windows XP CD installer. In this file, we will change the way Windows treats USB devices during system setup -- the default is to only treat them as input devices during installation -- we will change this to include mass storage driver support (which needs to be loaded into the installer much earlier in order to work).

First, move the following entries from
[InputDevicesSupport.Load] to the[BootBusExtenders.Load] section , as shown here

[BootBusExtenders.Load]
pci = pci.sys
acpi = acpi.sys
isapnp = isapnp.sys
acpiec = acpiec.sys
ohci1394 = ohci1394.sys
usbehci = usbehci.sys
usbohci = usbohci.sys
usbuhci = usbuhci.sys
usbhub = usbhub.sys
usbstor = usbstor.sys

[InputDevicesSupport.Load]
usbehci = usbehci.sys
usbohci = usbohci.sys
usbuhci = usbuhci.sys
usbhub = usbhub.sys
usbccgp = usbccgp.sys
hidusb = hidusb.sys
serial = serial.sys
serenum = serenum.sys
usbstor = usbstor.sys

... now the same for
[BootBusExtenders] and [InputDevicesSupport]

[BootBusExtenders]
pci = "PCI-Bustreiber",files.pci,pci
acpi = "ACPI Plug & Play-Bustreiber",files.acpi,acpi
isapnp = "ISA Plug & Play-Bustreiber",files.isapnp,isapnp
acpiec = "Integrierter ACPI-Controllertreiber",files.none,acpiec
ohci1394 = "IEEE-1394-Bus-OHCI-konformer Anschlusstreiber",files.ohci1394,ohci1394
usbehci = "Erweiterter Hostcontroller",files.usbehci,usbehci
usbohci = "Open Hostcontroller",files.usbohci,usbohci
usbuhci = "Universeller Hostcontroller",files.usbuhci,usbuhci
usbhub = "Standard-USB-Hubtreiber",files.usbhub,usbhub
usbstor = "USB-Speicherklassentreiber",files.usbstor,usbstor

[InputDevicesSupport]
usbehci = "Erweiterter Hostcontroller",files.usbehci,usbehci
usbohci = "Open Hostcontroller",files.usbohci,usbohci
usbuhci = "Universeller Hostcontroller",files.usbuhci,usbuhci
usbhub = "Standard-USB-Hubtreiber",files.usbhub,usbhub
hidusb = "HID-Parser",files.hidusb,hidusb
serial = "Treiber fur seriellen Anschluss",files.none,serial
serenum = "Enumerator fur seriellen Anschluss",files.none,serenum
usbstor = "USB-Speicherklassentreiber",files.usbstor,usbstor
usbccgp = "USB Generic Parent Driver",files.usbccgp,usbccgp

Next, we also have to write several keys into the registry. Convieniently, the txtsetup.sif allows you to specify files that are parsed and instered into the registry at install time. Insert the following in the [HiveInfs.Fresh] section:

[HiveInfs.Fresh]
AddReg = hivedef.inf,AddReg
AddReg = hivesys.inf,AddReg
AddReg = hivesft.inf,AddReg
AddReg = hivecls.inf,AddReg
AddReg = hiveusd.inf,AddReg
AddReg = dmreg.inf,DM.AddReg
AddReg = usbboot.inf,usbservices

and also in
[SourceDisksFiles]

[SourceDisksFiles]
usbboot.inf = 1,,,,,,_x,3,,3
bootvid.dll = 1,,,,,,3_,2,0,0,,1,2
kdcom.dll = 1,,,,,,3_,2,0,0,,1,2


Finally, save and close TXTSETUP.SIF. We are done with it.

DOSNET.INF

Now, open DOSNET.INF , and change the second
[Files] section to look like this:

[Files]
d1,usbboot.inf
d1,_default.pif
d1,12520437.cpx
d1,12520850.cpx

usb.inf

Change the bolded lines in the [
StandardHub.AddService] and[CommonClassParent.AddService] sections:

[StandardHub.AddService]
DisplayName = %StandardHub.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbhub.sys
LoadOrderGroup = Boot Bus Extender

[CommonClassParent.AddService]
DisplayName = %GenericParent.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbccgp.sys
LoadOrderGroup = Boot Bus Extender


usbport.inf

Change the bolded lines in the
[EHCI.AddService], [OHCI.AddService] , [UHCI.AddService] and [ROOTHUB.AddService] sections:

[EHCI.AddService]
DisplayName = %EHCIMP.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbehci.sys
LoadOrderGroup = Boot Bus Extender

[OHCI.AddService]
DisplayName = %OHCIMP.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbohci.sys
LoadOrderGroup = Boot Bus Extender

[UHCI.AddService]
DisplayName = %UHCIMP.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbuhci.sys
LoadOrderGroup = Boot Bus Extender

[ROOTHUB.AddService]
DisplayName = %ROOTHUB.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbhub.sys
LoadOrderGroup = Boot Bus Extender

usbstor.inf

Change / Add
[USBSTOR.AddService] section to this:

[USBSTOR.AddService]
DisplayName = %USBSTOR.SvcDesc%
ServiceType = 1
StartType = 0
Tag = 3
ErrorControl = 1
ServiceBinary = %12%\USBSTOR.SYS
LoadOrderGroup = Boot Bus Extender

new file:
USBBOOT.INF

Create a new file called USBBOOT.INF in the same directory as your other changed files, and put the following content into it:

[usbservices]

HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","DisplayName",0x00000000,"USB Mass Storage Driver"
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","ImagePath",0x00020000,"system32\DRIVERS\USBSTOR.SYS"
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","Type",0x00010001,1

HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","DisplayName",0x00000000,"USB 2.0 Enhanced Host Controller Miniport Driver"
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","ImagePath",0x00020000,"system32\DRIVERS\usbehci.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","Type",0x00010001,1

HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","DisplayName",0x00000000,"USB2 Enabled Hub"
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","ImagePath",0x00020000,"system32\DRIVERS\usbhub.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","Type",0x00010001,1

HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","DisplayName",0x00000000,"
Microsoft USB Universal Host Controller Miniport Driver"
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","ImagePath",0x00020000,"system32\DRIVERS\usbuhci.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","Type",0x00010001,1

HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","DisplayName",0x00000000,"Microsoft USB Open Host Controller Miniport Driver"
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","ImagePath",0x00020000,"system32\DRIVERS\usbohci.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","Type",0x00010001,1


7. Repack the inf files into their original IN_ format

If you have not already deleted your extracted .IN_ files, do so now. They need to be replaced. Open a DOS shell again, and navigate to the folder with your changed files. Then exceute the following commands:

cabarc n USB.IN_ usb.inf
cabarc n USBPORT.IN_ usbport.inf
cabarc n USBSTOR.IN_ usbstor.inf

The three IN_ files should now exist again.

Congratulations. All out modifications are done.

8. Inject the changed files into the ISO

Open your Windows CD image again with WinISO. Navigate to the I386 folder, and delete the following files from the ISO, saving the changes to the ISO afterwards:

DOSNET.INF
TXTSETUP.SIF
USB.IN_
USBPORT.IN_
USBSTOR.IN_

Just to be sure all is updated in the ISO, cloase and repoen the ISO in WinISO. Now, again go to the I386 folder and select "Add Files". Now add your changed files, in detail:

USBBOOT.INF
DOSNET.INF
TXTSETUP.SIF
USB.IN_
USBPORT.IN_
USBSTOR.IN_

Save the ISO. You are done.

9. Burn the ISO back to CD

Feel free to use any burning package you want. I used the free and simple Burnatonce

10. Install Windows XP from the CD

Shut down your computer. Disconnect ANY internal and external hard drives (so Windows cannot find them during installation and mess up their Master Boot Records hehe). Some computers will have trouble to boot without an internal HDD attached, check in your BIOS and, if possible, remove the HDD from the boot sequence and set the USB Harddisk as the first boot device, and the CDROM as second.

Also, now connect your USB Harddrive directly to the computer, without any Hubs in between.

Windows should install just fine, with the exceptions noted below.

Issues you will encounter during installation:

During driver installation, the
USB drivers will prompt you, as they are "not certified" - This is normal. Our changes invalidated the checksum, and therefore the driver is no longer signed. Just press "yes" a couple of times.
Upon completion of the install, the system will complain once on the first bootup that the pagefile does not exist. You can ignore this for now, as
Windows will work fine without it. People are looking at fixing this issue, but its not critical for now.

Once everything is up and running , shut down and reconnect all your drives.