
Table of Contents
=================

1    Introduction
1.1    Requirements
1.2    Installation
1.3    Deinstallation
1.4    Overview
2    Command reference
2.1    isofsdmn
2.2    mntisofs
2.3    umntiso
3    Known problems and limitations
4    Building ISOFS
5    License
6    History
7    Author
8    Credits


1 Introduction
==============

ISOFS is an installable file system for OS/2 to access ISO rawfiles
suitable for burning on CD.  It allows transparent read only access to
the contents of the raw file.  Currently only Joliet filenames are
supported but this may change in the future.

This file system is based on the sources of AEFS a cryptographic file
system written by Eelco Dolstra.  See below for further information.


1.1 Requirements
----------------

This software requires the EMX runtime fix 3.  It can be downloaded
from: ftp://ftp.leo.org/pub/comp/os/os2/leo/gnu/emx+gcc/emxrt.zip.


1.2 Installation
----------------

You need WarpIn 0.9.4 or above to install this filesystem driver or
the sources.  Get it from

http://warpin.netlabs.org

or

http://www2.rz.hu-berlin.de/~h0444vnd/os2.htm     Note: This address
may not be valid in the future!

Unzip the zip-file to any place on your hard disk.  Start WarpIn with
the installation package by doubleclicking on isofs_Vx-x-x.wpi.  You
may select to install only the driver, the sources or both.

During driver installation WarpIn adds the following lines to your
CONFIG.SYS:

      IFS=<install-path>\stubfsd.ifs ISOFS
      RUN=<install-path>\isofsdmn.exe

A folder will be created on your desktop containing the documentation
and objects to mount and unmount ISO files.

The first line loads the FSD (file system driver), which is really a
stub that passes requests to the daemon, which is started in the
second line and does the real work.  You may also want to add the
bin-dir to the PATH environment variable, but that's merely a
convenience.


1.3 Deinstallation
------------------

Use WarpIn to deinstall the filesystem.

NOTE: Currently WarpIn corrupts your CONFIG.SYS while trying to remove
the inserted statements.  Deselect all config.sys entries in the
Undo configuration listbox to make sure your system will remain
bootable.  Remove the entries in question by hand!


1.4 Overview
------------

To access an ISO file as a volume, you must attach (`mount') it to a
drive letter.  This can be done by typing

      mntisofs X: <drive>:\<path>\<filename>

The file 'filename' may be accessed now as drive X:.  Copy, extract or
view files contained in the image as if they were on your harddisk.

When you are done using the volume, you can type

      umntiso X:

to detach it.


2 Command reference
===================

All programs use the GNU getopt syntax.  They all support the
following options:

--help  Print help and exit.

--version
        Print version information and exit


2.1 isofsdmn
------------

The isofsdmn program is the file system daemon.  The syntax is:

isofsdmn <option>*

It is typically started in CONFIG.SYS by a RUN statement (NOT a CALL
statement) or from a script using the detach command.

The options are:

--logfile <filename>
        Write log messages to the file specified by <filename>.  By
        default, messages are written to standard error (which is the
        nul device if the daemon is started from CONFIG.SYS or using
        detach).

--loglevel <n>
        Set the severity threshold of log messages.  Only messages
        with a severity lower than or equal to the log level are
        actually written to the log file.  The levels are:

        1       Fatal

        2       Evil (i.e.  not fatal but worse than a `normal' error)

        3       Error

        4       Warning

        9       Debug


2.2 mntisofs
------------

The mntisofs program attaches an ISO file to a drive letter.  The
syntax is:

mntisofs <option>* <drive-letter>: <path>

The options are:

--offset <nnnn>,  -o <nnnn>
        Specify the offset of the session on the CD.  This means the
        sector where the session starts on the CD.  For the first
        session on a CD the offset is 0 and may be omitted.  This
        option is experimental.

--jcharset <codepage>
        Translation codepage for the unicode names of Joliet CDs.  If
        this switch is omitted the default system codepage is used.

Examples:

Mount a file on drive X: using the codepage 850:

              mntisofs --jcharset cp850 X: c:\directory\isoimage.raw 

Mount another file on drive Y: using the default system codepage:

              mntisofs y: c:\directory\another_isoimage.raw 

Mount the same file on drive Z: using the codepage 850:

              mntisofs --jcharset cp850 z: c:\directory\another_isoimage.raw 

You may access all these mounted drives in parallel.


2.3 umntiso
-----------

The umntaefs program detaches an ISO file from a drive letter.  The
syntax is:

umntiso <option>* <drive-letter>:

The options are:

--force, -f
        Detach the file system even if there are open files, active
        searches, or current directories for this drive.  This might
        not be entirely safe.


3 Known problems and limitations
================================

This release is a developer release which may contain bugs.  Don't
expect it to be rock solid.

- Only singlesession images are supported.  This may change in the
  future.

- There is no caching or write ahead implemented so the file system
  isn't as fast as theoretical possible.  But I think it's reasonable
  fast.


4 Building ISOFS
================

The makefiles require GNU make.

To build the FSD (stubfsd.ifs) you need Microsoft C 6.00.  This
compiler can be downloaded from the IBM Developer Connection Device
Driver Kit for OS/2 site at http://service.boulder.ibm.com/ddk.  You
also need the FSD helper library and header file, which is included in
the FSD toolkit:
ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/doc/ifsinf.zip.

To build the daemon and the support programs you need gcc or pgcc,
available from various locations.

In general it isn't absolutely necessary to rebuild the FSD.  In fact
I took the precompiled FSD from the AEFS package and rewrote only the
daemon.


5 License
=========

ISOFS is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2, or (at your option) any later
version.

ISOFS is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with ISOFS; see the file COPYING.  If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.


6 History
=========

V0.1.1 20.08.2000
        First release

V0.1.3 30.09.2000
        Fixed broken extended attribute handling which caused the WPS
        to crash.  Added support for volume label.

V0.1.5 03.10.2000
        Added missing filesystem driver to the archive.


7 Author
========

This software was written by Chris Wohlgemuth.  Send bug reports,
patches, or other comments to <chris.wohlgemuth@cityweb.de>.

http://www.geocities.com/SiliconValley/Sector/5785/index.html


8 Credits
=========

This file system is based on AEFS a cryptographic file system written
by Eelco Dolstra <edolstra@students.cs.uu.nl>.  Without that work
ISOFS wouldn't have been possible!  It only took me a few days to get
the first version run.  Thanks.

The charset conversion was taken from the cdrecord package by J.
Schilling.

The routines for iso9660 access were originally written by Eric
Youngdale (1993), Copyright 1993 Yggdrasil Computing, Incorporated.
