-
Notifications
You must be signed in to change notification settings - Fork 0
/
readme.src
515 lines (343 loc) · 14.5 KB
/
readme.src
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
þtitle ISOFS V1.1.0 Readme
þif text
þh= Table of Contents
þtoc
þendif
þh1 Introduction
ISOFS is an installable filesystem for OS/2 for seamless read only access
to the contents of ISO image files, as suitable for burning on CD, or as
extracted from CD.
This file system is based on the sources of AEFS a cryptographic
file system written by Eelco Dolstra. See Credits below for further
information.
þh2 Installation
The suggested method is to use WarpIN, which will modify your CONFIG.SYS
file and create a folder on your desktop containing objects for the
documentation and the drive mapping utilities.
þem{Important:} v1.1.0 installs its files in different directories
than previous versions and is unable to remove the old files. Please
þem{uninstall} any previous version before installing this package.
To install manually, add the following line to your CONFIG.SYS file
and then reboot.
þexample
IFS=<install-path>\stubfsd.ifs ISOFS
þendexample
This line loads the FSD (file system driver), which is just a
stub that passes requests to the daemon (þtt{isofsdmn}) which
does the real work.
You can also add the following line to config.sys to have the
daemon load during startup. In most cases, this isn't necessary
since þtt{isodrive} always starts it if needed, and þtt{mapiso}
will start it on demand is you use the þtt{-s} switch.
þexample
RUN=<install-path>\isofsdmn.exe
þendexample
þh2 Uninstallation
The suggested method is to use WarpIN, which will remove the entries
added during installation from your CONFIG.SYS file and will also
remove the ISOFS folder from your desktop.
To uninstall manually, remove the following lines from your CONFIG.SYS
file and then reboot.
þexample
IFS=<install-path>\stubfsd.ifs ISOFS
RUN=<install-path>\isofsdmn.exe
þendexample
þh1 Using ISOFS
This section describes the three programs in the ISOFS package:
þitemize
þitem
þsy{ISODrive} - a control panel that lets you mount and unmount ISO
files and control options.
þitem
þsy{MapISO} - a command line program for mounting and unmounting
ISOs well suited for use in scripts.
þitem
þsy{isofsdmn} - a background program (daemon) that does the actual
work of reading ISO files.
þenditemize
þh2 Quick Start
To access an ISO file as a volume, you must mount it as a drive and
assign it a letter. Once that's done, you can copy, extract or
view files contained in the image as if they were on your hard disk.
When you have finished using the volume, you can unmount it.
Mounting and unmounting can be done several ways:
þdescription
þitem þem{WPS}
Double-click on the ISO file. þtt{isodrive} will pop up a confirmation
dialog then mount it. When you're done with the volume, again
double-click on the file; this time an unmount confirmation will appear.
þitem þem{ISODrive}
Open the app and press the þtt{[+]} (plus) button. Enter the file name
or use the File Open dialog, select a drive letter, then press þtt{[Mount]}.
When done, reopen the app, select the file from the main listing, then
press the þtt{[-]} (minus) button.
þitem þem{MapISO}
From a command prompt (or script) enter a line like this:
þexample
mapiso -s X: <drive>:\<path>\<filename>
þendexample
This will start þtt{isofsdmn} if necessary, then mount the file as drive X:.
To unmount the volume, use:
þexample
mapiso X: -d
þendexample
þenddescription
þh2 ISODrive
þtt{ISODrive} is an easy to use interface for ISOFS. With it you can
mount and unmount ISO files, and control the popups that appear when
you double-click an ISO file.
The main window contains a list of currently mounted ISO files along
with the drive letters they've been assigned. Below that are buttons
to mount and unmount drives, and to configure its options.
þdescription
þitem Mount [ + ]
Enter the name of an ISO file or press the file dialog button (þtt{[...]})
to search for one. Select a drive letter, then press þtt{[Mount]}. If
successful, the file name and drive will appear in the main window's
listing.
There are two additional options available that very few users need,
so they are hidden. Press the þtt{[<]} button to reveal them:þbreak
þem{Codepage:} this controls the translation of Unicode file names. Set it
if accented characters in file names are displayed incorrectly.þbreak
þem{Offset:} to access a secondary session on a multi-session CD, enter
its offset in sectors from the beginning of the disk.
þitem Unmount [ - ]
First, select the drive you want to unmount from the listing in the
main window, then press the þtt{[-]} button. After confirming the
information shown in the dialog, press þtt{[Unmount]}. The file name
and drive should disappear from the main window's listing.
Note: normally, ISOFS will refuse to unmount a drive if there are any
open files on it. If you þem{must} unmount such a drive, check
þtt{Emergency unmount} first (this is the same as the þtt{--force}
command line option).
þitem Options
þitemize
þitem
þem{AutoMount}: if you supply ISODrive with a file name but no drive
letter (e.g. when double-clicking on an ISO file), this feature will
automatically mount the file using the next available drive letter. When
disabled, ISODrive will open instead.
þitem
þem{Confirm}: before mounting or unmounting a file, ISODrive will pop up
a dialog to have you confirm the action.
þitem
þem{Advise}: should the mount/unmount operation fail, ISODrive will pop
up a dialog to advise you of the error.
þenditemize
þenddescription
ISODrive also offers a variety of command line switches to tailor its
operation. It supports all of the flags used by þtt{mapiso} (see next
section) plus these extras:
þdescription
þitem þsy{-a, --auto}
Enable AutoMount; this overrides your setting in Options.
þitem þsy{-n, --noauto}
Disable AutoMount; this overrides your setting in Options.
þenddescription
þh2 MapISO
The þtt{mapiso} program attaches an ISO file to a drive letter.
The syntax is:
þsy{mapiso <option>* <drive-letter>: <path>}
The options are:
þdescription
þitem þsy{-o <nnnn>, --offset <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.
þitem þsy{-j <codepage>, --jcharset <codepage>}
Translation codepage for the unicode names of Joliet CDs. If this
switch is omitted the default system codepage is used.
þitem þsy{-s, --start}
Starts the daemon process þtt{isofsdmn} if it isn't running already.
This switch only works when mounting an ISO - it can not be used by
itself.
þitem þsy{-h, --help}
Print help and exit.
þitem þsy{-v, --version}
Print version information and exit.
þenddescription
The þtt{mapiso} program is also used to detach a drive letter from an
ISO file. The syntax is:
þdescription
þitem þsy{mapiso <option>* <drive-letter>: -d}
þitem þsy{mapiso <option>* <drive-letter>: --detach}
þenddescription
The options are:
þdescription
þitem þsy{-f, --force}
Detach the file system even if there are open files, active
searches, or current directories for this drive. This might not be
entirely safe.
þenddescription
Examples:
þdescription
þitem Map a file on drive X: using codepage 850:
þexample
mapiso --jcharset cp850 X: c:\directory\isoimage.raw
þendexample
þitem Map another file on drive Y: using the default system codepage:
þexample
mapiso y: c:\directory\another_isoimage.raw
þendexample
þitem Mount the same file on drive Z: using codepage 850:
þexample
mapiso -j cp850 z: c:\directory\another_isoimage.raw
þendexample
þitem Mount CD-ROM drive S: on drive Z: using codepage 850:
þexample
mapiso -j cp850 z: \\.\S:
þendexample
þenddescription
You may access all these mounted drives in parallel.
þh2 isofsdmn
The þtt{isofsdmn} program is the file system daemon. The syntax is:
þsy{isofsdmn <option>*}
It is typically started by þtt{ISODrive} the first time you mount an
ISO file. It can also be started from þtt{CONFIG.SYS} by a þtt{RUN}
statement (þem{not} a þtt{CALL} statement) or from a script using the
þtt{detach} command.
The options are:
þdescription
þitem þsy{-q, --quit}
Kills the running daemon process. This will also detach any mapped
drives from their related ISO files.
þitem þsy{--logfile <filename>}
Write log messages to the file specified by þsy{<filename>}. By
default, messages are written to standard error (which is the nul
device if the daemon is started from þtt{CONFIG.SYS} or using
þtt{detach}).
þitem þsy{--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:
þdescription
þitem 1
Fatal
þitem 2
Evil (i.e. not fatal but worse than a 'normal' error)
þitem 3
Error
þitem 4
Warning
þitem 7
Information
þitem 9
Debug
þenddescription
þitem þsy{-h, --help}
Print help and exit.
þitem þsy{-v, --version}
Print version information and exit.
þenddescription
þh1 ISOFS Notification Semaphore
Each time þtt{isofsdmn.exe} successfully mounts or unmounts a drive,
it attempts to open an event semaphore named þtt{\SEM32\ISOFS\MOUNT}.
If it exists, the daemon posts the semaphore then closes it.
To access these notifications, a client should create this event sem
if it doesn't exist yet. Do þem{not} use any semaphore options except the
þtt{DC_SEM_SHARED} flag. If the sem already exists, open it. Clients
should always reset the event sem when it is posted and should ignore
ERROR_ALREADY_RESET return codes.
þh1 Building ISOFS
The makefiles require GNU make.
To build the FSD (þtt{stubfsd.ifs}) you need Microsoft C 6.00.þbreak
You also need the FSD helper library and header file, which are now
included in this package in directory þtt{ifsinf}.
To build the daemon and the support programs you need a current version
of gcc, available from various locations.
In general it isn't necessary to rebuild the FSD. Unless you find a bug
that needs to be fixed, you can use the precompiled FSD in this package.
Do not use earlier versions as they contain several bugs that have now
been fixed.
þh1 About ISOFS
This software was written by Paul Ratcliffe. Send bug reports,
patches, or other comments to þtt{<paul@orac12.clara34.co56.uk78>}
(remove the numbers).
þtt{http://home.clara.net/orac/os2.htm#isofs}
This file system is based on AEFS a cryptographic file system written
by Eelco Dolstra þtt{<edolstra@students.cs.uu.nl>}, and ISOFS 0.2.1
by Chris Wohlgemuth.þbreak
Without that work, this version of ISOFS wouldn't have been possible!
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.
þh2 Known problems and limitations
þitemize
þitem
Although ISO files can now exceed 2GB, individual files within are still
limited to 2GB. This may change in the future.
þitem
Only single session images are supported. This may also change in the future.
þitem
There is no caching or read ahead implemented, so the file system isn't
as fast as theoretically possible, but I think it's reasonably fast.
þenditemize
þh2 History
þdescription
þitem V1.1.0 27 Feb 2017
Added þtt{ISODrive}, a GUI control panel for ISOFS. This replaces
the 'automap.cmd' found in previous versions.þbreak
Added a new feature that enables clients to receive notification of ISOFS
mount/unmount events via a named shared event sempahore.þbreak
Fixed libc panic caused by attempts to free a memory allocation twice.þbreak
Fixed failures when clients tried to read EAs for files that have none
(i.e. any file contained in the ISO).þbreak
Fixed crash during boot when no filesystem name is specified in
config.sys; 'ISOFS' is now the default value.þbreak
Fixed a bug that might cause applications to hang when accessing an
ISOFS drive if isofsdmn.exe had been started from config.sys.þbreak
Refactored and reformatted code in files where bugs were found.þbreak
Updated Makefiles and eliminated standalone 'getopt' library which
is now part of libc.þbreak
Updates provided by Rich Walsh.
þitem V1.0.4 27 Nov 2017
Interim version not released to the public.
þitem V1.0.3 7 Jan 2007
Fixed access to raw drives (\\.\X:) in Mapiso.þbreak
Fixed bug which allowed reading beyond end of files.þbreak
Increased daemon file handle count to allow more ISO images to be mapped
simultaneously.þbreak
Added utility to attach and detach ISOs automatically.
þitem V1.0.2 28 Jan 2006
Allow ISO images greater than 2GB to be read.
þitem V1.0.1 23 Jul 2005
Mapiso now accepts relative pathnames rather than only fully qualified ones.þbreak
Fixed major memory leak in the daemon.þbreak
Fixed errors in the documentation.
þitem V1.0.0 18 Dec 2004
Major rewrite to clean up some of the code and add support for High Sierra
images and ISO-9660 images without Joliet.þbreak
ISOFS is now maintained by Paul Ratcliffe.
þitem V0.2.1 02.10.2001
Added support for file and directory times which was still missing.þbreak
Found the solution for the missing notebook pages. You have to tell OS/2
that there's support for EAs even if that's not true.
þitem V0.2.0 25.08.2001
Fixed mainly a memory leak and the still broken extended attribute handling.þbreak
Some more bugs are fixed I forgot ;-).þbreak
Added more descriptive error messages to þtt{mntisofs} so it's easier to find out
what's going wrong.þbreak
This seems to be the first really stable release.
þitem V0.1.5 03.10.2000
Added missing filesystem driver to the archive.
þitem V0.1.3 30.09.2000
Fixed broken extended attribute handling which caused the WPS to crash.þbreak
Added support for volume label.
þitem V0.1.1 20.08.2000
First release
þenddescription
þh2 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.