ISO 9660 Filesystem Manager (QNX)
Iso9660fsys [-w secs] [directory=file]... & Iso9660fsys [-s] [-w secs] &
If you don't specify this option, Iso9660fsys will wait no more than 60 seconds for the devices to be set up.
The Iso9660fsys filesystem manager provides transparent access to ISO 9660 filesystems. It supports Rock Ridge Interchange Protocol (RRIP) extensions (for a POSIX filesystem) and also supports High Sierra filesystems.
Iso9660fsys provides this functionality on top of Fsys or Blkfsys with their drivers which provide access to the actual CD-ROM drive through block special files in the /dev directory.
By default, Iso9660fsys does a scan until at least one CD-ROM block special file is found or the timeout occurs. All CD-ROM devices found during the scan are mounted. If you specify -s or the directory=file syntax, the scan isn't performed.
If you use Rundos (deprecated) to access the mounted filesystem, Rundos will ignore the RRIP filename extensions in favor of the ISO filenames. It will also ignore filenames that don't comply with ISO 9660 level 1. |
For directory=file, you should also note that the specified file needn't be an actual CD-ROM as long as it contains an ISO 9660 filesystem.
A directory called .cd.information. is always created beneath the directory of the mounted ISO filesystem (e.g. /cd0/.cd.information.). Another directory may also be created if a valid volume ID is present on that filesystem. The name of this other directory is =volume_id and may contain up to 11 characters.
Both of these directories contain the same files. These files contain information about the mounted filesystem. If any of the information fields described in the following table are empty, the corresponding file of the same name won't be present.
Field/File | Contents |
---|---|
creation | zero-length file with a time stamp of the creation date |
modification | same as above, but for modification date |
expiration | same as above, but for expiration date |
effective | same as above, but for effective date |
volumesetid | Volume set ID |
publisher | CD-ROM publisher |
preparer | CD-ROM preparer |
application | CD-ROM application |
copyright | CD-ROM copyright information |
abstract | CD-ROM abstract |
bibliographic | CD-ROM bibliographic (not on High Sierra CDs) |
system | CD-ROM system area description |
volumeid | CD-ROM volume ID (used to make the "=" directory) |
rrip_version | version of Rock Ridge Interchange Protocol |
control | QNX control file (described below) |
The control file is always present. By writing commands to this special file, you can control the CD-ROM drive. For example, when it is supported by the hardware, the following command would eject the disk from the drive:
echo eject >/cd0/.cd.information./control
Note that commands must be written atomically to this file. The following table lists the commands you can use.
Command | Description |
---|---|
raw=on|off | display raw ISO 9660 filenames (default is off); if raw is turned on, ISO 9660 filenames won't be translated by Iso9660fsys |
rockridge=on|off | enable Rock Ridge extensions (default is on) |
uid=user_id | use this user ID for ISO 9660 filenames (default is 0) |
gid=group_id | use this group ID for ISO 9660 filenames (default is 0) |
play[=first[-last]] | play audio CD from first to last track |
volume=level | adjust the volume (0-255) |
stop | stop audio CD from playing |
pause | pause audio CD |
resume | resume audio CD |
eject | eject CD from drive |
load | reload CD to drive |
The play, volume, stop, pause, resume, eject, and load commands are ignored if they're not supported by the drive. If you're using a SCSI drive and it doesn't always respond, you might wish to verify that your drive supports the following SCSI commands, which are the actual directives used by the SCSI driver.
Function | SCSI type | Command name | Command code |
---|---|---|---|
play | SCSI2 | PLAY AUDIO TRACK/INDEX | 0x48 |
volume | SCSI2 | MODE SELECT | 0x15 |
stop | SCSI | START STOP UNIT | 0x1B |
eject | SCSI2 | START STOP UNIT | 0x1B |
load | SCSI2 | START STOP UNIT | 0x1B |
pause | SCSI2 | PAUSE/RESUME | 0x4B |
resume | SCSI2 | PAUSE/RESUME | 0x4B |
Scan the /dev directory and automatically mount any CD-ROM block special files. If the scan were to find /dev/cd0, the name of the newly mounted ISO filesystem would be /cd0:
Iso9660fsys &
Mount the block special file /dev/cd0 as /cdrom; don't scan for other CD-ROM devices:
Iso9660fsys /cdrom=/dev/cd0 &
Iso9660fsys closes its standard input, standard output and standard error immediately after successfully performing its startup initializations. If errors are encountered on startup, a diagnostic message is written to standard error.
Iso9660fsys adopts portions of the pathname prefix tree under which the files in the mounted ISO9660 filesystem will be found. By default, this mount point will be named /name where name is the basename of the block special file under /dev the filesystem is contained in. This mount point may be overridden by the specification of directory=file command-line arguments.
Iso9660fsys will normally never terminate. However, it may exit if an error is encountered during its startup initializations or if it has not been run in the background and therefore forks another copy of itself allowing the original to exit.
Some CD-ROM vendors may recommend the following alternative method of mounting an ISO 9660 filesystem:
mount -t iso9660 block_special_file directory
For this command to succeed, Iso9660fsys must be running in the background. For example, the following commands would mount the ISO filesystem as /cd0:
Iso9660fsys -s & mount -t iso9660 /dev/cd0 /cd0
Blkfsys, Dosfsys, Fsys, Fsys.*, mount, umount