Virtual OS/2 International Consumer Education
VOICE Home Page:
March 2005

Newsletter Index
< Previous Page | Next Page >
Feature Index

VFAT and USB memory sticks

By Peter Verweij © March 2005

On Windows systems VFAT is widely used on USB memory sticks, but how to read it under OS/2?

This article takes a look at different options you have to use VFAT long filenames in OS/2.

I found four options for using long file names:

Using vfat.ifs

It's the oldest support for VFAT, but on new systems I couldn't get it to work. On a Warp 4.0 with Fixpack 9 it worked fine for me, but after Fixpack 13 the vfat.ifs driver just gives a trap of the whole system. So, for the most current systems this is a no-go option.

Using vfat2ea

It's a simple application which is easy to install, but you need the start it from command line to convert VFAT long file names to Extended Attributes which are used in the WPS.

When there are many files on the memory stick it may take some time before the conversion is ready.

To convert VFAT long file names to Extended Attributes you have to type in the command line:

vfat2ea k:

In this case k: is the USB memory stick.

It is also possible to convert the Extended Attributes from the WPS back to VFAT long file names. Then you have to type in the command line:

vfat2ea k: /B

The program has more options, but the above two are the necessary options to get the program working.

It's a good program which is free to use.

Using vfatmon with vfat2ea:

vfatmon There is a little package which makes the working of vfat2ea a little more convenient. It's called vfatmon. This program has two startup options: /m (starting minimized) and /s (start monitoring). When an USB device is inserted and the drive letter is monitored with vfatmon all the long filenames are automatically converted to Extended Attributes so you can see the long filenames on the WPS. The program does not convert the Extended Attributes back to long file names (a long filename will be visible in Windows only by its first eight characters and extension).

If you want to do that, then you need to use the command line option /B of vfat2ea.

Using kc030

With kc it is not possible to see VFAT long file names you can only copy to VFAT long file names. It a command line program. It's fast when you want to copy a long filename from an HPFS or JFS partition to a VFAT drive.  It's also possible to copy whole directories, including subdirectories.  The command options look like the normal copy command. To copy all files from drive e: to k: you have to type in the command line:

kc e:\*.*  k:

If you want to include subdirectories the command line has to look like:

kc /s e:\*.*  k:

When you only want to copy one file which has spaces in the file name you have to use quotes ("). The command line then has to look like:

kc "long file name.txt" k:

It's a free program to use, but some times I get an error and the copying is stopped.

Using NetDrive:

It's the only program which is not free to use. In order to get it to work you need the NetDrive program and the VFAT plugin.

Installation an use of the program is easy, but in version 2.2 (current version is 3.0 - Ed.) it didn't work at first for all the USB memory sticks I use.

NetDrive According to the developer, the problem was that the number of sectors reported by OS/2 was less than the value stored in the boot record. After giving some information, I got a new build of the VFAT plugin which now works on all USB memory sticks (providing OS/2 sees the USB stick normally).

After mounting the USB memory stick, you can use the created NetDrive volume in the WPS. To copy from and to the USB memory stick is as easy as using a normal drive.

There are a few drawbacks:

  1. you get an extra drive letter, but as soon as you have mounted the USB memory stick the original drive is disabled. In the accompanying picture, you can see that the original K: drive (USB memory stick) is locked and can't be accessed. The USB memory stick is mounted in NetDrive L:\pendrive and can be accessed.
  2. You have to first dismount the NetDrive before you can eject the USB memory stick. However, if you use XCenter you can create an Rexx button with the following lines:
/*script to release usb sticks*/
call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
call SysLoadFuncs
nd unmount 'l:\pendrive'
eject 'k:'

This script automatically dismounts the memory stick and ejects it.

What about speed?

The writing speed of the different packages differs from fast to quite slow.

The speed of the vfat2ea and the add on vfatmon isn't measured, because it depends on how many objects you have on the drive. The vfat.ifs driver isn't working on my system so no measuring of speed can be performed for this program.

The fastest is the kc program writing a 55MB file to a USB2.0 memory stick takes 34 seconds on a T40 (with USB 2.0 bus) in native mode (normal copy command) it takes 33 seconds.

The official plugin for NetDrive is slow, writing a 14MB file on the same hardware took 5 minutes. Not so good, but a much better driver is coming around February (the current version is: 1 October 2003 Version - Ed.).

With the new NetDrive and newest (still beta and not officially released) driver the speed is quite good. Writing of a 55MB file using the same hardware as mentioned above took 59 seconds.

What's user friendly?

That's a difficult question to answer if you like command line then kc is a possibility. If working with the WPS is your favorite, then NetDrive is the way to go.

Even when you like to work with command line, NetDrive works OK.

NetDrive has one big advantage above the other packages, with NetDrive you can see and write long filenames on the fly.


vfat.ifs driver:
Additional information about Netdrive:

Feature Index
< Previous Page | Newsletter Index | Next Page >
VOICE Home Page: