Active GUI element
Static GUI element
Care and Feeding FAQs
The use of USB storage devices with eCS has been, until fairly recently, a rather chancy proposition. Some devices worked fine "out-of-the-box," while others were not usable no matter what was done to them. There were many reasons for this, but with the latest releases of the various drivers and other software involved, nearly all types of USB removables are now quite well supported. This support is not always as seamless as we might like and rather drastic measures may be needed in some cases, but as a rule, a few simple procedures allow nearly all of them to function.
Having said that, please do not expect these devices to behave the same as they do under a certain "other" operating system. In general attachment is noticeably slower and their appearance on the desktop may be quite different (multi-slot card readers, drive letter assignments, etc.). This is due to the way USB is implemented under eCS and to the properties of LVM.
The information presented here is the result of my own testing, research into the available documents and the reports and experiences of others. It is as complete as I can make it with the resources at hand, but there is no guarantee as to its applicability in all cases. Note especially that all testing was done exclusively on eCS/LVM systems and that there was no testing on any OS/2 Warp system, LVM-based or otherwise.
The procedures are based on the latest versions of the software as noted in the text. If older versions are used, the results are unpredictable at best and may be hazardous to your data at the worst.
The main concern here is with USB attached devices using fixed magnetic media. Detailed information regarding devices using other interfaces and media types is available in section 4 of the documentation file included with OS2DASD.DMD. I have tried to keep things as simple and non-technical as possible, but if you wish to delve further, there is a short reading list at the end of this article.
The use of USB mass storage devices in conjunction with LVM requires an understanding of some basic terms.
- Physical Drive
- A hardware device that provides persistent data storage. It has a standard communication interface allowing the operating system to transfer data between the storage media and memory. The storage media may be either fixed or removable.
- Disk Partition
- A disk partition allocates a subset of a physical drive's storage. That subset may be either all or part of the storage available. Partitions are confined to a single physical drive.
The concept of the "logical volume" is crucial to USB MSD support under eCS.
Logical volumes overlie and hide the actual physical partitions on a hard drive and allow the user to directly control such parameters as drive letter assignment and drive space allocation. The information describing these volumes is stored in the "Drive Letter Allocation Table" (DLAT), located in a special sector of the EBR / MBR track, after the partition tables. This information is invisible to, and does not affect, any operating system that is not LVM based. When an LVM system is started, OS2DASD.DMD reads the DLATs and assigns drive letters to the various volumes according to the information found therein, rather than using a fixed algorithm as is done by non-LVM systems. The flip side is that an LVM based system cannot access any partition, regardless of file system, that does not contain valid LVM information.
Simply put, therefore, all removable devices must be "blessed" with LVM information before they can be used by eCS. The single exception to this rule is any device configured as a Large Floppy.
There are two types of volume in use by LVM systems:
"Standard JFS" is specified in the foregoing statements because "bootable JFS" is exactly opposite—it can only be installed on a Compatibility volume to preclude installing an operating system to a volume that spans multiple partitions.
- Compatibility Volume
A volume created on a single underlying partition which exactly corresponds to an physical partition. As the name implies, a Compatibility volume is accessible by any operating system having the appropriate file system drivers.
A Compatibility volume may use any file system except standard JFS, but see note following.
- LVM Volume
A Logical Volume is created from either a single partition, or it may span multiple partitions on one or more physical disks.
LVM volumes were designed for JFS, and only standard JFS can take advantage of its partition spanning capabilities.
There are two types of media: partitionable and non-partitionable.
- Partitionable media
Media that can be partitioned by tools such as LVM or FDISK.
Any removable device containing partitionable media is supported and controlled by the
usbmsd.add /REMOVABLES:[n]statement in CONFIG.SYS, and appears in the WPS as a removable hard drive. This specifically includes any USB device configured as a Large Floppy.
- Large Floppy
Partitionable media containing no defined partition(s) and using only the FAT16 format. Originally designed to be used by "Super Floppy" devices, this configuration is now mostly used by smaller (< 2 GiB) USB storage devices. Note that even though such media is not partitioned, it is still capable of being partitioned and may be converted to a different format simply by using an appropriate partitioning tool and formatter.
Since Large Floppy devices do use partitionable media, they are supported and controlled by the
usbmsd.add /REMOVABLES:[n]statement in CONFIG.SYS and appear in the WPS as removable hard drives.
- Non-partitionable media
Media that is not capable of being partitioned by tools such as FDISK or LVM: standard floppies, CD-R and CD-RW disks are examples.
USB floppy drives are supported by the
usbmsd.add /FLOPPIES:[n]statement in CONFIG.SYS and are indicated by a "floppy" icon in the Drives folder.
USB CD R/RW drives are supported by usbcdrom.add. Unless you actually have one of them, the entry referring to this driver should be removed from CONFIG.SYS to prevent a spurious CD-ROM icon from appearing in the Drives folder.
- What devices work with eCS?
- What supporting software do I need?
- Do I need to make any changes to CONFIG.SYS?
- I booted with a removable drive attached. Now it shows in my WPS drives folder as a "fixed disk"and there's no Eject selection. How can I remove it safely?
- My drive works fine with Windows. Why doesn't it work with eCS?
- LVM won't make any changes to my drive. How can I create a new partiton/volume?
- Still no luck. eCS refuses to access my drive.
- I have an 80 GiB HDD, formatted FAT32, but eCS can't access it. There is data on it that I can't afford to lose, so the foregoing procedures are out of the question.
- Can I use devices containing multiple volumes?
- What file systems can be used on these devices?
- How do I format FAT32 media?
- What about multi-port flash card readers?
1: What devices work with eCS?
Most of the ones you pick up at the computer store either work "out-of-the-box" or can be made to work with a bit of suitable coercion, depending on how badly they have been mangled by buggy partitioning tools.
- Most so-called "thumb drives" (< 2GiB) come from the factory configured as Large Floppies. They can either be used 'as-is' or converted to something more useful than FAT16.
- Hard drives in USB enclosures need only minimal intervention to configure them for LVM. Multiple volumes are supported.
- PDA-type devices should be accessible as long as their drives can be "blessed" by LVM and you have the required file system driver. This has not been tested by your humble scribe, however, so you're on your own.
- External multi-slot flash card readers are no problem as long as the media itself doesn't have some odd format that won't accept LVM information..
- Internal multi-slot card readers connected to a mainboard USB header are specifically not supported.
2: What supporting software do I need?
Quite a bit, but most of it should already be installed. You do, however, need to check that the versions you have installed are the latest available and that they are properly configured.
Bear in mind that there is a high degree of interdependence between the various drivers. If any one of them is at the wrong level, the others may not work as expected. This could result in anything from the device simply failing to work, on up to data loss and system traps.
I realize that there is a lot of advice regarding the various drivers, and their configuration, coming from various sources. Take it if you will, but be sure to apply the "version" test before doing so: Does the advice being offered apply to the software version(s) you have installed on your computer? Apples and oranges. . .
To check the build level of IBM drivers, open a command prompt and run bldlevel [path][filename]. The version of third party software may be determined from its accompanying documentation. Beware of using file dates for this purpose, however, because different distributions of the exact same file often show very different file dates. . . IBM is famous for this.
The versions noted below are current as of this writing:
USB Basic stack from IBM
Build level 10.162. It is best to use eCSMT for the installation and update so that the correct number and type of usb?hcd.sys drivers are entered in CONFIG.SYS.
USB MSD stack from IBM
Build level 10.162. Again, use eCSMT for the installation to ensure that usbmon.exe (usbmsdd.exe in eCS 1.2MR and later) is correctly installed.
You may have two files in your USB installation, both named usbmon.exe. They serve two entirely different purposes and must be installed to different directories:
- \os2\usbmon.exe is the USB printer daemon. It is started via an object in the startup folder called USBPRT Auto monitor. Of interest only to a USB printer and may be removed if not required.
- \OS2\BOOT\usbmon.exe is the USB MSD daemon. It is also started via an object in the startup folder, this one called Removable Device Monitor V1.1. Whenever a USB MSD is attached, this daemon detects the drive and passes it to LVM. LVM, in turn, runs "/rediscoverprm" to actually mount the drive. The object in the startup folder should be created automatically when the USBMSD package is installed, but, if needed, it can be installed manually by running \OS2\BOOT\USBICON.CMD.
In an effort to alleviate the above confusion, Serenity Systems made the following change in eCS
\ECS\BOOT\USBMSDD.EXE. This is a full replacement for the USB MSD daemon above. It appears in the startup folder as Removable Device Monitor V1.2.
Some people still recommend using Chris Wolgemuth's CWusbmsd.add. Simply put, don't. It was written to cover some deficiencies in the IBM drivers available at the time and was the only way most people could get their MSD's to work. If used with current IBM software, however, it only causes serious problems. All references to it should be removed from CONFIG.SYS.
Build level 14.104. Distributed by IBM in ide10161.zip.
Current [Apr 2006] version is 1.75. eCSMT or manual installation.
The only acceptable version of FAT32.IFS as of this writing is version 0.9.11, dated Dec 24 2005. Earlier versions of this driver contained fatal flaws causing the loss or corruption of data on removables used to transfer data between computers. Those earlier versions must be avoided. Available as either a ZIP archive or WarpIN package.
DFSee from FSYS Software
Unfortunately, situations arise while managing USB devices where LVM cannot accomplish some given task. The biggest problem is when a buggy partitioning tool (Partition Magic and Windows being the worst) makes non-standard entries in the partition tables. LVM can't handle it and is unable to do anything at all. In such cases, DFSee can diagnose, work with and correct the problem.
In addition, from version 7.15, it has the only "native" FAT32 formatting option for eCS. . . a chore that could previously only be done on Windows. See section on format options.
As you will see later, many, if not most, of the procedures in this document are based on DFSee simply because of LVM's shortcomings.
The demo version is fully functional but does not offer technical support. Registered users, however, will find the author to be very responsive to support requests.
A program for configuring the various USB drivers after they have been installed on your computer making any needed changes to CONFIG.SYS in the most painless possible way. Under active development as of this writing, the current version can be found at Hobbes.
3: Will I need to make any changes to CONFIG.SYS?
No doubt. All the software mentioned above must be installed or, if already installed, checked for proper configuration.
Once installed, either by eCSMT or manually, the entire USB stack can be configured using Peter Brown's excellent program USBcfg.exe. The information here explains what is needed by that program.
For the USB system to operate correctly, these entries must conform to your hardware both in number and type. This is determined by running \os2\hcimonit.exe. The output tells you what type and how many USB controllers you have on your system, either on the mainboard or on an adapter card. For example:
[X:\]hcimonit You have 3 PCI USB UHCI host controller(s) You have 1 PCI USB EHCI host controller(s)
OHCI and UHCI = USB hardware specification 1.1, depending on your chipset. EHCI = USB 2.0.
Since CONFIG.SYS must have a separate entry for each host controller, the following entries are required in the above case:
BASEDEV=USBEHCD.SYS BASEDEV=USBUHCD.SYS BASEDEV=USBUHCD.SYS BASEDEV=USBUHCD.SYS
OHCI controllers are handled the same as UHCI: one line per controller.
BASEDEV=usbmsd.add /FLOPPIES:[n] /REMOVABLES:[n]
When USB support is first installed, this line may be placed in CONFIG.SYS, but REM'd out and having no parameters at all. If you simply delete the "REM," the driver reverts to default values of /FLOPPIES:1 /REMOVABLES:1. In most cases, this must be changed.
There are two types of device covered by this statement. The difference is subtle and the two types are supported separately:
All devices that use partitionable, fixed media are supported by this parameter. Most USB mass storage devices are of this type, including thumb drives, hard drives and external multi-slot card readers. Internal USB multi-slot card readers are specifically not supported by the current crop of USB drivers.
The number of removables specified here requires some thought, as it
- defines the number of containers available within LVM for the attachment of removable media, and thereby
- limits the number of devices you may have attached at any one time
You see these containers when you open LVM. . . they appear as 96 MiB "placeholders" unless a device is actually attached. There is also some rather lurid warnings from LVM that these empty containers have "bad partition tables," etc. Ignore them.
The rule of thumb is to specify one removable for each removable you have, plus one for each "slot" or opening in a multi-device card reader. This is not set in stone, however, and may be adjusted by experience if you know you'll never attach more than "n" devices at any given time. The maximum number would be the number of unused drive letters on your system.
For the purposes of this parameter, a USB hard drive containing multiple volumes counts as a single device and occupies only one container in LVM. In other words, it looks exactly the same as an internal hard drive. On attachment, each visible volume is assigned a separate drive letter according to its DLAT. If no drive letter is specified (DLAT = "--"), the volume is 'hidden.' If the assigned drive letter is an asterisk (*), or the assigned drive letter conflicts with one already in use by the system, LVM assigns the lowest available drive letter. Ejecting any one volume cleanly ejects all volumes on the disk.Hint: Make sure at least one volume is always visible on multi-volume devices, since LVM is unable to assign any drive letters at all if all volumes are hidden. In such a case, you could use DFSee to assign drive letters.
This parameter only supports devices that use non-partitionable, removable media, such as USB standard floppy drives.
The default value is 1. If you do not have or use such a device, the value must be explicitly set to "0" to remove the service and prevent the appearance of a bogus floppy icon in the WPS.
FAT32.IFS - The FAT32 Installable File System
Here is a typical CONFIG.SYS entry for FAT32:
IFS=[d]:\OS2\FAT32.IFS /Q /H /CACHE:2048
Check the paths in the statement carefully, and also check for duplicate entries. At some point in its history, the default locations for FAT32.IFS and its associated files were changed requiring a change to their CONFIG.SYS entries. This is a problem mainly for users who manually installed older versions and then used the WarpIN installer for a later version. In any case check that the entries in your CONFIG.SYS are pointing to valid locations and that there are no duplicates.
The /H switch loads the driver into High memory and is Highly recommended. (Sorry!)
The use of CACHEF32 is problematic. Normally, the purpose of a cache is to speed up read/write operations. In the case of CACHEF32, however, speed gains seem marginal and, in some cases, seem to dramatically slow write times. The current "best practice" is to go ahead and use it unless you notice excessively slow write times. It can be stopped from the command line with cachef32 /q and re-started by entering cachef32. . . no need to re-boot.
The meanings of some lesser used switches are explained in FAT32.INF.
OS2DASD.DMD - Direct Access Storage Device driver
There are only two switches documented for this driver, neither of which are for use with USB removables.
Forces all removable devices to be treated as Large Floppy rather than partitioned media.
Although this switch can be used to provide access to Large Floppy configured USB devices, it does so at the cost of denying access to media in other formats. For example, if this switch is used, a 512 MiB FAT32 thumb drive cannot be accessed. . . regardless of what you place in your
Furthermore, if used, the /LF switch causes a new "floppy drive" icon to appear in the drives folder each time a USB device is attached. Even after the device is removed, the icon remains until the system is shut down, taking up a drive letter.
Used to support allocating a predetermined number of drive letters for a partitioned removable media device. Note that this option only applies to partitioned removable devices, and is ignored for any other device type.
This switch applies only to Iomega ZIP drives allowing them to use partitioned removable media. It has nothing to do with USB devices which use partitioned fixed media and are controlled by the
Other switches to this driver are sometimes referenced, but they are relics from obsolete versions and since they are not documented for the current version, their use is questionable at best. Remember the "version rule."
This is the preferred IDE driver because it supports a wider range of devices and is simpler to use than IBM1S506.ADD. No switches are needed for normal operation. See the documentation in the distribution file for special requirements.
4: I booted with a removable drive attached. Now it shows in my drives folder as a "fixed disk" and there's no "eject" selection. Can I remove it safely?
In the first place booting with USB MSDs is not recommended. . . for exactly this reason. Fortunately, a safe ejection is possible either from the command line, by issuing eject [d:], or with DFSee (8.xx or later), using the File-->Media management menu item. When the disk is re-inserted, it appears correctly as a "removable."
5: My drive works fine with Windows, why doesn't it work with eCS?
In general for eCS to access any removable, it must be partitioned and contain a valid DLAT. Unfortunately, if the drive was partitioned by a tool that was not LVM aware (notably Partition Magic or Windows FDISK), LVM probably cannot make the required changes. You can always try, but in most cases DFSee is the only tool that works.
6: LVM won't make any changes to my drive. How can I create a new partition/volume?
Use DFSee. Since the drive is already "clean," i.e., all free space, it's pretty simple:
Mode=FDISK > Create new partition. Create a primary partition, selecting Create NEW mode. . . and Include LVM information. Selecting OK brings up an Edit LVM info dialogue which writes the needed information to disk (see figures 1 and 2). Follow the dialogues, allowing DFSee to write the changes. You don't need to choose a partition type; that is set by the format program.
Figure 1. DFSee Create Partition dialogue
If there is only one partition, make it 'primary.' If there are multiple partitions, they should all be made 'logical.' Check the boxes for Create NEW mode. . . and Include LVM information.
Figure 2. DFSee Edit LVM Information Dialogue
Enter whatever you want; just make sure the box labelled Sync driveletter assignment with live LVM engine is left unchecked. (This item only works for fixed disks—not removables.)
- If you are using FAT32 and have DFSee version 7.15 or later, you should format the volume now. Using the menu, go to the item Actions > Format volume or partition > With a FAT/FAT32 file system and follow the dialogues (see figure 3).
Close DFSee and eject the drive.DFSee must be closed before attempting to eject a device. This is because all drives are "locked" while DFSee is running, thus diabling these functions: eject, the USB MSD daemon, and 'LVM /rediscoverprm'.
- Format as required (other than FAT32). See format options below.
7: Still no luck. eCS refuses to access my drive.
Well, there's one procedure that's (almost) guaranteed to work. It's based on the theory that some manufacturers, OSes, or partitioning tools are prone to put "strange stuff" on their drives. This forces us, as eCS users, to take some drastic measures.
What you're going to do is to 'zero' the drive, create a new partiton, "LVM" it and format it. The descriptions were made using DFSee version 8.00. Older versions are slightly different
- File > Open object to work with. Select your drive.
- Actions > Erase, wipe selected areas > Erase current object. Just so you're aware, this may take a fairly long time with larger drives. You can stop the process at any time by pressing escape.
- When the "wipe" process is finished, go to step 1 in the previous procedure and proceed from there. Do not close DFSee or attempt to eject the drive at this time.
8: I have an 80 GiB HDD, already formatted FAT32, but eCS can't access it. There is data on it that I can't afford to lose, so the foregoing procedures are out of the question.
All you need is to create a valid eCS logical volume, but LVM won't do it. DFSee, however, will write the needed LVM information. Note that this procedure does not disturb any existing file systems or data that may exist on the disk:
From the DFSee main menu, go to Edit > LVM information and select the partition from the pick list. This brings up an interactive dialogue (see figure 5) where you can assign LVM volume information to an existing partition. Enter what you will, pick OK and DFSee writes a new DLAT, creating a logical volume that is accessible by eCS.
When DFSee is finished, you must eject and re-attach the drive to properly register it with LVM.
9: Can I use devices containing more than one logical volume?
Yes. USB attached hard drives are partitioned and formatted exactly the same as internal hard drives.
When attached, each volume appears in the WPS as a separate removable hard drive with a drive letter as specified in its DLAT. If the DLAT contains neither an asterisk (*) nor a specific drive letter, the volume is considered "hidden" and is not mounted. At least one volume must be visible so that LVM can mount the device. The ejection of any one volume cleanly ejects all mounted volumes on that device.
JFS volumes spanning more than one physical drive are not supported.
As with all partitionable media, multi-partitioned devices are controlled by
usbmsd.add /REMOVABLES:n statement in CONFIG.SYS. In the case of these
devices, however, only one (1) removable need be specified per device, regardless of the number of volumes it
10: What file systems can be used on these devices?
There are a number of things to take into consideration when selecting a file system, with some special factors applying to removables, namely cross-platform portability. Start with the following table:
|Max volume size||2 TiB||64 GiB||2 TiB||2 GiB|
|Max file size||2 TiB||2 GiB||2 GiB||2 GiB|
|Long filename support||Yes||Yes||Yes||Limited|
|Extended Attributes||Within file system||Within file system||Separate file||Separate file|
|Operating system support||eCS only||eCS only||eCS, Windows||eCS, Windows|
* The general case for standard JFS. Bootable JFS, however, must be installed on a Compatibility volume.
- If there is no need to interact with other operating systems, this is the best option. JFS is a 32 bit file system and will accept very large files, up to 2 TiB, as against the 2 GiB limit for the others. Large system backups and video files come to mind.
- A 16 bit file system that can be used where the 2 GiB file size limit is not an issue.
Provides seamless long filename support for drives used with other operating systems. The flaws that caused almost certain data loss with versions 0.9.10 and older have been eliminated, making FAT32 a superior alternative to FAT16.
In the past a major disadvantage of FAT32 was the lack of a native eCS format program, but with the release of DFSee 7.15, that obstacle has been removed. In fact, DFSee's format routine is far better than that in Windows since it offers full control over the whole format process and avoids the arbitrary restrictions imposed by the different versions of Windows. (See below.)
Currently, the biggest problem with FAT32 removables is their slow write speed. Much of this stems from a deficiency in CACHEF32.exe and is proving very difficult to fix, although it is being addressed.
Another reported problem is that it may take an extremely long time to attach some FAT32 HDDs. It seems to depend on the size of the drive. . . over 5 minutes for very large drives (>250 GiB). Back-leveling to older releases as a workaround for this problem is not recommended due to the high probability of data loss/corruption inherent in those versions.
Limited to drives of < 2 GiB. FAT16 can exist either as a non-partitioned Large Floppy, or as a normal compatibility volume.
Long filename support between FAT16 devices and other volumes in eCS is automatic via longname EAs. Long filenames in Windows can be accommodated if you wish to make the extra effort. On Hobbes:
- Of limited use mostly because the current eCS driver is in "alpha" state and restricted to read only mode. Also, NTFS volumes can only be formatted by Windows. Other than that, it can be made accessible to eCS simply by writing the required LVM information.
- Format Programs
FAT16, HPFS and JFS media can be formatted by the eCS native format program, FORMAT.
FAT32 media is best formatted by DFSee. Windows can also be used, subject to the following limitations:
Version Min Size Max Size Win95 SR2 512 MiB 2 TiB Win98SE 512 MiB 127.53 GiB WinME 512 MiB 2 TiB Win2K/XP 32 MiB 32 GiB
11: How can I format FAT32 media?
With DFSee 8.xx and later, it's simple. There are, however, some issues with DFSee 7.15.
First of all 7.15 has a nasty little bug: If you format over a pre-existing volume, there is a trap in LVM when you eject the device at the end of the format process. It can be avoided by using LVM to 'hide the partition from OS/2' before proceeding. Do not use DFSee for this step!
Also with 7.15 you need to use the File > Open object to work with dialogue to select the partition you want to format.
- If the media is not partitioned (i.e., it's all freespace or configured as a Large Floppy), create a new partition and format it as described in question (6).
If the media is already volumized, use the menu and go to the item Actions > Format volume or partition > With a FAT/FAT32 file system and follow the dialogues.
Figure 3. DFSee FAT32 Format dialogue
- After it's formatted, go to Edit > LVM information. Assign a drive letter and uncheck the Sync driveletter . . . box. (See figure 2)
The drive cannot accessible until DFSee is closed and the drive has been ejected and re-attached.During the format process, the drive letter in the WPS changes from whatever it had previously been assigned to "first available." This is expected. Just eject the drive no matter what it calls itself at the completion of the format and re-attach it.
12: What about multi-port flash card readers?
Most of them work without problems except that they might lock the BIOS if plugged in at boot time. Internal card readers, i.e., those connected to a mainboard USB header, are not supported.
Do not, however,expect them to look the same as they do in "other OSes", i.e., a "removable drive" icon for each slot in the reader any time it is plugged in, even if no media is actually present.
In eCS when a multi-reader is plugged in, nothing at all shows in the WPS until a card is actually inserted into the reader at which time an icon with drive letter appears in the WPS. When the card is ejected, the icon disappears. The reader itself may be removed without having to "eject" it. . . only the card need be ejected. In other words, the reader acts like a USB hub, each slot being a separate port.
The same rules and procedures regarding LVM information and filesystems apply to flash cards as to any other partitionable media.
Since flash cards are partitionable media, they are supported by the
statement, with one removable specified for each reader slot that may be used concurrently.