bootix ::: Windows 98 Diskless ::: RAM Disk
 

Windows 98 Diskless Operation using a RAM Disk

This description is for users who want to run diskless Windows 98 PCs in insecure or hard to access environments. The installation is bound to the BootManage® TCP/IP BOOT-PROM product.

Requirements:

  • A reference PC with a harddisk and a network card (to create a minimised Windows98)
  • A diskless PC with a network card
  • A BootManage® TCP/IP BOOT-PROM (for the network card in the diskless WS)
  • The BootManage® TCP/IP BOOT-PROM Utilities
  • At least 256MB RAM
  • The Original Microsoft Windows 98 Installation CD
  • The Freeware Tool XMSDSK
  • DOS pack and expand software
  • 1 Bootserver with installed and well configured BOOTP and TFTP Services
  • More than basic Know How of Windows98, including the installation routine

If you want to run Windows 98 diskless you have to install a minimised version of it on a reference PC with a harddisk first. This minimised version will later be used as the reference.

This reference installation will be packed in archives and put on the server, off which the diskless PC will download it at bootime. Before the diskless client can actually start booting it has to install a ramdrive in its memory. This is needed to run the mini Windows 98. A very good piece of software for this purpose is the freeware utility XMSDSK. The transfer of the data into this ramdrive is organised by a program called BPUTIL.

How it works

Copy the contents of the compressed Windows 98 Installation of the original Microsoft CD into a directory of the reference PC. In order to create the mini installation of Windows 98 you have to extract the files COPY.INF, SETUPP.INF, PRECOPY.INF, MSINFO.INF, LAYOUT.INF from the CAB files you copied to the reference PC before (use the EXTRACT.EXE command, which resides in the same directory after the copy), and modify these files afterwards as described in the Appendix. The modifications make Windows 98 load only really needed drivers. This saves a lot of space.

Once you have altered the INF files following the description below, you start the installation as usual with the SETUP.EXE command, but this time from the directory which contains the modified INF Files. While the installation process is going on you will be asked for the installation of optional components. Please deactivate almost everything in order to save memory space. They can be added later.

Having finished the mini installation on the reference PC, reboot it to start the new installed mini Windows and copy the reference installation of Windows 98, from the operating system directory C:\WINDOWS of this reference PC to a directory of your choice on a (boot) server using the command "XCOPY /c /h /e /k /r /s c:\windows".

Now move to this directory on the server and create packed archive files of this directory using your DOS pack program. These archives will later be downloaded by the diskless client and expanded in its ramdrive.

In our sample we use the Pack Programm JAR16 to create the archives 1.JAR, 2.JAR and 3.JAR which contain the mini Windows 98. They were put into the c:\tftpboot\jar directory on the server and downloaded from there when the diskless PC boots.

If you want to modify the configuration of your diskless PC at a later point in time, start this PC, alter the files on this diskless PC, copy the files back to the server (as described above) and create archives with the new contents. Then define the new archives to be the ones for this diskless PC.

The Boot Image

To initiate the very first step of the boot process we still need a bootimage, that sets up the network connection and takes care of the download of the archive. The easiest way to get one is to modify a regular bootable floppy.

Format a floppy in the reference PC with the command „Format a: /u /s“ and copy the following files from your refernce PC to this start diskette:

EMM386.EXE
HIGHMEM.SYS
COUNTRY.SYS
DBLBUFF.SYS
DISPLAY.SYS
EGA.CPI
IFSHLP.SYS
KEYB.COM
KEYBOARD.SYS
MODE.COM
SETMDIR.EXE
BPUTIL.COM
BPUTIL.SYS
XMSDSK.EXE

The files above reside in different directories on the reference PC.

Note: The SETMDIR.EXE file is part of a CAB Archive and has to be extracted. BPUTIL is on the BootManage® Utility Disk. The Link to the freeware Utility XMSDISK is listed in the Appendix.

Please don't forget to copy your expand program to this floppy.

Description of the start up files:

CONFIG.SYS

DEVICE=bputil.sys -f
DEVICE=HIMEM.SYS /testmem:off
DEVICE=emm386.exe noems /Y=c:\windows\emm386.exe
DEVICE=bputil.sys –x
DEVICE=ifshlp.sys
DEVICE=dblbuff.sys
DEVICE=display.sys con=(ega,,1)
Country=049,850,country.sys

The execution of BPUTIL.SYS –f and –x make the PC protect the section of the RAM that contains the boot image. Windows 98 needs the drivers IFSHLP.SYS and DBLBUFF.SYS when it starts. DISPLAY.SYS and COUNTRY.SYS define the country options.

AUTOEXEC.BAT

