Kelder Updates
FAT32.IFS
to V. 0.83


Henk Kelder's FAT32.IFS installable file system for reading FAT32 formatted hard drives (i.e. Windows 95 formatted hard drives) on an OS/2 system has been updated to version 0.83. You can download the file (os2fat32.zip, 192Kb) from Kelder's website or from Hobbes.

Version 0:83:
- Replaced the translate mechanisme that was introduced in version 0.75 by a mechanisme where CACHEF32.EXE on first load calls the native OS/2 NLS support to create a default translate table between the current codepage and unicode. This should work better for some NLS versions of OS/2.
- Added a switch to CACHEF32 to dynamically change the priority of the lazy write thread. The default priority is still idle-time, but this can be changed to a higher priority.
- Did experiment a bit with lazy writing in general. In my own system it improved performance somewhat.
- Corrected a problem in PARTFILT where whenever a HIDDEN partition type was specified after /P this didn't always work properly. Now when a hidden partition type is specified, the unhidden type is also handled by PARTFILT.


About PARTFILT
by Henk Kelder


Just found a problem related with PARTFILT that some of you might have encountered.
If partfilt is used the /P 1B (= hidden FAT32 partition) this will not work. Partfilt will virtualize the partition, but will still show it as a FAT32 partition while infact it should have been a IFS partition.
The quick fix is to always specify both partition types: the hidden AND the normal (e.g. /P 1B,0B)
This will be fixed in the next release (0.83) at

http://www.os2ss.com/information/kelder/

Also this version will no longer use a separate translate table for international characters, but will use the native NLS support from OS/2 to load a OS/2 codepage to UNICODE translate table on system startup.


                         === DISCLAIMER ===

I allow you to use all software in this package freely under the condition
that I am in no way responsible for any damage or loss you may suffer.

        >> You should be aware of the fact that PARTFILT might > damage the data stored on your hard disks.            - Specifies the order in which partitions must be mounted.
        Must be used with the /M option.

        WARNING: Incorrect usage of the /A and /M options could make your
                 system unbootable.

        => USING THE /A and /M OPTIONS is not advised!
        This is option is used to tell PARTFILT which partition type are to
        be faked. You should NOT use partition types already supported by
        OS/2 since this would result in a single partition being mounted
        two times. The list should consist of partition type numbers (in
        hexadecimal), separated by comma's.

The partition type number are as follows:

     01   FAT12       (supported by OS/2)
     02   XENIX_1
     03   XENIX_2
     04   FAT16       (supported by OS/2)
     05   EXTENDED
     06   HUGE        (supported by OS/2)
     07   IFS         (supported by OS/2)
     0A   BOOTMANAGER
     0B   FAT32
     0C   FAT32_XINT13 or FAT32X
     0E   XINT13
     0F   XINT13_EXTENDED
     41   PREP
     63   UNIX
     83   LINUX

     10   Hidden partition (bits OR'd with partition type)

To make PARTFILT.FLT fake a FAT32 partition the /P option should be /P 0B.
To make PARTFILT.FLT fake a FAT32X partition the /P option should be /P 0C.
To make PARTFILT.FLT fake a LINUX partition the /P option should be /P 83.
Or you can use a comination of the types e.g. /P 0B,0C

The best location in the config.sys seems to differ depening on your
configuration. Some state FAT32.IFS will only work is PARTFILT is the
first basedev, other claim it only works if PARTFILT is the last one.

A specific problem was reported when using a SCSI powersave basedev that
only seemed to work if PARTFILT was the last basedev.

HOW OS/2 SCANS FOR PARTITIONS
=============================

During the boot process of OS/2 partitions are scanned twice, each using the
same algoritm to detect partitions and if OS/2 supports the partition types
found drive letters are assigned to them.

The first scan takes place during initial boot. (PARTFILT has no effect on
this scan!) The main purpose of this scan seems to be to detect the OS/2 boot
drive and to assign a drive letter to it. For OS/2 to be able to boot this
drive letter may NOT change later on during the second scan.

The second scan takes place while initializing the file system. Via calls to
OS2DASD.DMD the partitions are scanned and drive letters are assigned.
Only this second scan is influenced by PARTFILT.

So whatever you do, you must make sure that in both scans the OS/2 boot drive
gets the same drive letters assigned.

If your FAT32 partition is not a primary partition and you don't care what
drive letter the FAT32 partition gets you may stop reading here. Simply do
not specify the /A or /M options and the FAT32 partition will get a drive
letter higher then all partition normally recoqnized by OS/2.

But if your FAT32 partition is a primary partition, or you want the FAT32
partition to have a drive letter before the OS/2 boot drive you will need to
do some extra work.

Just for the record the normal assignment order of OS/2 is:
1. (Current active) Primary partition on first HD
2. (Current active) Primary partition on second HD
3. and so on...
4. All extended partitions on first HD
5. All extended partitions on second HD
6. And so on...
7. Removeable drives

Should you need to use the /M parameter with PARTFILT you should know the
the sequence numbers used as arguments are different from the normal order
OS/2 uses. Here's where DISKINFO comes along. DISKINFO shows the seq# as
used by PARTFILT. See below.

Now suppose you have the following scenario:

C: is FAT16 (Primary)
D: is HPFS  (Extended)

and you consider converting the FAT16 partition to FAT32 (with partition
magic) the following will happen after the conversion:

During the first scan the FAT32 partition is skipped and the OS/2 boot
drive will get C: assigned. During the 2nd scan FAT32 is recoqnized because
you have loaded PARTFILT and is assigned C:. Your HPFS partition will get D:
assigned and OS/2 will not boot because OS/2 has already decided to go for C:
but cannot find its stuff there.

There are two solutions:
- Reinstall OS/2 on the HPFS partition without PARTFILT installed. OS/2 will
  install everything on C: (HPFS). Later you could add PARTFILT and FAT32.IFS
  without the /A and /M options and the FAT32 partition will become D:.

- Add a fake (preferrably HPFS) partition between the FAT32 and HPFS
  partition. During the 1st scan, this partition will get C: and your boot
  partition will get D:.
  Load PARTFILT with the /A and /M options, where in my example the mountlist
  should be: /M 0,2. (you will probably need the /W option as well)

Explanation:
With the Fake partition installed the following partitions exist:
0 - FAT32
1 - fake HPFS
2 - HPFS (boot)

By not specifying seq# 1 in the mountlist, PARTFILT will not virtualize this
partition and OS/2 will not assign a drive to it.
By using a HPFS partition, Windows 95 will not recoqnize the fake partition
and will not assign a drive letter to it.

DISKINFO.EXE
============
When run with no options, diskinfo will scan and show all partitions.
The following options are available:

/V - Verbose mode. Show more info on FAT32 partitions.
/B - Show the boot sector of FAT32 partitions. Only if /V is only specified.
/P - Allows you to specify a list of partition types that should also get
     a partition sequence number. See PARTFILT for more information.
 
 CONTACT AUTHOR:

Henk Kelder
Dennenlaan 12
3843 BX Harderwijk
Nederland
email to:
hkelder@inetgate.capvolmac.nl
or:
100321,3650@compuserve.com



@Macarlo, Inc.
@Macarlo's Shareware & Web
OS/2
Java Lobby Member
Java Site Accredited
[TOP] [HOME] [INDEX]