The AUTOEXEC.BAT and CONFIG.SYS that will be used by the VMB at initialization are not the ones found in the root directory of the OS/2 V2.0 boot drive. Table "Location of AUTOEXEC.BAT and CONFIG.SYS" explains which AUTOEXEC.BAT and CONFIG.SYS will be used for the different DOS session types under OS/2 V2.0.
CONFIG.SYS requires special attention for the following reasons:
The OS/2 device driver FSFILTER.SYS is provided to address the above problem.
FSFILTER.SYS allows the DOS in the Virtual Machine Boot to access HPFS files.
However, some DOS programs test for the presence of these drivers. OS/2 V2.0 provides the equivalent "stub" drivers to satisfy these programs that the services actually are available.
The following types of device drivers should also be omitted from CONFIG.SYS:
These facilities are already provided by OS/2 Version 2.0 and may be accessed by virtual DOS machines and VMB sessions; including them with DOS leads to unnecessary duplication, and may impact overall performance.
When the Virtual Machine Boot is started from a diskette image on the hard disk, the real DOS sees the diskette image as drive A:. The real drive A: cannot be accessed. OS/2 V2.0 provides a DOS program, FSACCESS.EXE, that can be used from the DOS command prompt or inserted in AUTOEXEC.BAT to overcome this problem.
We will cover each of these special requirements in detail in the following sections.
Drive Letter Allocation and Access
Drive letter allocation and access is one of the more complex areas of VMB, mainly due to the automatic drive letter allocation performed by DOS, and the limitations of earlier DOS versions. The following possible areas of confusion may arise for the user:
The results could be somewhat disorienting for the user. To help resolve these issues, two utilities FSFILTER and FSACCESS are provided with OS/2 Version 2.0.
It is recommended that disk volumes should always be given a meaningful name, either when formatting or later using the LABEL command. This name will remain constant regardless of drive letter allocation, and will aid in identifying a particular volume, even if the assigned drive letter is different. FSFILTER
FSFILTER.SYS is a device driver which manages DOS VDM access to OS/2 disks. FSFILTER.SYS should be copied from the \OS2\MDOS directory to the DOS diskette, and the following statement added to the CONFIG.SYS file of the bootable DOS diskette or image.
device=a:fsfilter.sys
This statement should precede any DEVICE= statements which load block device drivers.
Note that FSFILTER.SYS gives DOS full access to all OS/2 partitions, regardless of their file system type or partition size.
This is an important and somewhat surprising point. For example, DOS 3.3 (in a VDM) has no problem accessing a 300MB HPFS partition, once FSFILTER is loaded. I/O calls within the DOS virtual machine are passed transparently to OS/2 Version 2.0. DOS itself is unaware of the underlying file system. DOS can read, write and modify files on the hard disk, and for most configurations the drive letter mapping within the VMB session will match those of OS/2 Version 2.0.
The FSFILTER device driver occupies approximately 11KB of memory. It can be loaded into high memory under DOS 5.0 by specifying the command DEVICEHIGH = FSFILTER.SYS in CONFIG.SYS.
The users should also specify the path to COMMAND.COM in the SHELL= statement of CONFIG.SYS. For example, if DOS files have been copied to C:\DOS, the CONFIG.SYS file on a diskette intended for VMB should contain the following statement:
SHELL=c:\DOS\COMMAND.COM c:\dos /p
The first parameter specifies the command processor to be loaded. The second parameter specifies the reload path (that is, the COMSPEC path). This is preferable to a SET COMSPEC = command in AUTOEXEC.BAT.
Each block device driver loaded in DOS CONFIG.SYS is allocated the next free OS/2 letter excluding LAN drives. This can result in a drive letter clash. An example may illustrate the point. OS/2 drives are:
A:
FSFILTER will ensure that a booted DOS sees these drives by the same letter. The booted DOS has the same access to the external diskette drive and LAN resources as does OS/2 itself. This is true whether the VMB session is started before or after user logon to the network, when remote drive letters are assigned.
However, a block device driver in a VMB session will also initialize as E:, so LAN drive access is lost. To remedy this, issue an "fsaccess f=e" command. The LAN drive is now accessible as F: within the DOS session.
Note that even when FSFILTER is loaded, the following restrictions still apply:
FSACCESS
FSACCESS.EXE is a utility supplied with OS/2 Version 2.0 but intended to run in a VMB session. It cooperates with FSFILTER to manage drive letters within the VMB session. This serves three purposes:
The syntax of the FSACCESS command is:
FSACCESS ────────────────┬─────────────────────────┬─────┐ ├─┬───┬─ DOSletter ───────┘ │ │ └ ! ┘ │ ├────── DOSletter - DOSletter ──┤ │ │ └────── DOSletter = OS2drive ──┘
FSACCESS
Local C: is mapped to OS/2 C: Local D: is mapped to OS/2 D: Local E: is mapped to OS/2 K:
Parameters can be combined on a single command line, and the colon is optional.
When booting from an image file, it is often desirable to issue the command FSACCESS A: in order to access the A: diskette drive. This will remove access to the image file, so the booted DOS will be unable to reload its COMMAND.COM when necessary. It may be useful to copy all the DOS files to a subdirectory on hard disk, ensuring the PATH and COMSPEC point there.
An alternative is to access the diskette drive via a different letter. For example, a user may issue the command FSACCESS G:=A, then use G: to access the real A: drive. The image file remains as A:, avoiding PATH and COMSPEC problems.