Windows Vista

Microsoft recently announced the next version of Windows will be called Windows Vista. August 24th will mark the 10th anniversary of the launch of Windows 95. I remember that era very well. I was running Windows 3.1 on DOS 6.22 on a 486SX/33. When my mom went shopping at the supermarket I would always go to the magazine rack. I would read articles about “Chicago”, the codename for Windows 95 and check out screenshots of builds in progress. It was all very exciting to computer users because it was the first 32-bit Windows version for consumers. I remember reading about long filenames, the start menu, built in WINSOCK and plug and play support. Today, we don’t even think or appreciate these features. Before Windows 95 you had to name everything in the 8+3 format. Imagine MP3s being limited to the 8+3 format: madonna1.mp3, madonna2.mp3, etc. If you wanted to get on the Internet with Windows 3.1 you had to get Trumpet Winsock. By the way: did anyone ever register Trumpet Winsock? It was shareware, but no one ever seemed to care about that.

My favorite operating system of all time is Windows 2000 Professional. I remember ordering a Hands On Training (HOT) kit for $129 that included Beta 3 copies of Windows 2000 Pro, Server and Advanced server, a training CD, a sales CD and a free t-shirt. The kit also included final build, Not For Resale (NFR) copies of Pro, Server and Advanced Server, with the server versions having 10 CALs each. I just loved the shadow under the mouse: it made the operating system seem 3D like! Now we have Windows XP: product activation, skins and bloat. OK, OK, I admit it: I have a Macintosh theme on my Windows XP laptop! I look at Windows XP as a Windows 2000 add-on. It took 3 years and over 5000 developers to create Windows 2000 and it’s still going strong.

I can’t wait to try out a late beta of Windows Vista. I heard they are getting rid of the old DOS like underpinnings and are replacing the setup routine with a Windows PE like environment. You can keep up on the development of Windows Vista (a.k.a. Longhorn) by visiting Paul Thorrutt’s web site. Paul also has a nice, text based newsletter called WinInfo that he sends out packed with the latest geek news. I highly recommend it. Best of all it’s FREE!

Here are two videos on the daily workings of making a Windows build:

Windows XP Daily Build Cycle

Windows 2000 Daily Build Cycle

Voxware Meta Sound Codec (needed to listen to Windows 2000 video)

– Soli Deo Gloria

BSOD Land

One Friday morning several months ago I encountered a very perplexing problem. A bunch of tickets called into the Help Desk about Windows 2000 machines BSODing. BSOD = Blue Screen of Death: a techie’s favorite (or not so favorite) term to describe a dead Windows machine. We determined that a patch pack pushed out the night before was likely the cause. However, the BSOD only seemed to happen on reboot and only on certain Omnitech 3200 machines and not all of them, nor all the time! Upon rebooting some of these machines several times they worked fine until later on when they were rebooted again. I even took one of them out of commission that was crashing, turned off automatic rebooting, wrote a reboot script and left the machine to reboot for 24 hours continuously. Not once did it crash!

The event log showed nothing, a Google search on the error came up with nothing and the crash could not be consisently produced on demand. The BSOD itself was very useless: an INVALID_PAGE_FAULT in NTOSKRNL. NTOSKRNL, as you know, is the heart of the Windows 2000 operating system. It was painfully obvious that it was not the cause of the crashes. We would either rebuild the machines which would fix the problem and then reapply the security patches or just tell the user to keep rebooting the system (incidentally, booting the PCs into safe mode always worked).

After several weeks of rebuilding machines we grew very tired of the situation. No one seemed to have an answer and someone was even called in on a Saturday to reboot a PC with this problem! Something had to be done! Having trial copy of Winternals Administrator Pak 5 I had access to Crash Analyser. What this tool does is it uses Microsoft’s own debugging tools to decipher the dump file and then it in turn deciphers the Microsoft debug summary to make a best guess as to what caused the crash. I grabbed the C:\WINNT\MEMORY.DMP file after turning on crash dumping on one of the machines causing an issue. Upon running the utility I found out that idechdr.sys was the file causing the crash! So, after discovering this, I went to each machine called in and uninstalled the IDE drivers in safe mode and then let Windows 2000 redetect them on the next reboot. This solution finally worked!

This does not explain however what caused this in the first place. I had an Omnitech 3200 under my desk as my work PC and never once did it fail on me with the BSOD. It’s very likely that your company won’t go out and purchase the Administrator’s Pak based on cost, so you can read Dirk Smith’s excellent article entitled How to solve Windows system crashes in minutes which uses only the freeware debugging tools directly from Microsoft.

– Soli Deo Gloria

Universal Network Boot Disk