mode con codepage prepare=((850) ega.cpi)
mode con codepage select=850
keyb gr,,keyboard.sys
xmsdsk 160000 /y
copy start.bat c:\
c:\start.bat

MODE CON sets the country specifics and KEYB is responsible for the keyboard layout. XMSDSK creates a 160MB ramdrive. START.BAT contains all the additional calls to start the mini Windows 98 in the main memory. The execution of the second start file on the C: drive is necessary to release the memory space that has been allocated by the boot image.

START.BAT

c:
md c:\bin
copy a:\bputil.* c:\bin.
copy command.com c:\command.com
set comspec=c:\command.com
Path=c:\bin;c:\windows;c:\windows\system;c:\windows\command
REM Get JAR Archive
bputil -t #@sip*############### /tftpboot/jar/3.jar x.jar
a:\jar16 x -y x.jar
del x.jar
bputil -t #@sip*############### /tftpboot/jar/2.jar x.jar
a:\jar16 x -y x.jar
del x.jar
bputil -t #@sip*############### /tftpboot/jar/1.jar x.jar
a:\jar16 x -y x.jar
del x.jar
setmdir /r:c:\windows
bputil –r
win

The START.BAT file does the following:

To be able to delete the ramdrive A:, BPUTIL and COMMAND.COM have to be copied to the C: drive. COMSPEC and PATH are set to fit the new environment and BPUTIL –t transfers the archive files without having loaded network driver (this capability is part of the BootManage® TCP/IP BOOT-PROM product).

After all the archives have been the expanded on C:, we use SETMDIR to read the registry files USER.DAT and SYSTEM.DAT in the C:\WINDOWS directory. As soon as the BPUTIL –r has successfully been executed and freed the memory space of the boot image Windows98 can now run diskless. More detailed descriptions of parameters can be found in the BootManage® TCP/IP BOOT-PROM User´s Manual.

Having performed all modifications to the start up floppy, you can now convert the bootable floppy into a boot image using the BootManage® BPSHELL software. This boot image has to reside on the server that will be used as the boot server for the diskless PC.

See the BootManage® TCP/IP BOOT-PROM User´s Manual auf Seite 35 to read more about the configuration of the BOOTP/TFTP services on the server.

Appendix A: File locations

XMSDSK.EXE Freeware Utility Copyright (C) 1992-1998 Franck UBERTO
BPUTIL.COM BootManage Utility Disk
BPUTIL.SYS BootManage Utility Disk
BPSHELL.EXE BootManage Utility Disk

Appendix B: Directory listing of the start up floppy

a:\start.bat
a:\config.sys
a:\autoexec.bat
a:\COUNTRY.SYS
a:\DISPLAY.SYS
a:\DBLBUFF.SYS
a:\EGA.CPI
a:\EMM386.EXE
a:\HIMEM.SYS
a:\IFSHLP.SYS
a:\KEYB.COM
a:\KEYBOARD.SYS
a:\MODE.COM
a:\BPUTIL.sys
a:\BPUTIL.com
a:\JAR16.EXE
a:\XMSDSK.EXE
a:\SETMDIR.EXE

Appendix C: Modifications to the INF files

Turn the following lines of the INF files into comments (insert ; at the beginning).

SETUPPP.INF

[inf.files]
;mtd.inf
; decpsmw4.inf
; mdmvv.inf
; netcd.inf
; netdca.inf
; netsmc32.inf
; netub.inf
; netncr.inf
; netracal.inf
; netevx.inf
; netznote.inf
; nettulip.inf
; mwavmdm.inf
; mwavwrap.inf
; mwdsp460.inf
; mwmed460.inf
; mwprt460.inf
; mwutl460.inf
; mwdsp420.inf
; mwmcimed.inf
; mwmdm420.inf
; mwmed420.inf
; mwprt420.inf

