18 Steps to a TCP/IP Boot Disk
This article is from the March 2001 issue of Windows 2000 Magazine.
All you need is a blank disk and a little patience
A 3.5" MS-DOS 6.22 boot disk that lets you boot a computer and access shared files across a TCP/IP network is a useful administrative tool. A TCP/IP boot disk is handy when you're using imaging software to roll out a standard client image across the network, running an unattended installation of Windows NT 4.0, or troubleshooting a machine that has a FAT partition. The main problem with a TCP/IP boot disk is fitting onto one disk all the files that you need to access a share across a TCP/IP-based network.
Few administrators have access to a machine that they can use to directly format an MS-DOS TCP/IP boot disk. However, you can use the following procedure to make such a disk. You need only a blank 1.44MB 3.5" disk, an NT Server 4.0 CD-ROM, MS-DOS network adapter drivers, and a Windows workstation. You need to create a separate boot disk for every different type of network adapter you use.
Insert a blank, formatted 3.5" disk into the workstation's drive A.
Insert the NT Server 4.0 CD-ROM into the workstation's CD-ROM drive (drive E in this article).
Run E:\support\hqtool\makedisk.bat to create an NT 4.0 hardware query disk, which works as an MS-DOS boot disk that you can customize.
After makedisk.bat has finished running, go to the 3.5" disk. Remove hardware query components that makedisk.bat has placed on the disk (i.e., A:\zipfile.exe, A:\setramd.bat, A:\dos\findramd.exe, and A:\dos\ramdrive.sys). The boot disk doesn't need the hardware query components, and they consume valuable disk space that you need for the TCP/IP networking components.
To ensure that A:\autoexec.bat doesn't reference any files that you removed in Step 4, edit A:\autoexec.bat to contain only
@echo off prompt $p$g SET PATH=A:\DOS
To prevent errors when config.sys attempts to reference the hardware query components that you deleted, edit A:\config.sys to contain only
DEVICE=A:\DOS\HIMEM.SYS DEVICE=A:\DOS\EMM386.EXE FRAME=NONE DOS=HIGH,UMB FILES=30 BUFFERS=20 LASTDRIVE=Z STACKS=9,256 SHELL=A:\COMMAND.COM A:\ /E:512 /P
This step completes the creation of the MS-DOS boot disk.
Copy the E:\clients\msclient\netsetup folder and its contents to a FAT partition on your local system (drive C in this article) that you can access when you boot from your new boot disk. The system will use the Netsetup files to install the TCP/IP networking component to the disk.
Create a folder on drive C and name it NIC_Driver. Copy your network adapter's MS-DOS\Windows for Workgroups (WFW) 3.11 drivers into the NIC_Driver folder. (You can find the drivers on the CD-ROM or disk that came with the adapter or download the drivers from the adapter manufacturer's Web site.) You need at least the two drivers oemsetup.inf and nic_card.dos. If your adapter doesn't have an oemsetup.inf file, copy the drivers that are available, then use the workaround described for this situation when you reach Step 12.
Use your newly created boot disk to reboot your machine.
at the command prompt, then press Enter to start the setup program for Microsoft Network Client 3.0 for MS-DOS. Press Enter again to set up the Network Client software on your boot disk.
Select C:\net in the Network Client directory and press Enter. The network setup program creates a C:\net folder and places all the necessary binaries and configuration files into that folder. You specify the local hard disk, not the boot disk, as the file destination because the Network Client setup program copies more than the essential files, and those files take up more space than is available on the boot disk. In later steps, you'll remove superfluous files from the C:\net folder and place the streamlined C:\net folder on your boot disk.
A screen that lists network adapters appears. From the list, select the network adapter that your system is using. If your adapter doesn't appear on the list, select Network adapter not shown on list below and press Enter. On the next screen that appears, enter the path to the NIC_Driver folder that you created in Step 8 (due to the 8.3 naming format of MS-DOS, a folder named NIC_DRIVER will be accessible under MS-DOS as NIC_DI~1). The next screen that appears displays a list of network adapters that your drivers support. Select your adapter, and when the next screen prompts you, press Enter to select the Setup for best performance option. This option configures the network drivers to use more memory for network buffers.
If you found in Step 8 that your network adapter doesn't include an oemsetup.inf file, you can select any network adapter from the list, manually copy the nic_card.dos driver for your network adapter into the A:\net folder, and copy into A:\net\protocol.ini the entries in the sample protocol.ini file that comes with your nic_card.dos driver. You also need to change the netcard, lana0, and bindings entries in A:\net\protocol.ini to point to the new driver section. Listing 1 (see below) contains a sample protocol.ini file.
After you adjust the protocol.ini file, edit the netcard entry in A:\net\system.ini to point to the new nic_card.dos driver. Listing 2 (see below), shows an example of a system.ini file's [network drivers] section.
After you select your adapter, the setup program asks you for a username. Type the domain account that you'll use to connect to the remote share (in this article, the username is Administrator). Press Enter.
The next screen that appears, the setup menu, lets you change names, setup options, and network configuration. Select the Change Names option, and on the resulting screen, which Figure 1 shows, set Change Computer Name to a unique name and set Change Domain Name to the domain in which the Administrator user account resides.
Press Enter, and the program returns you to the setup menu. Select Change Setup Options, and on the resulting screen, set Change Logon Validation to Logon to Domain, as Figure 2 shows. Press Enter to return to the setup menu, then select Change Network Configuration. The resulting screen, which Figure 3 shows, contains two boxes; you can press Tab to toggle between the boxes. By default, the NWLink IPX protocol is bound to the network adapter. To add the TCP/IP protocol, shift to the lower box, select Add Protocol, and press Enter. A list of protocols appears. From the list, select Microsoft TCP/IP and press Enter. You return to the previous screen. To remove the NWLink IPX protocol, toggle to the upper box and choose NWLink IPX Compatible Transport. Then, move to the lower box, select Remove, and press Enter. The resulting window will look similar to Figure 3.
If your network doesn't use DHCP to configure clients, you need to change the TCP/IP settings to give your network adapter a static IP address. Select Microsoft TCP/IP in the upper box, then toggle to the lower box and select Change Settings. Press Enter. The resulting screen lets you specify an IP address, subnet mask, and default gateway. To disable the DHCP client, you also need to set Disable Automatic Configuration to 1.
Press Enter as many times as necessary to reach the setup menu. On the setup menu, select The listed options are correct, and press Enter. When the setup program prompts you for an OEM driver disk, press Enter again. Then, press F3 to finish setup without rebooting. Eject the boot disk, and reboot to your main OS.
To fit the C:\net folder and its contents onto the boot disk, you need to remove all nonessential files. Open the C:\net folder and delete
C:\net\setup.exe C:\net\sockets.exe C:\net\nwlink.exe C:\net\expand.exe C:\net\ping.exe C:\net\ipconfig.exe C:\net\addname.exe C:\net\win_sock.dll C:\net\winsock.dll C:\net\wsockets.dll C:\net\rascopy.bat C:\net\vbapi.386 C:\net\vsockets.386 C:\net\readme.txt C:\net\*.inf
Copy C:\net to your boot disk, and use a text editor to replace C:\net with A:\net in the autoexec.bat, config.sys, and system.ini configuration files on the boot disk. For example, change C:\net\autoexec.bat to A:\net\autoexec.bat.
Open the A:\net\system.ini file, and find the [network] section. Within that section, replace the workgroup=WORKGROUP line with passwordcaching=no. The boot disk doesn't require the workgroup line, and setting passwordcaching to no ensures that a file on your boot disk doesn't cache your user account password; such a cache might create a security problem in some organizations.
After you complete these 18 steps, you have a TCP/IP boot disk with about 200KB of space to spare. I've used this method successfully with Ethernet and Token-Ring LAN adapters.
If you need boot disks for more than one computer, use the diskcopy.exe command to make copies of your new boot disk. To avoid an identity crisis on your network, you need to change the computername entry in A:\net\system.ini to make each disk unique. If you specified a fixed IP address instead of using DHCP, you need to change the IP address in the TCP/IP section of the A:\net\protocol.ini file to a unique address on each disk you copy.
Your TCP/IP boot disk will let you boot clients to your TCP/IP network and use the Netuse command to map network drives. I commonly use TCP/IP boot disks to roll out a standard client image to multiple machines. When client machines have different hardware, I can map a drive to a network share that contains NT 4.0 installation media and use a boot disk to perform a manual or unattended installation of NT 4.0 onto a machine that doesn't have a CD-ROM drive. Putting all the files I need for booting on one disk makes performing these administrative tasks much easier.
LISTING 1: Sample Protocol.ini File NONEXECUTABLE [network.setup] version=0x3110 netcard=ms$driver,1,ms$driver,1 transport=tcpip,TCPIP lana0=ms$driver,1,tcpip [TCPIP] NBSessions=6 SubNetMask0=255 0 0 0 IPAddress0=0 0 0 0 DisableDHCP=0 DriverName=TCPIP$ BINDINGS=ms$driver LANABASE=0 [protman] DriverName=PROTMAN$ PRIORITY=MS$NDISHLP [ms$driver] DriverName = nic_driver$ MAXTRANSMITS = 6 RECVBUFS = 2 RECVBUFSIZE = 256 XMITBUFS = 1 XMITBUFSIZE = 2040 Note: The ms$driver values need to match the ms$driver section heading. The sample protocol.ini file that comes with the driver file provides the entries in the ms$driver section.
LISTING 2: A system.ini file's [network drivers] section [network drivers] netcard=nic_card.dos transport=tcpdrv.dos,nemm.dos devdir=A:\NET LoadRMDrivers=yes
Note: The netcard value needs to be the driver file name.
In "18 Steps to a TCP/IP Boot Disk" (March 2001), Step 12 failed to mention that the NIC_DRIVER file becomes NIC_DR~1 under MS-DOS because of the 8.3 naming format. We apologize for any inconvenience this omission might have caused.
About the Author
Steve Ryles is an MCSE, a Compaq ASE, and a Windows NT and Microsoft Exchange consultant who works for Unisys. You can reach him at firstname.lastname@example.org.
The above article is courtesy of Windows 2000 Magazine. Click here to subscribe to Windows 2000 Magazine.
We at Microsoft Corporation hope that the information in this work is valuable to you. Your use of the information contained in this work, however, is at your sole risk. All information in this work is provided "as -is", without any warranty, whether express or implied, of its accuracy, completeness, fitness for a particular purpose, title or non-infringement, and none of the third-party products or information mentioned in the work are authored, recommended, supported or guaranteed by Microsoft Corporation. Microsoft Corporation shall not be liable for any damages you may sustain by using this information, whether direct, indirect, special, incidental or consequential, even if it has been advised of the possibility of such damages. All prices for products mentioned in this document are subject to change without notice.