RIPLing Windows: Further Variations

Original work by Micho Durdevich

Introduction
We continue with the study of RIPLing Windows from OS/2 Warp Server. The aim of this note is to present a couple of more sophisticated constructions. We shall start by considering diskless Win95 workstations with a RAM-drive [C:], that remote boot Win95 from a network drive, say [F:].

We shall then discuss, very briefly, some technical details of the RIPL setup for Windows 98. Interestingly Win98 (without IE shell integration) RIPLes better than Win95 (after all, Win98 comes with many subtle improvements, updated drivers, and so on). In spite of this fact, there is not any official support for remote-boot configurations from Microsoft.

Motivations
Our RIPL context gives a very specific computing environment. Some of the benefits of introducing a RAM drive on client workstations are:
 * This drive can hold important frequently accessed files, including the swap file, temporary files etc, minimalizing the network load. Of course, putting the swap file on the RAM drive implies that effectively there will be no virtual memory...
 * We can put the system Registry on the RAM drive (being copied from the server during the workstation startup). This means that all the changes on the Registry will not be saved, until we manually copy SYSTEM.DAT and USER.DAT back to their fixed locations on the server. By doing this, we increase the system integrity in several ways.
 * It helps to solve some network disk-access problems for certain irregularly behaving files. It also plays an important role in setting up 32-bit networking on RIPL clients (32-bit networking on RIPL clients will be discussed in our next articles).

Registry Recompile
The main problem here is how to change the host Windows drive letter from C (as it was in our first construction) to F. The following simple procedure solves this:
 * 1) Export the whole Registry of the RIPL workstation (built in accordance with the instructions of the previous article) to a text file, say X.REG.
 * 2) Using a text editor, replace all the references to drive C in X.REG, with the references to drive F.
 * 3) Re-build, using the DOS-mode regedit, the SYSTEM.DAT and USER.DAT files from this new X.REG file.

As a bonus, the recompiled Registry will be (probably considerably) smaller!

Furthermore, change (if necessary) C→F in SYSTEM.INI and WIN.INI.

Setting Up the RAM-disk
This is achieved by copying RAMDRIVE.SYS to (virtual) boot disk [A:] and loading it during the boot process. For example, a CONFIG.SYS statement DEVICEHIGH=A:\RAMDRIVE.SYS 16384 512 128 /E would create a RAM-disk [C:] of 16MB, with 512 bytes sector size and 128 root directory entries (here we have assumed that there is not any local hard disk on the workstation!).

Setting Up MSDOS.SYS
We can replace the micro MSDOS.SYS on the boot disk with a "real" Win95 MSDOS.SYS. Make sure that it contains the following line WinBootDir=C:\ within the [Paths] section. Also, make sure that LoadGUI=0 and Logo=0 in [Options].

Setting Up The Initialization Image of [C:]
Create a directory in \\SERVERNAME\W95 to hold the initial files that will be copied to the workstation. Let it be say C_INIT. Put the new Registry files SYSTEM.DAT and USER.DAT in this directory, together with COMMAND.COM and files you like to go to [C:] before Win95 loads. Ensure all HSR attributes are removed from SYSTEM.DAT and USER.DAT in C_INIT.

Preparing to Load Win95
Before loading the graphical interface (and after establishing a network identification F ↔ \\SERVERNAME\W95) we should execute the following commands (putting them in the appropriate batch file/AUTOEXEC): set path=C:\;F:\WINDOWS;F:\WINDOWS\COMMAND copy F:\C_INIT\*.* C:\ attrib +R +H +S C:\SYSTEM.DAT attrib +R +H +S C:\USER.DAT set comspec=C:\COMMAND.COM

Re-allocate the swap file, by including the line pagingfile=C:\WIN386.SWP in the [386Enh] section of SYSTEM.INI.

Load Win95 GUI
Execute WIN. After the GUI comes up, you will probably have a couple of broken shortcut links. Manually change the program references from C (left from the previous RIPL setup) to F.

Note that we have not used the program SETMDIR to define the Registry location, in contrast to the solution described in the previous article. Instead, the Registry location has been defined in the MSDOS.SYS file.

The problems with long filenames, 32-bit disk access and icons are still present in this setup. The icons problem is solved in the same way as in the previous article.

It is interesting to mention that the RAM-drive setup allows us to avoid changing the file reference (from EXPLORER.EXE to SHELL32.DLL) for My Computer icon (necessarily changing the standard icon). However, in order to avoid My Computer icon being replaced with a generic Windows icon, it is necessary to include EXPLORER.EXE in C_INIT, in order to copy it to C before GUI loads, and change the icon path in Registry. We can also re-define the shell pointer in SYSTEM.INI accordingly.

RIPLing Windows 98 - Basic Observations
Here the principal ideas are the same as for Win95 RIPL (that is, install first on a local hard drive, then copy to server and perform the appropriate manual adjustments) however, there are some subtle differences.

First of all, it seems that SETMDIR utility (available with Win95 only) does not work correctly with Win98. Hence, it is necessary to apply the above mentioned alternative method, by defining WinBootDir in the [Paths] section of MSDOS.SYS.

Secondly, Win98 has problems in disconnecting automatically from its virtual boot floppy (unlike Win95). Therefore, it is necessary to execute the IBM RPLTERM utility prior to loading GUI.

The standard configuration of Windows 98 (with IE integrated) generates much more network traffic during the boot process and various operations (as expected, because of all this IE extra load). Hence it is very important to re-configure IE stuff properly, replacing the long filenames Registry references (like "Temporary Internet Files") with short counterparts.

In order to speed up the client workstation, it is highly recommendable to remove the IE shell integration from the OS. We refer to 98LITE website for more informations on IE removal, various "lite" configurations of Win98 and accompanying installation software.

Basically, the construction consists in replacing the files EXPLORER.EXE (in WINDOWS directory) as well as SHELL32.DLL and COMDLG32.DLL (in WINDOWS\SYSTEM) with their Win95 counterparts, and some elementary manual adjustments. In such a way we end up with a considerably faster, cleaner and smoother system, generating much less network load. Furthermore, it would be necessary to replace the NotePad and WordPad, with Win95 versions. In order to save the server disk space, we can completely remove the IE files and clean up the Registry, by removing unnecessary entries and recompiling (remember, workstations starting from their RAM drive [C:] transfer the Registry from the server).

The problem with a delayed shutdown and reboot completely disappeared when RIPLing Win98. My diskless workstation smoothly shuts down and reboots, in all possible configurations (with/out IE integration, and with/out the RAM drive [C:]).