What better way is there to compliment your new universal Ghost image and impress your boss then a universal network boot disk? A PXE server? OK, so maybe it’s not the greatest thing in the world, but it sure beats carrying around lots of floppies with you. Not to digress, but why is it that we are still using floppies? The IBM PC was invented in 1981 and here it is 2005 and just last year Microsoft sent out a white paper to companies pleading with them to support booting from USB Flash Devices (UFD). Come on guys, wake up! UFDs are bigger, more reliable and a lot more fun than floppies. Now that Windows PE 2005 supports booting from UFDs we need to pressure these companies to support booting from them.

OK, back to the network boot disk. The one I’m talking about is Bart’s Network Boot Disk. One word: freeware. Yes, freeware! I love Bart! He’s also the one that makes PE Builder. Check it out: it’s very cool stuff! Download the full BFD package and extract it to a directory. Now execute “bfd msnet A:” from the command line. This will make a self-booting network boot disk using the MS-DOS 7.1 files (an interesting side note here is that Bart has had legal problems with Microsoft and PE Builder. It’s a mystery then why he would bundle the MS-DOS 7.1 files directly into this package even though these files are available in particularly every corner of the Internet). Congrats, you just made a universal network boot disk!

Listed on the same page are driver CAB files for practically every NIC ever made! Now here’s the slick part: you can just drop in the CAB files you need into A:libndis and the disk will rebuild itself accordingly! How cool is that? You’ll notice that the drivers haven’t been updated for at least 2 years and may not include support for the latest NICs. That was the problem when we got in motherboards supporting the Intel 915 chipset. The network boot disk would not find the NIC and even when we manually picked it off the menu the driver would not work (it was a variant of the Intel Pro 100VE). Let’s look into how the boot disk works. Every PCI device has a unique hexadecimal id. Let’s boot from the network boot disk you created and run pciscan -v:

We can clearly see that there are vendor ids and device ids. Based on these two pieces of information the boot disk can determine what driver to load. If you download PCISCAN from his web site it gives a much better explaination then I give. PCISCAN gets its information from nic.map. Let’s look for this vendor id in this file:

ret=”SMCPWR2.COM”
ven=10B8 “SMC”
dev=0005 “SMC9432TX EtherPower II 10/100”
ven=1011 “DEC”
dev=0002 “DC21040”
0014 “DC21041”
0009 “DC21140”
0019 “DC21143”

There is it! I booted the disk using Virtual PC 5 and this is the type of NIC it emulates. So 1011=DEC and 0009 = model DC21140. Let’s take a look inside one of these CAB files sitting in A:libndis:

  • e100b.dos
  • e100b.ini
  • ndis.pci
  • ndis.txt

If we look into ndis.pci for the above driver this is what it looks like:

ret=”E100B”
ven=8086 “Intel”
dev=1002 “PRO 100 Mobile Adapters”
1031 “PRO/100 VE Network Connection”
1032 “PRO/100 VE Network Connection”
1035 “PRO/100 VM Network Connection”

So in the case of us getting the new computers in with the Intel 915 chipset we just had to get a new .DOS file and update the .PCI file with the correct hexadecimal id. You can get the latest .DOS file easily by visiting Intel’s web site. They have DOS drivers for all their NICs. We can use PCISCAN or PCI32 to find the hexadecimal id of the NIC and then add that with the appropriate description. Finally, we have to repackage them back up into a CAB file. You can download makev3.zip from here to do that.

The other advantages to this disk are that it randomizes the NETBIOS name so you can use it in multiple computers at the same time. You can also setup a profile which will save the work group or domain name so you don’t have to keep entering it each time. I editted the disk so that it just boots without sitting at the menu asking if you want emm386 support or not. The other thing I changed is the prompt for the second password. This can be fixed by editting the msnet.bat in msnet.cab. Make the following changes:

—————-in this section——————-
:_logon
echo MSNET: Network logon as “%p_user%”
net logon %p_user% %w_passwd% /yes /savepw:no
———————end————————-

change to:

—————-change this——————-
net logon %p_user% %w_passwd% /domain:%logondomain% /yes /savepw:no
———————end————————-

—————-in this section——————-
echo MSNET: Starting network services
net start workstation
if errorlevel 1 goto _abort
———————end————————

add:

——————add this———————–
echo %w_passwd%> password.txt
———————end————————-

That gets rid of the second prompt for the password. Again, note that you will have to use makev3 to repackage the files extracted from msnet.cab back into a CAB file. Note that since this is a DOS boot disk you’ll also need WINS support on your network to make it work. DNS alone will not cut it! The bad news is the new 64-bit processors won’t do 16-bit applications or true DOS anymore! Hopefully Windows PE will be well supported for booting purposes by the time 64-bit processing becomes popular. You can port this boot disk to a UFD as well, making boot time in 12 seconds or less so when you have inpatient techs like DAVE it will go faster for them!

– Soli Deo Gloria