Information and Options of XP’s boot.ini File

Written by Saman Sadeghi on March 30, 2008 and has been viewed 2,147 views times. 4 Comments »

Window’s XP’s boot.ini file is a hidden system file in your system’s root folder (it’s in the C:/ drive). By default, XP hides all system files to prevent unknowing users from screwing something up. Also, the file is sometimes set to Read Only.

Display Protected Operating System Files

We will need to display system files to be able to edit the file. To do so:

  1. Launch Windows Explorer (Windows Key+E)
  2. Click Tools -> Folder Options
  3. Click the View tab
  4. Untick the checkbox labeled: “Hide protected operating system files (Recommended)”
    Hide Protected Operating System Files
  5. Click “Yes” in the Warning dialog
    Hide Protected Operating System Files Warning
  6. Click “OK”

You should now see the boot.ini file in your C:/ drive.

The boot.ini file

If the file is marked as “Read Only”, right-click boot.ini and click properties, untick the “Read Only” checkbox.

The Default boot.ini File

If you have a single Windows OS installed, your original file should look similar to this:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=”Microsoft Windows XP Home Edition” /fastdetect

If you have two Window’s Operating Systems, it could look like this:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT=”Windows 2000 Professional” / fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS=”Microsoft Windows XP Professional” /fastdetect /NoExecute=OptIn

Breaking Down The Parameters

Before we start playing around with this file, let’s make a copy of it and store it somewhere for safe keeping - there is a reason why Microsoft hid it! :wink: Save your copy in the C:/ drive and name it something like: old_boot.ini.

There are two sections to this file: [boot loader] and [operating systems]. Let’s break each section down:

[boot loader]

This section controls how the boot loader will work. It specifies the default Operating System and how much time a user has to choose from one of the choices in the boot menu - if the boot menu has been enabled.

timeout

The timeout value specifies, in seconds, how long to display the bootloader menu and wait for the user to make a choice before loading the default Operating System. If you want to show the menu for 30 seconds, then set the value to 30. If you want the default operating system to boot right away, then set the value to 0. If you want the menu to be displayed forever and stay on screen until the user makes a choice, then set the value to -1.

default

The default value decides which of the operating systems listed is the default. This must be listed, even if there is only one OS installed on this machine! In my second example above, the current default OS is to multi(0)disk(0)rdisk(0)partition(1)\WINNT. If I wanted XP Pro to be the default, with a selection timeout of 15 seconds, I would set my options as so:
[boot loader]
timeout=10
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS

[operating system]

This section lists all of the Windows Operating Systems that are installed on this computer, and lists some options for each one. XP uses the Advanced RISC Computing (ARC) path to specify the location of the boot partition. In our example, the ARC path is:
multi(0)disk(0)rdisk(0)partition(1)\WINNT

The first parameter, which identifies the disk controller, should be 0. The second parameter, the disk parameter, should also be 0. The rdisk parameter identifies the disk number on the controller that has the boot partition. The numbers start at 0. So, if you have three hard disks installed and the second hard disk has the boot partition, the setting is rdisk(1). The partition parameter identifies the partition number of the boot partition. Partitions start with the number 1. The last section details the path to the folder where the operating system is installed.

To the right of the ARC path in the example is =” Windows 2000 Professional” /fastdetect. The text in quotes is what will show upon the boot menu. You could set this to whatever you want: “XP: Pirated Edition” The /fastdetect switch disables the detection of serial and parallel devices, which allows for faster booting. The detection of these devices isn’t normally required in XP, because the functions are performed by plug-and-play drivers, so as a general rule it’s a good idea to use the /fastdetect switch. The following table shows a few more switches you can use:

Switch Discription
/BASEVIDEO Starts XP using the standard VGA driver. It’s most useful if you can’t boot normally because of a video driver problem.
/BOOTLOG Logs information about the boot process to the ntbtlogl.txt file in the C:\Windows folder.
/CRASHDEBUG Loads the debugger at boot, but the debugger remains inactive unless a crash occurs.
/DEBUG Loads the debugger at boot and runs it.
/FASTDETECT Disables the detection of serial and parallel devices.
MAXMEM:n Specifies the maximum amount of RAM that XP can use.
/NOGUIBOOT Does not allow the XP splash screen to load during boot.
/NODEBUG Stops the debugger from loading.
/SAFEBOOT:switch Forces XP to boot into the safe mode specified by the switch parameter, which can be minimal, network, or minimal(alternate shell). In minimal safe mode, only the minimum set of drivers necessary to start XP are loaded. In network safe mode, networking drivers are loaded in addition to the minimum set of drivers. In minimal(alternate shell) the minimum set of drivers are loaded and XP boots into the command prompt.
/SOS Displays the name of each driver as it loads and gives descriptions of what is occurring during the boot process. It also offers other information, including the XP build number, the service pack number, the number of processors on the system, and the amount of installed memory.