[load_inf]
; 1394.inf
;adapter.inf
;amovie.inf
;awfax.inf
;atitunep.inf
;atixbar.inf
;cwbaud98.inf
;dvd.inf
;dxmedia.inf
;dxtrans.inf
;mpcodecs.inf
;enable.inf
;f3audio.inf
;gps.inf
;hiddev.inf
;ics.inf
;icshare.inf
;icsharep.inf
;icw97.inf
;image.inf
;inetmail.inf
;infrared.inf
;instcm16.inf
;ks.inf
;ksfilter.inf
;kscaptur.inf
; mdacinst.inf
;msnclnup.inf
;nettlan.inf
;netfjvi.inf
;netdl660.inf
;msjava16.inf
;netfar.inf
;Netel5x9.inf
;netel59x.inf
;net3c562.inf
;net3comt.inf
;oobeinst.inf
;powercfg.inf
; mf.inf
;monitor2.inf
;monitor3.inf
;monitor4.inf
;monitor6.inf
;monitor7.inf
;monitr10.inf
;monitr11.inf
;motown.inf
;dxtrid.inf
;dxmga.inf
;dxmm3dfx.inf
;dxati.inf
;dxglint.inf
;dxpmedia.inf
;dxneom.inf
;dxchips.inf
;dxcirrus.inf
;dxi128.inf
;dxrend.inf
;dxs3.inf
;dxtseng.inf
;msddraw.inf
;dxwd.inf
;dxnvidia.inf
;mfcem28.inf
;mfcem33.inf
;mplay98.inf
;msmail.inf
;msprint2.inf
;msprint3.inf
;msprint4.inf
;mtd.inf
;net557.inf
;ibmeimp.inf
;ibm4mir.inf
;net3com.inf
;net3c575.inf
;netsilc.inf
;netel90x.inf
;nettpro.inf
;netstrm.inf
;netflex.inf
;neto100.inf
;netoce3x.inf
;ethpcmdm.inf
;ethpcmf.inf
;ethpcnet.inf
;netejet.inf
;netfjvj.inf
;netm32a.inf
;netmhz.inf
;net2xnet.inf
;oce2xmf.inf
;iedat16.inf
;octkmf.inf
;octknet.inf
;netcbe.inf
;netce2.inf
;neticard.inf
;net100i.inf
;nettdkp.inf
;netcem28.inf
;netcem33.inf
;netfl32.inf
;netibm2.inf
;netpro10.inf
;netmadge.inf
;nettcc.inf
;netcable.inf
;netprot.inf
;nethppci.inf
;netamd.inf
;netex10.inf
;netrt.inf
;netrtf.inf
;nete10p.inf
;nete100i.inf
;netatki.inf
;netdec.inf
;netee16.inf
;netpci.inf
;netnf3.inf
;netnice.inf
;netnovel.inf
;neta351.inf
;netfore.inf
;netmatmc.inf
;netoca1p.inf
;netoli.inf
;nethp.inf
;netsmc.inf
;netsmctr.inf
;netxir.inf
;netibm.inf
;netibmv.inf
;netcpq.inf
;netsnip.inf
;netcem.inf
;netbw.inf
;netdlc.inf
;cemmf.inf
;pcmcia.inf
;pcmciamf.inf
; pwsinfo.inf
;sb16awe.inf
;scsi.inf
;sti.inf
;tapi.inf
;taishid.inf
; usb.inf
;wdmaudio.inf
;sbp2.inf
;vidcap.inf
;wave.inf
;msdsound.inf
;wordpad.inf
;ws2atmsp.inf
;netblue.inf
;nethpind.inf
;nethppnd.inf
;netibm1.inf
;netnepls.inf
;netoce4x.inf
;net3c589.inf
;netrptip.inf
;netmdyp.inf
;netepc.inf
;netsmc2.inf
;mf8020m.inf
;net8020m.inf
;smcmodem.inf
;netsmc1.inf
;netce3.inf
;netm16a.inf
;netenet.inf
;netrnsf.inf
;netcbdec.inf
;netfake.inf
;umaxusd.inf
;vgx.inf
;webfdr16.inf
;usbcdc.inf
;mdm3cusb.inf
;mdmluc.inf
;mdmgl001.inf
;mdmgl002.inf
;mdmgl003.inf
;mdmgl004.inf
;mdmgl005.inf
;mdmgl006.inf
;mdmgl007.inf
;mdmgl100.inf
;usbwave.inf
;atmuni.inf
;axa.inf
;cabpayie.inf
;cchat25.inf
;clip.inf
;cxpdfgo.inf
;cxpdfpci.inf
;decpsmw4.inf
;didiva.inf
;digiisdn.inf
;diwan.inf
;easyisdn.inf
;imagevue.inf
;infoisdn.inf
;mfdfgo.inf
;mfdfpci.inf
;mmopt.inf
;msdxddex.inf
;msnetmtg.inf
;oe9x50.inf
;wab9x50.inf
;ncplatfm.inf
;ncwandis.inf
;ndscli.inf
;netcmdr.inf
;netdfgo.inf
;netdfpci.inf
;netdlc32.inf
;netibmtb.inf
;neteni25.inf
;netaic59.inf
;netcd.inf
;netdca.inf
;netlane.inf
;netsmc32.inf
;netub.inf
;netncr.inf
;netracal.inf
;netevx.inf
;netznote.inf
;nettulip.inf
;ols.inf
;sampler.inf
;swdir16.inf
;swflsh16.inf
;themes.inf
;themes1.inf
;themes2.inf
;tour98.inf
;wbem.inf
;wpwin98.inf
;wsh.inf
;vdolive.inf

 


Impressum | Datenschutz