When you’re all done playing around, save the boot.ini file. The next time you start your machine, you’re newly created file will be used – but only if you’ve kept the boot.ini file name! :!:

Example

If we want the menu to appear for 2 minutes, the default operating system to be XP, and the Windows 2000 splash screen to be turned off when we choose to load 2000, the boot.ini file should look like this:
[boot loader]
timeout=120
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT=”Windows 2000 Professional” /fastdetect /noguiboot
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS=”Microsoft Windows XP Home Edition” /fastdetect

Start Slide Show with PicLens Lite PicLens

Ryu Says 'Read These Related Posts!'


Ryu
  • Create a Startup Menu With Different Boot Options
  • Windows Hacks: Improve The Context Menu, Part 2
  • Windows Hacks: Improve The Context Menu, Part 3
  • WordPress Plugin: 404 Notifier
  • Windows Hacks: Improve The Context Menu, Part 1


  • The AngryNetworker and I Were Having a Conversation About Linux Yesterday on Facebook and I Wanted to Share My Thoughts on the Subject

    Written by Saman Sadeghi on March 23, 2008 and has been viewed 627 views times. 15 Comments »

    Recently, the AngryNetworker and I were having a conversation about Linux on Facebook and I wanted to share my thoughts on the subject. The conversation centered on Ubuntu’s frequency of major releases. The AngryNetworker had this to say:

    isn’t it ridiculous that every month or so theres some new major release of ubuntu. Now they are pushing out Kubuntu. this is why linux is has such a hard time really breaking into production environments….

    I had to correct him, and I’ll drop some science on you all, just in case you don’t know: Ubuntu releases major desktop versions about six months and Kubuntu follows a short while after. Also, here’s some more info for you all to marinate on: The Ubuntu release version numbers are based on the release dates and not actual versions, i.e.: Ubuntu 7.10 was release on October 2007 - it’s not the seventh release… If you’re interested, you can read more on Ubuntu’s Release Schedule.

    With this knowledge, I have to pose the question: Isn’t it a good thing that there is a major Operating System revision that is released so often? I think it pushes the coding envelope instead of having OS delayed four years and missing every major promised feature (I’m looking at you Vista). Just look at Apple: Every major release is a vast improvement on its predecessor. Ubuntu is following this dynamic: Each bi-annual release receives UI and feature improvements. I don’t want to pick in Microsoft here, but it feels like they took a hard look at XP and removed everything that was great about it, slapped on a GUI that is resource intensive (which forces hardware upgrades and degrades usability) and called it Vista.

    Before Vista, I was one of Microsoft’s biggest fans (that fact that 90% of my articles are on Windows is a testament to that) and now, the more I use Linux, the less I like XP. I think Linux has a long way to go, but the fact that both Apple and Microsoft are targeting the high end PC market leaves a huge gap in the low- and mid-markets which are perfect for OS’s like Ubuntu and gOS (I realize that these are both Debian derived, but they’re the distro’s I’ve had the most experience with).

    Ryu Says 'Read These Related Posts!'


    Ryu
  • Well, It’s Finially Happened - I Joined Facebook
  • Twitter Window Command Line Client
  • New Author: AngryNetworker
  • I Think These Are To Funny Not Too Share!
  • Linux Detergent And Micro&Soft Fabric Softener


  • Shutdown Multiple Windows Machines From The Command Prompt

    Written by Saman Sadeghi on March 13, 2008 and has been viewed 2,166 views times. 17 Comments »

    I’ve written about my love of batch files many times and one of my favorite tricks is shutting down a computer via the command line. In this tutorial, I will show you how to shut down multiple computers, which already connected to your network, via a batch file. This particular batch file will feature a loop that calls our shut down routine as needed!

    More Information

    Batch files are executed line by line, from top to bottom. By using labels, we will make the program jump around a bit. This will allow us to set a variable, call central command, then reset the variable and call the central command again. By doing this, we are only creating one variable – regardless of how many computers we have - we will just reuse that single variable. Less is more people! This method creates smaller, cleaner code: We don’t need separate variables for each computer; we just reset that variable as we need! Also, it’s important to note that each computer will use the same shutdown routine.

    Before we start, you will need to make sure that you know the name of each network computer and can access it. To find out the computer’s name, walk to each machine and hit the Windows Key+Pause/Break key and click on the Computer Name tab. Look for the value under “Full computer name:”. Once you know the name of each computer connected to the network (that you’d like to remotely shut down), the easiest way to see if you can access them is with the command prompt: Go to your machine (the one that will be running the command file, not the networked machines), hit the Windows Key+R, and type:
    \\{computer name}
    For example, if the networked computer’s name is “274D”, you would enter:
    \\274D
    If the computer’s shared directory is displayed, then you’re connected! If you get an error, then you need to check connectivity settings and those are beyond the scope of this article.

    Creating The File

    Save Text File As .batOpen Notepad and save the file, on your Desktop, as “Network Shutdown.bat” (or “I love ham”, it’s your choice :razz: ). Make sure you set the “Save as type” drop down to “All files”.

    Listing Each Computer

    Right-click your newly created batch file and click Edit (double-clicking it will launch the file). We need to list all of our computers in blocks. Each block be composed of three lines of code: We will set a variable with the network computer’s name, call the loop and then create a new label with that computer’s name:
    set varcomputer=274D
    goto loop
    :274D

    Let me explain what each line means:

    1. set varcomputer=274D
      By using the “set” command, we are creating a variable called “varcomputer”, we then set the variable. In this case, with the value “274D”
    2. goto loop
      We are telling the program to go to the label named “loop”, which we will create in a few steps.
    3. :274D
      This label has the value of the computer in this block. The loop below will tell the program to go to this label, then the program will continue on the next line (line by line, remember?!).

    Create a block for each computer that you’d like to shutdown:
    set varcomputer=274D
    goto loop
    :274D

    set varcomputer=322A
    goto loop
    :322A

    set varcomputer=bobs_pc
    goto loop
    :bobs_pc

    Notice that we are reusing the varcomputer variable. After you’ve listed each computer, write the “exit” command. This will tell the computer that we are all done and it may close the progam:
    exit

    Creating The Loop

    The loop will consist of four parts: a label, some information for the user, the actual shutdown command and the return for the loop:
    :loop
    echo Shutting down %varcomputer%.
    shutdown -s -m \\%varcomputer% -t 600 -c "The computer is shutting down. Please save your work."
    goto %varcomputer%

      Again, let’s break down each section:

    1. :loop
      This is the entrance for the loop. The second line of each computer block is sent to this label.
    2. echo Shutting down %varcomputer%.
      This is the information that is returned to the user who runs the program; it reads the current value of the “varcomputer”. This information will not be displayed on the networked machine.
    3. shutdown -s -m \\%varcomputer% -t 600 -c "The computer is shutting down. Please save all of your work."
      This is the shutdown command. It contains a few a few parts. For detailed information on each switch, please read Windows Tip: Shutdown Your Computer With The Command Prompt
    4. goto %varcomputer%
      This is the return for the loop. The program reads the current value of the “varcomputer” variable, returns to the final line of the current block and continues to the next block. By using the goto command, we are telling the program to return to a label – one that we’ve set with the “varcomputer” variable.

    The Finished Product

    Now that we are armed with this knowledge, we can put it all together – but before we do, let’s add a few finishing touches. At the beginning of your file, add this:
    @Echo off
    This will hide all commands from the user’s view and will only display comments (that are preceded by “echo”). Also, you’ll notice there are a few lines that are started with “rem”. These are internal comments that are not processed by the program. I’ve peppered the file with a couple for you to marinate on.

    Your batch file should look like this:
    @Echo off
    cd\
    Echo Saman=Program
    REM ****************************
    REM * Program Variables *
    REM ****************************

    set varcomputer=274D
    goto loop
    :274D

    set varcomputer=322A
    goto loop
    :322A

    set varcomputer=bobs_pc
    goto loop
    :bobs_pc

    Exit

    REM ****************************
    REM * Program *
    REM ****************************

    :loop
    echo Shutting down %varcomputer%.
    shutdown -s -m \\%varcomputer% -t 600 -c “The computer is shutting down. Please save your work.”
    goto %varcomputer%

    Cancel The Shut Down

    You can cancel a shut down that is in progess with the following line. This line cannot be run through the network! You have to walk to each machine and run the command either from the command prompt or the Run dialog, or Windows Key+R:
    Shutdown -a

    Start Slide Show with PicLens Lite PicLens

    Guile Says 'Read These Related Posts!'


    Guile
  • Windows Tip: Shutdown Your Computer With The Command Prompt
  • Windows Tip: Log Off Your Computer With A Shortcut
  • Windows Tip: Shutdown Your Computer With A Batch File
  • Customize The Command Prompt
  • Windows Hacks: Improve The Context Menu, Part 4


  • Alpha & Beta Testing, Release Candidates And Gold Code Explained

    Written by Saman Sadeghi on December 2, 2007 and has been viewed 1,261 views times. 5 Comments »

    I recently wrote about installing Windows XP Service Pack 3 Release Candidate 1 before its official release. After re-reading the article, I though it would be a good idea to explain what a “Release Candidate” is, and I might explain what other versions of tests exist out there in the programming world! Also, this isn’t the end-all-be-all list of how things are done in the real world as different companies might add or skip steps all together.

    Unit Testing

    “Unit testing” refers to testing an individual program - of course, this test only applies within a larger system, i.e. Operating System or the Human Resources program within your company’s Information System. Testing a program by itself would be the first step for a program as you would want to make sure it work the way it should before you integrate it into the larger system: You would want to make sure that the Inventory System can access and write to the database before you integrate it into the Purchasing System.
    Programing Code

    Volume Testing

    Testing an application with large amounts of data can revile bugs that weren’t noticeable with a smaller amount of test data, this is the purpose of Volume Testing: Making sure the Payroll System can access all of the records a giant database and can run queries without choking.

    Integration Testing

    Integration Testing is done by testing all related sub-systems together: The Inventory System can access the Purchasing, Manufacturing and Sales systems. Each of these sub-systems is working as intended, they are sharing data together and each can run quires on tables from different databases.

    System Testing

    When all of the individual programs are functioning as intended (or close to it) you test all parts together, as a whole. This is a “System Test”: The Operating System can initiate the Networking Utility, the Indexing Service is crawling user folders, the Power Management applet can be accessed and the Power Scheme can be changed. All of the individual programs are working and playing nicely together. System Testing is similar to Integration Testing, though a System Test refers to the entire system, which would include all related and non-related sub-systems.

    Acceptance Testing

    Acceptance Testing is conducing any tests as required by the user. The test could be considered as a “test run” by the end user: Is the user happy with the system’s functionality, are they using features as intended, etc.

    Alpha Testing

    Testing an incomplete or early version of the system, or individual program is referred to as “Alpha Testing”. This test is geared toward ensuring that smaller features of a larger system are working: Is the new “Weapons Inventory Heads Up Display” reading the game’s available “Weapon Inventory” database and can the player change weapons? Also, this test is used to make sure that these new features haven’t messed up other features that are currently in place. Usually, many parts of the system are broken in this stage, as it is usually done very early in the development phase.
    Directory Tree

    Programing CodeBeta Testing

    Beta Tests are done on a close-to-complete and stable system. Obviously, Beta Tests are done after an Alpha Test. A beta system is close to completion and almost ready for the end user.

    Mixing Tests

    Now that you are marinating on all of that knowledge, consider that these tests can be combined: Alpha-Unit testing is the testing of an individual program before it’s completely finished. Beta-Unit testing, on the other hand, is performed after Alpha testing, when the individual program is complete and ready to use by end users.

    Release Candidates

    RC’s are an example of a test done by some companies and not others. After a round (or a few rounds) of beta testing, Release Candidates are compiled. These versions are very close to official release. Additional tests are done to ensure that all features are working as intended and there are no bugs. If any (”any” is subjective, it can refer to an “acceptable” amount of bugs for this release version or any at all), they are fixed and another Release Candidate, i.e. RC 2, can be complied for additional testing.

    Gold Release

    Software that “has gone gold” is the final version of a particular product. This release is ready for instillation or, for consumer software, has been sent to the production plant for mass-production and will be for sale soon. These releases are almost identical to the final Release Candidate, with only the very latest (and/or most essential) bugs fixed.

    Start Slide Show with PicLens Lite PicLens

    Tanooki Mario Suggests You Read These Related Posts:


    Tanooki Mario
  • Download XP Service Pack 3 Before Its Official Release, How To And Review
  • The AngryNetworker and I Were Having a Conversation About Linux Yesterday on Facebook and I Wanted to Share My Thoughts on the Subject
  • Got My Spotplex Code!
  • Finally!! Lightning 0.5 & Sunbird 0.5 Releases Are Out!
  • Reminder: Geek Bling Contest Still Running!


  • Download XP Service Pack 3 Before Its Official Release, How To And Review

    Written by Saman Sadeghi on November 26, 2007 and has been viewed 2,893 views times. 35 Comments »

    As a Windows XP power user, I have been really disappointed with Vista - but that’s a story for another time (personally I view it as what XP SP3 be and not a new OS, but I digress). I had really high hopes for XP Service Pack 3 (XP SP3). I was really hoping that Microsoft included some great additions just like they did with Service Pack 2. I really wanted Windows File System (WinFS) and Unix Integration, so when I stumbled onto Hack Attack : Get Windows XP SP3 Through Windows Update, I flipped out! :grin:

    Download XP SP3

    The first step is to edit a Registry key in your system. Karthik Kastury has made it easy, he created a command file that does the work for you.

    Warning: You should always be careful when downloading a command or batch file from the web. Upon clicking my link below, Firefox users will be able to see the code before downloading it. Internet Explorer users will be prompted to open or save the file. After you save it to your desktop, right-click and select “Edit” to view the contents. Never trust anyone!

    1. Download the XP Service Pack 3 Registry Hack.
    2. Save it to your desktop as a command file (.cmd extension) and double-click it to run the file.
    3. Run Windows Update.

    What’s Going On

    What you are doing is adding a Registry Key that the Windows Update site reads. This key tells Windows Update that your machine is a beta tester and allows it to download SP3 before the official release, which is slated for release sometime in 2008. The version of SP3 (as of this writing) is Release Candidate 1.

    Windows Update, SP3

    Select the update and click “Install Updates”. The download should begin!

    Windows Update, Downloading SP3

    When the download is done, the Software Update Installation Wizard should launch.

    SP3 Software Update Instillation Wizard

    Agree to the license agreement.

    SP3 Software Update Installation Wizard, License Agreement

    Installation should begin!

    SP3 Software Update Installation Wizard, Updating System

    SP3 Software Update Installation Wizard, Backing Up Registry

    When installation completes, you will need to restart your machine.

    Computer Needs To Reboot

    When the machine boots, you can check your system properties by hitting the Windows Key+Pause/Break

    Computer System Properties

    SP3 Review

    I must say that I am completely disappointed. First off, when Service Pack 2 was released there were a lot of improvements to the operating system: Wireless Zero was massively overhauled and the Windows Security Center was new and shiny - and that’s just two of them - and, in addition, it included all of the security patches. I was really hoping that Microsoft would include some new features into SP3 and I haven’t found a single new program. I’ve looked everywhere that I can think of and haven’t seen anything new. Microsoft has been very tight lipped about what will be included in SP3 and it is entirely possible (though not likely) that the there are different versions of SP3 on the Windows Update server and this is just the “security version” - hopefully there are new features on the official release….

    Honestly though, I doubt it. With the poor adoption rate of Windows Vista, I really doubt that Microsoft would include any “wiz-bang” features into XP as that would just keep people from upgrade to Vista. Hopefully, Vista SP1 will as much as an improvement as XP SP2 was. :neutral:

    Bonus

    You might have noticed that I have a “Black” theme. You can read about it and download the Microsoft Royale Noir Theme for yourself!

    Start Slide Show with PicLens Lite PicLens

    Frog Mario Hops For These Related Posts:


    Frog Mario
  • Alpha & Beta Testing, Release Candidates And Gold Code Explained
  • Finally!! Lightning 0.5 & Sunbird 0.5 Releases Are Out!
  • Bla.st
  • Convert And Download YouTube Videos
  • The AngryNetworker and I Were Having a Conversation About Linux Yesterday on Facebook and I Wanted to Share My Thoughts on the Subject